|
|
  |
Не могу добиться устойчивости работы шим регулятора, шим регулирование |
|
|
|
Mar 24 2006, 11:26
|

Участник

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599

|
Цитата(Kovrov @ Mar 24 2006, 14:39)  Что можно есче предпринять? Попробуйте засинхронизировать старт работы ацп с шимом,чтобы выборка производилась каждый раз в один и тот же момент когда начинаеться новая фаза шима.
|
|
|
|
|
Mar 24 2006, 11:33
|

Участник

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599

|
Цитата(Kovrov @ Mar 24 2006, 15:29)  Интересная мысль! ;-) что это нам может дать? Может дать большую стабильность полученного кода ацп,всё равно при этом будет оставаться постоянная погрешность измерения,которую можно убрать при калибровке девайса.
|
|
|
|
|
Mar 24 2006, 11:54
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Kovrov @ Mar 24 2006, 13:39)  Задача в следующем: осуществить стабилизацию тока в пределах 0-100а имеем шим период 62,5мкс (шаг 62,5нс) (макс заполнеие 25-30%) обратная связь датчик тока (на эффекте Холла) пробую осуществить регулирование - получаю нестабильность +- 1A усреднение результата на ацп на данный момент по 512 данным увеличение усреднения мертвому припарка!! пытался производить регулирование по 1му знаку после запятой немного ситуация улучшилась... Что можно есче предпринять? Значит так: если есть ШИМ, значит есть пульсация и есть фильтр, подавляющий эту пульсацию. На сколько Дб давится ШИМ на частоте квантования? Если хотите иметь регулирование с точностью 0,1% (например), это значит, что на входе усилителя сравнения пульсация должна быть меньше, чем 1/1000 от выходного сигнала тока. У Вас интегрирование производится в выходном фильтре и в АЦП. И еще одно требование. ЛАХ должен пересекать 0-уровень при 20 Дб/дек. Где нахдится эта точка? Возможно что усиление так задавлено, что просто не хватает 1000 в нужном Вам диапазоне частот. Попробуйте разомкнуть тракт и снять АЧХ силовой части, тогда Вы сможете определить на какой частоте должен работать фильтр, определите насколько быстрым надо делать АЦП. И, кстати, как реагирует датчик Холла на пульсации тока? Где его частота среза? Представьте, что у Вас система линейная. Все узлы цифровой обработки можно заменить на интегрирующие звенья и произвести симуляцию. Удачи! И еще - для генератора ТОКА - на выходе электролит роли никакой не играет.
Сообщение отредактировал iosifk - Mar 24 2006, 11:56
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Mar 24 2006, 12:00
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Цитата(plan @ Mar 24 2006, 14:53)  а с каким периодом работает петля обратной связи? 110-120 мкс попробывал синхронизацию.... даже не знаю... вроде лучше- а может это послереставрационный эффект ;-)
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Mar 24 2006, 12:30
|

Участник

Группа: Участник
Сообщений: 73
Регистрация: 23-12-05
Из: Украина Днепродзержинск
Пользователь №: 12 599

|
Цитата(Kovrov @ Mar 24 2006, 16:19)  пробывал давать постоянную длительность шим получил ошибку + - ампер/6-7сек При многократном усреднении ацп(измерения засинхронизированы с шимом) и стабильном шиме не должно быть такой погрешности.Обратите внимание на стабильность частоты и периода шима ,возможно она плавает.
|
|
|
|
|
Mar 24 2006, 13:50
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Цитата(SpyBot @ Mar 24 2006, 16:23)  имхо чтобы корректно работать с током, частота оцифровки тока должна быть минимум на порядок выше частоты ШИМ. А лучше использовать преобразователь напряжение-частота и завести его на счетчик. да, все правильно - только где взять столь быстрый ацп у меги? насчет напряжение частота - интересно - я тоже подумываю об этом!!!
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Mar 25 2006, 08:26
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Kovrov @ Mar 25 2006, 08:04)  алгоритм отличный - только накладен в вычислениях! или есть способы? Да нет проблем. N выбирается как степень двойки, в результате k*1/N превращается в k>>log2N  Вообще-то это обычный RC фильтр. Правильнее делать (чтобы результат переменной был такой-же, как и входной результат): Y=Y-((Y-X)>>n), где Y - ваша переменная, X - результат преобразования, n - логарифм (2) N. Реализуется очень просто и быстро. Соответственно, чем больше n, тем ниже частота среза. Да, и еще, сдвиг надо делать обязательно АРИФМЕТИЧЕСКИЙ (т.е. ASR ROR ROR ROR ...), чтобы сохранялся знак разности. По поводу регулятора. А попробовать сл. метод: Прерывание TOVxxx (таймера, на котором шим сделан) Если уровень на входе обратной связи меньше порога то OCRx++ иначе OCRx-- Конец прерывания. ++ или -- возможно надо местами поменять в зависимости от полярности сигнала обратной связи.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Mar 25 2006, 09:37
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(Rst7 @ Mar 25 2006, 11:26)  По поводу регулятора. А попробовать сл. метод:
Прерывание TOVxxx (таймера, на котором шим сделан) Если уровень на входе обратной связи меньше порога то OCRx++ иначе OCRx-- Конец прерывания.
++ или -- возможно надо местами поменять в зависимости от полярности сигнала обратной связи. Вот именно, что получится интегральный регулятор, для которого как раз и свойственна неустойчивость. Уставка таймера должна быть пропорциональна рассогласованию, тем более, что имеем сигнал с АЦП, а не с компаратора.
|
|
|
|
|
Mar 25 2006, 12:40
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Kovrov @ Mar 25 2006, 13:35)  Цитата(Rst7 @ Mar 25 2006, 11:26)  Да нет проблем. N выбирается как степень двойки, в результате k*1/N превращается в k>>log2N  вот это я не понял! можно пример реализации (лучше в мнемокодах чтоб подсчитать примерное кол-вл тактов )k*1/n как k>>log2N или я затупил или здесь и будут проблемы в скорости Ну например так: Код ; ; Измерение проведено, производим фильтрацию (IIR фильтр, порядок 1) ; MeasureFF=MeasureFF-(MeasureFF-Measure)/8 ; mov r16,MeasureFF sub r16,Measure mov r17,MeasureFFl ror r16 ror r17 asr r16 ror r17 asr r16 ror r17 sub MeasureFFl,r17 sbc MeasureFF,r16 MeasureFF - 2хбайтное число, MeasureFFl - это дробная часть. Measure - 8бит из АЦП (у меня сигнал от 0 до 255). Обратите внимание, что первый раз делается ror ror (а не asr ror), т.к. знаковый бит после вычитания оказывается в carry.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Mar 25 2006, 13:55
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
схемы в эл виде пока нет в понедельник нарисую ничего особенного нет ключ IGBT с драйвером + диод шоттки+ фильтр вообщем классика... индуктивность дросселей точно тоже замерю в понедельник Цитата(Rst7 @ Mar 25 2006, 15:40)  MeasureFF - 2хбайтное число, MeasureFFl - это дробная часть. Measure - 8бит из АЦП (у меня сигнал от 0 до 255).
Обратите внимание, что первый раз делается ror ror (а не asr ror), т.к. знаковый бит после вычитания оказывается в carry. чем больше рою тем более непоняток чето не работает этот алгоритм у меня Извиняюсь, но никак я в него не врублюсь :-) я так понял (Правильнее делать (чтобы результат переменной был такой-же, как и входной результат): MeasureFF я инициализирую значением ацп? и Y=Y-((Y-X)>>n), чем больше измерений я завожу в эту формулу тем больше переменаая Y у меня движется к бесконечности...
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Mar 27 2006, 23:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Alex11 @ Mar 24 2006, 20:23)  Если так, то есть такой отличный алгоритм: заводишь переменную, на каждом шаге добавляешь к ней отсчет с АЦП и вычитаешь 1/N часть ее самой. N нужно подобрать в зависимости от требуемого времени усреднения. Требуемая разрядность переменной определяется разрядностью АЦП и N. Алгоритм очень устойчив, не требует буфера отсчетов и отдает текущий ответ на каждом шаге. Скользящее усреднение. Вечно делал с помощью массива, а тут вот оказывается как -X/N на каждом шаге и не надо никаких массивов. Спасибо за алгоритм! Цитата(Kovrov @ Mar 25 2006, 15:55)  чем больше рою тем более непоняток почитайте про алгоритм: http://tutornet.ru/library/books/Math/MATH..._14/Index14.htmбудет легче понять реализацию..
|
|
|
|
|
Mar 28 2006, 06:12
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Kovrov @ Mar 25 2006, 15:55)  чем больше рою тем более непоняток чето не работает этот алгоритм у меня Извиняюсь, но никак я в него не врублюсь :-) я так понял (Правильнее делать (чтобы результат переменной был такой-же, как и входной результат):
MeasureFF я инициализирую значением ацп? и Y=Y-((Y-X)>>n), чем больше измерений я завожу в эту формулу тем больше переменаая Y у меня движется к бесконечности... Чего-то у вас не срослось с математикой. Пример в екселе:  Начальное значение 0. На вход подана 1 через 2 такта - в результате имеем на выходе тот-же результат, как и RC цепь, без всяких бесконечностей. ЗЫ Для эксела >>3 заменено на /8 - как вы понимаете - это один хрен.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Mar 28 2006, 12:22
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(Kovrov @ Mar 28 2006, 11:26)  после этого наконец врубился в тему.. Может пригодиться для расчета параметров обсуждаемого алгоритма набрасывал в свое время на MathCad 5.0 файлики (int_cep.mcd) и измерение методом суммирования значений (к делу не относиться но вдруг) это AnalizF.mcd
Прикрепленные файлы
MCD.rar ( 4.54 килобайт )
Кол-во скачиваний: 38
|
|
|
|
|
Mar 30 2006, 14:58
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211

|
Да.....ребята.....Какие то алгоритмы строите...какие то равенства выводите....Я вам рекомендую почитать ТАУ (Теория автоматического управления). Кто-то уже затрагивал этот вопрос с построением ЛАЧХ и ЛФЧХ. Это ближе, как говорится, к телу....шутка...Да, действительно эта проблема присутствует в любой схеме, где присутствует обратная связь, будь-то по скорости или по току, НЕ ИМЕЕТ ЗНАЧЕНИЕ какой параметр регулируется. И даже на базе той же меги16 (с медленным АЦП  ) мы сделали в свое время систему возбуждения для дизель-генератора, где регулировался ток возбуждения генератора. Регулируемым параметром было напряжение на выходе генератора....Но это предисловие, я к чему веду....Нужно делать вам ребята цифровой ПИД или хотя бы ПИ регулятор.....Ээээээээээ......наверно хватит, и так много сказал....
|
|
|
|
|
Mar 31 2006, 10:57
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211

|
Цитата(defunct @ Mar 30 2006, 19:45)  Цитата(Starick @ Mar 30 2006, 16:58)  Да.....ребята.....Какие то алгоритмы строите...какие то равенства выводите....Я вам рекомендую почитать ТАУ
У вас такая манера изложения, что остается лишь сказать - Спасибо, барин! Барин - не барин, а совет дельный! Если Вам, уважаемый не нравится моя форма изложения, то прошу не читать их совсем. Мне ваша критика не к чему. Я еще раз настою на своем. Никакие быстродействующие АЦП не помогут, да и количество данных такое не к чему. Нужна реализация програмного хотя бы ПИ регулятора, который бы застабилизировал систему. На реализацию и отладку такого у меня ушло не мало времени. А уже вывести управляющее воздействие на ШИМ - это не сложно.
|
|
|
|
|
Mar 31 2006, 11:28
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 29-12-05
Из: Екатеринбург
Пользователь №: 12 692

|
Цитата Задача в следующем: осуществить стабилизацию тока в пределах 0-100а имеем шим период 62,5мкс (шаг 62,5нс) (макс заполнеие 25-30%) Получаем максимальное значение длительности импульса 250, т. е. шаг 0.4 А (если система абсолютно линейная). Грубовато получается. Имхо, какие алгоритмы ни строй, надо сначала увеличить разрядность ШИМ. Тут надо выбирать между частотой ШИМ и ступенькой регулирования. А лучше поставить отдельный аналоговый ШИМ контроллер.
|
|
|
|
|
Mar 31 2006, 13:43
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Starick @ Mar 31 2006, 12:57)  Барин - не барин, а совет дельный! Если Вам, уважаемый не нравится моя форма изложения, то прошу не читать их совсем. Мне ваша критика не к чему. Я еще раз настою на своем. Никакие быстродействующие АЦП не помогут, да и количество данных такое не к чему. Нужна реализация програмного хотя бы ПИ регулятора, который бы застабилизировал систему. На реализацию и отладку такого у меня ушло не мало времени. А уже вывести управляющее воздействие на ШИМ - это не сложно. Понимаете, хоть эта тема и не моя, но я волей-неволей принимал в ней учаcтие. Тут приходите Вы и своим постом перечеркиваете все, что в этой ветке обсуждалось ранее. Конечно, не мне Вас учить, но оно со стороны выглядит не сильно красиво ;> Разумеется, Вы дали ценный совет, с этим не поспоришь, но не все же такие специалисты в этой области (ТАУ) как Вы. Поэтому не могли бы Вы вкратце объяснить для "темных" принцип работы пропорционально интегрального (ПИ) и пропорционально интегрально дифференциального (ПИД) регуляторов или дать ссылки на материалы где можно об этом почитать. Потому что не все здесь располагают временем на поиск книг (не говоря уже о прочтении) по ТАУ. А вот вопрос, затронутый в этой ветке, думаю интересен для многих. С уважением.
|
|
|
|
|
Mar 31 2006, 14:19
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
что таое пид регулятор штука известная и языком аналоговой техники это все можно реализовать и это ни для кого не секрет! Но основной интерес это реализация программного алгоритма (ов) п - пи -пид.... регуляторов Цитата(zhek @ Mar 31 2006, 14:28)  ). Грубовато получается. Имхо, какие алгоритмы ни строй, надо сначала увеличить разрядность ШИМ. разрядность шим на авр увеличить не представляется возможным физически, исходя из мега 16 на 16 мгц.. да и как показала практика в моем случае изменение длительность на 2-4 еденицы, результата не дает в рамках резолюции ацп
Сообщение отредактировал Kovrov - Mar 31 2006, 14:21
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Mar 31 2006, 14:23
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Регуляторы здесь совершенно не причем, всякая (почти) система с обратной связью представляет собой ПИ регулятор. А ТАУ причем, и вот в чем дело -
для того, чтобы петля регулирования была устойчива, она должна иметь коэффициент усиления меньше 1 для частоты, на которой сдвиг фазы набегает в 180 градусов. Иначе система не будет устойчивой.
Пользуются обычно для этого пропорционально - интегральным регулятором. Он состоит из двух каналов - просто усилителя сигнала ошибки и интегратора (фильтра первого порядка фактически), их выходы суммируются и создают сигнал обратной связи. Подбирая (или высчитывая) коэффициенты пропорционального и интегрального канала, добиваются выполнения условия устойчивости. Так что надо в алгоритм управления ввести фильтр первого порядка и подобрать его характеристики (если не критично время реакции, то можно отказаться от пропорционального канала). Фильтр первого порядка тут по-моему уже описывали. Ресурсов он почти не жрет.
Очень желательно, чтобы в управляемой системе не было резонансов (например П-фильтров из катушки и 2 конденсаторов), тогда добиться качественного управления в нужной полосе моет оказаться сложно или невозможно.
Сообщение отредактировал DS_ - Mar 31 2006, 14:25
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Mar 31 2006, 14:54
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211

|
Цитата(DS_ @ Mar 31 2006, 17:23)  Регуляторы здесь совершенно не причем, всякая (почти) система с обратной связью представляет собой ПИ регулятор. А ТАУ причем, и вот в чем дело - Что значит ВСЯКАЯ система с обратной связью представляет собой ПИ регулятор??? БРЕД!!!! ПИ регулятор - он и есть ПИ регулятор... Ты попробуй обороты движка застабилизировать просто введя обратную связь по скорости!!! Ну например: двигатель постоянного тока- Энкодер-контроллер-ШИМ. Да вроде бы все просто, Есть установленные обороты и измеренные. Вроде находим ошибку и пихаем в ШИМ, а движок - бедолага начинает колбасится, то разгоняется, то тормозит...Что такое происходит?? Да ничего, просто движок представляет собой апериодическое звено, у которого есть своя постоянная времени и тому подобное, ТАК ВОТ. НОРМАЛЬНАЯ система стабилизирующая с обратной связью должна иметь вид (для нашего случая): двигатель постоянного тока- Энкодер-контроллер- ПИД -ШИМ. По поводу коэффициентов ПИД регулятора, ТО ИХ НУЖНО ПОДБИРАТЬ НА ГОТОВОМ ОБЪЕКТЕ.
|
|
|
|
|
Mar 31 2006, 15:29
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Если Вы вчера прочитали учебник по ТАУ, не надо спешить учить всю окружающую публику, тем более в таком стиле.
Система с прямой обратной связью тоже вариант ПИ регулятора, с большим усилением П звена и малой постоянной И звена.
Кстати, если двигатель нагружен, напрмер, только на маховик, то достаточно будет только интегрального звена. Коэффициенты в случае двигателя не подбираются, а вполне даже вычисляются. Кстати, если кроме скорости, надо еще и угол стабилизировать, то Вы не обойдетесь ПИД регулятором - тут уже случай двухкоординатного управления.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Mar 31 2006, 17:12
|
Группа: Новичок
Сообщений: 12
Регистрация: 12-03-06
Пользователь №: 15 149

|
В баталии такого уровня лучше не влазить.Я только предложу посмотреть на материалы страницы http://www.ineltek.ru/html.cgi/txt/app/micros/avr/AVR495.htm .Там по моему многогранно об этом описано + код.Может пригодится в вашей разработке.Контроллер правда не бюджетный, но для такого оборудования по моему не жалко....
Сообщение отредактировал fortan - Mar 31 2006, 17:15
|
|
|
|
|
Mar 31 2006, 17:58
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Цитата(Kovrov @ Mar 31 2006, 18:37)  Цитата(DS_ @ Mar 31 2006, 17:23)  . Подбирая (или высчитывая) коэффициенты пропорционального и интегрального канала, добиваются выполнения условия устойчивости.
А как бы вы предложили высчитать эти коэффициенты? Для блока питания их вычисление вполне реально, потому что можно полностью расписать диф. уравнения, все L, C, R более или менее точно известны. Методики расчета есть в книжках по ТАУ, наверняка здесь на FTP имеются. В ТАУ все сводится к вычислению коэффициентов в представлении диф. уравнений системы через преобразование Лапласа. Если использовать только интегрирующий канал, то достаточно вычислить для разомкнутой системы коэффициент усиления на частоте, на которой фаза повернется на пи, и выбрать такую постоянную интегрирования, которая сделает коэффициент усиления замкнутой системы на этой частоте меньше 1. Если будете использовать ПИ алгоритм, алгоритм расчета смотрите в книжке. Интегратор с насыщением на AVR делается элементарно, никаких потерь времени не будет. Умножение аппаратное есть, поэтому умножить на коэффициент тоже не сложно. А большего и не надо. Хорошая книжка по этому вопросу - Гудвин и др. Проектирование систем управления.
Сообщение отредактировал DS_ - Mar 31 2006, 18:03
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Mar 31 2006, 18:06
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(DS_ @ Mar 31 2006, 21:58)  Для блока питания их вычисление вполне реально, потому что можно полностью расписать диф. уравнения, все L, C, R более или менее точно известны... В том-то и дело, что плясать нужно именно от них, тогда будет поменьше "мудрых" замечаний по поводу ПИ - регуляторов. Только вот автор темы, похоже, придаёт этому слишком уж второстепенное значение...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 31 2006, 20:27
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211

|
Я в основном практик, так как теория почти всегда не совпадает с практикой, то я бы хотел узнать у гостей данного топика, которые только и делают, что приводят лишь в свой довесок теорию об автоматическом управлении, кто-нибудь реально собирал цифровую систему стабилизации какого-нибудь параметра? И с какими проблемами сталкнулся? Или так, где-то услышал, что-то не допонял, по - своему пересказал? По поводу, что любая обратная связь - есть ПИ регулятор. Профессор спрашивает у студента:" Есть ли у слона крылья?". Студент отвечает: "Есть, только они стремятся к нулю".
|
|
|
|
|
Mar 31 2006, 21:47
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Starick @ Mar 31 2006, 22:27)  Я в основном практик, так как теория почти всегда не совпадает с практикой, то я бы хотел узнать у гостей данного топика, которые только и делают, что приводят лишь в свой довесок теорию об автоматическом управлении, кто-нибудь реально собирал цифровую систему стабилизации какого-нибудь параметра? И с какими проблемами сталкнулся? Или так, где-то услышал, что-то не допонял, по - своему пересказал? По поводу, что любая обратная связь - есть ПИ регулятор. Профессор спрашивает у студента:" Есть ли у слона крылья?". Студент отвечает: "Есть, только они стремятся к нулю". Знаете, а ведь в довесок к своим сообщения ТАУ приводите именно Вы.. До вашего появления, как ни странно никто даже и не упомянул о ней.. Лабораторный БП будет считаться цифровой системой стабилизации какого-то параметра? Проблем никаких (кроме калибровки АЦП): требуемое напряжение -> код -> ЦАП -> Силовая часть -> ФНЧ -> АЦП -> корректировка кода. Только боюсь такой пример автору ветки не поможет, у него задача сложнее. Все не могу понять, или вам жалко поделиться опытом или просто нечего сказать.
|
|
|
|
|
Apr 1 2006, 04:56
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Пока вы тут дискуссировали дело то двигается... девайс удалось застабиллизировать.... очень помогло вот это http://lib.com.ru/Technics/kr_te_d_32.htmдолго врубался... когда врубился сделал как сам это вижу... всетаки соглашусь со Стариком в том что только практика и ещё раз практика теория дело хорошее - ну это какбы немного отличающиеся вещи.... плохо или хорошо получилось скажу позже... а пока жду печ плат и девайс отправиться на экспертизу... после чего расскажу что и как! поповоду программной реаилизации регуляторов вопрос остается открытым хочется посмтреть все таки изящность программного решения - ибо уделяю этому достаточную серьезность :-)
Сообщение отредактировал Kovrov - Apr 1 2006, 05:25
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Apr 1 2006, 06:50
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
На AVR под рукой нету примера ПИ регулятора, который можно было прям выдрать и сюда положить. А вот для 286 есть, думаю переписать на AVR не составит труда.
lim уровень насыщения входа, ks - setpoint, k2 - интегральный коэффициент, k1 - пропорциональный коэффициент. Выход беззнаковый, поэтому в конце производится манипуляция со знаковым битом.
в AX входное значение mov bx, lim add ax, ks jo c61 cmp bx, ax jl c61 neg bx cmp ax, bx jl c61 c63: mov bx, ax mov cx, k2 imul cx add word ptr sgm, ax adc word ptr sgm+2, dx jo a94 mov ax, bx mov cx, k1 imul cx add ax, word ptr sgm adc dx, word ptr sgm+2 jo a82 xor dh, 80h a85: в Dx результат
a82: js a84 xor dx, dx jmp a85 a84: mov dx, 0ffffh jmp a85 a94: js a99 xor dx, dx mov word ptr sgm, dx mov word ptr sgm+2, 8000h jmp a85 a99: mov dx, 0ffffh mov word ptr sgm, dx mov word ptr sgm+2, 7fffh jmp a85 c61: mov ax, bx js c63 neg ax jmp c63
Сообщение отредактировал DS_ - Apr 1 2006, 06:50
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Apr 1 2006, 13:19
|

Мастер-фломастер
   
Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700

|
Цитата(defunct @ Apr 1 2006, 00:47)  Все не могу понять, или вам жалко поделиться опытом или просто нечего сказать. могу сказать как я делал очень пид регулятор.. Kp = коэффицент пропрц. Ki = интегр постоянная Kd = дифф постоянная [П] proporc = Kp*(Ustavka_i-izm) [И] INT = (Tpwm*Kp*(ustavka_I-izm)/Ki [Д] Diff = (Kd*Kp*(LAST_izm-izm))/Tpwm OUT(pid) = Diff+INT+proporc ;======================== вообщем для одной из старых задач это прокатило для стабилизации тока нет - в силу малого разрешения сигнала ос. конечно надо было в цепь ос поставить ОУ с ку=4 это бы наверняка спасло. но я пошел несколько иным путем о чем позже сообщу...
Сообщение отредактировал Kovrov - Apr 1 2006, 13:22
--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
|
|
|
|
|
Apr 1 2006, 13:30
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Цитата(Kovrov @ Apr 1 2006, 17:19)  Цитата(defunct @ Apr 1 2006, 00:47) 
Все не могу понять, или вам жалко поделиться опытом или просто нечего сказать.
могу сказать как я делал очень пид регулятор.. Kp = коэффицент пропрц. Ki = интегр постоянная Kd = дифф постоянная [П] proporc = Kp*(Ustavka_i-izm) [И] INT = (Tpwm*Kp*(ustavka_I-izm)/Ki [Д] Diff = (Kd*Kp*(LAST_izm-izm))/Tpwm OUT(pid) = Diff+INT+proporc ;======================== Для И канала Вы либо здесь ошиблись, либо в программе - там должна стоять сумма всех предыдущих (ustavka_I-izm). Без этого нет интеграла, и регулятор неустойчив. Кстати, в источниках питания не применяется, как правило Д канал, поскольку он обостряет переходной процесс, который может нагнуть или источник, или нагрузку.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Apr 1 2006, 15:43
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211

|
Я полностью соглашаюсь с Ковровым. Тот пример программного ПИД регулятора, который Вы привели и стало основой моего одного проекта. Так как именно разделение вычислений каждого звена ПИД регулятора позволило гибко настроить его коэффициенты на готовом объекте. Только одно замечание: Вы не предусмотрели такую особенность, как насыщение интегратора, при котором необходимо отключить накопление ошибки интегрального звена. В довесок приведу часть кода для Имейдж Крафта delta=present_period-zadanie_oborotov; PID=delta*Kp; if(!(status_flag&(1<<saturation_flag))) { integral=integral+delta; } temp=Ki*integral/1000; PID=PID+temp; temp=Kd*(delta-delta1)/1000; PID=PID+temp; delta1=delta; status_flag&=(~(1<<saturation_flag)); //////////////////////////////////////////////////////////////////////////////// PWM=PID>>12; if(PWM>127) { PWM=127; status_flag|=(1<<saturation_flag); } if(PWM<-127) { PWM=-127; status_flag|=(1<<saturation_flag); } OCR2=PWM+127; Может написано и убого, но понятно. Этот регулятор применялся именно для стабилизации частоты вращения двигателя. Коэфициенты подбирались уже на "живую".
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|