DeXteR 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба Добрый день Очень прошу поделиться исходниками маленького 16 разрядного пид (пи) регулятора на Си под атмел может у кого есть .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба Добрый день Очень прошу поделиться исходниками маленького 16 разрядного пид (пи) регулятора на Си под атмел может у кого есть .... Поищи поиском, где-то здесь выкладывали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DeXteR 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба Добрый день Очень прошу поделиться исходниками маленького 16 разрядного пид (пи) регулятора на Си под атмел может у кого есть .... Поищи поиском, где-то здесь выкладывали. Спасибо &-rey Поиском нашел толька литературу ее у меня навалом + политех когдато закончил =) Исходников под АВРку ненашел Глючит сегодня все чегото Если несложно исходники регулятора на [email protected] Зарание благодарю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Спасибо &-rey Поиском нашел толька литературу ее у меня навалом + политех когдато закончил =) Исходников под АВРку ненашел А ссылка была http://forum.electronix.ru/index.php?showtopic=8440 но теперь она не работает :( Возможно ввиду очень длинного текста её укоротили или переместили куда-то в другое место :( Просьба к модераторам и ко всем кто видел этот алгоритм помочь в этом вопросе. к сожалению не помню автора но вот слово ПИД там было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Спасибо &-rey Поиском нашел толька литературу ее у меня навалом + политех когдато закончил =) Исходников под АВРку ненашел А ссылка была http://forum.electronix.ru/index.php?showtopic=8440 но теперь она не работает :( Не поленитесь сей факт довести до сведения админов (указав пример). Вещь как ссылка на форумные темы очень нужная, иногда просто необходимая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
subver 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба ПИ регулятор: y+=(kp+ki*T)*e[0] - kp*e[1]; y - выход e[0] - текущий отсчет ошибки e[1] - предыдущий отсчет ошибки kp - коэффициент усиления П-звена ki - коэффициент усиления I-звена T - период дискретизации. Естественно, что (kp+ki*T) можно вычислить заранее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BlackPahan 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Вот правильная сцылка http://electronix.ru/forum/index.php?showtopic=8440 сравните с неправильной http://forum.electronix.ru/index.php?showtopic=8440 и догатайтесь что теперь нужно делать в таких случаях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DeXteR 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Молодец =) Такие вещи знают на втором курсе любого политеха =) Но работать небудет вот почему Переполнения будут кругом Писал дла TMS320F24xx Там есть математика с насыщением тоесть FFFF + A = FFFF А в твоем случае наверна переполниться и в насыщение не войдет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
subver 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 (изменено) · Жалоба Ну так просил на С, я написал на с. А как там его компилятор откомпилирует, с насыщением или без, это уже другой вопрос. Как ни странно работает, уже год. Переполниться может. Чтобы не переполнялся нужно ограничить выходное значение, но тогда такая форма будет работать не совсем корректно. Вот еще вариант: err_i+=err; sat(err_i); y = err_i*Ki*T + err*Kp sat(err_i) - насыщение интегратора. Изменено 6 декабря, 2005 пользователем subver Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DeXteR 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Дело в том что изучаю Си уже почти неделю Может расскажеш как заставить считать твою строчку с насышением Я пишу на EWAVR 4.11 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DeXteR 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Ну так просил на С, я написал на с. А как там его компилятор откомпилирует, с насыщением или без, это уже другой вопрос. Как ни странно работает, уже год. Переполниться может. Чтобы не переполнялся нужно ограничить выходное значение, но тогда такая форма будет работать не совсем корректно. Вот еще вариант: err_i+=err; sat(err_i); y = err_i*Ki*T + err*Kp sat(err_i) - насыщение интегратора. Толька одним выходным значением необойдешся При вычислении ошибки тоже может быть переполнение. Дальше - когда err_i*Ki*T + err*Kp считаем - тоже Входные величины нехочиться ограничивать Неподскажет ли кто можно ли как нибудь реализовать функцию сложения с насышением на Си Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
subver 0 7 декабря, 2005 Опубликовано 7 декабря, 2005 · Жалоба Неподскажет ли кто можно ли как нибудь реализовать функцию сложения с насышением на Си long result; short int a,b; short shortresult; result = a+b; if(result>32767) result = 32767; if(result<-32768) result = -32768; shortresult = result; hint: result - 32 разрядный, a,b - 16 разрядные, так что при сложении a и b и помещении результата в result переполнения не будет. На ассемблере достаточно проверить бит OVF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 7 декабря, 2005 Опубликовано 7 декабря, 2005 · Жалоба Неподскажет ли кто можно ли как нибудь реализовать функцию сложения с насышением на Си ... На ассемблере достаточно проверить бит OVF. Да вообщем и на С можно, например, для IAR, if (SREG_Bit3) .... Только аккуратно надо с этим, рекомендуется посматривать в листинг, чего он там компилирует. Я для TCP/IP так бит переноса проверял (для расчета CRC). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DeXteR 0 7 декабря, 2005 Опубликовано 7 декабря, 2005 · Жалоба Огромное спасибо за совет Дело в том что способ subver очень медленный Нельзя ли както побыстрее ?? Ведь задача считать Пи регулятор с частотой общета гдето килогрец 10 - 16 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
subver 0 7 декабря, 2005 Опубликовано 7 декабря, 2005 · Жалоба Нельзя ли както побыстрее ?? Ведь задача считать Пи регулятор с частотой общета гдето килогрец 10 - 16 Если процессор работает на частоте 16Мгц, то получается 1000 тактов для расчета регулятора. неужели не хватит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться