реклама на сайте
подробности

 
 
> Структурная реализация ПИД, как организовать?
_Ivana
сообщение Mar 24 2016, 09:02
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Думаю реализовать ПИД-регулятор на АВР Тини-13. Хочу уточнить, правильно ли я выбираю структуру реализации.

Сначала инициализирую все что надо, читаю по трем АЦП значения, задающие 3 коэффициента ПИД. Запускаю таймер с требуемой частотой опроса датчика, устанавливаю по нему прерывание. В прерывании читаю показания АЦП датчика и выставляю флаг, что пришло новое значение. В мэйне в бесконечном цикле жду пока не установится этот флаг, а как он установился - рассчитываю управляющее воздействие и кладу его в ШИМ, сбрасываю флаг. Все красиво, но непонятно одно - у меня один единственный таймер - он определяет частоту опроса и он же определяет частоту ШИМ. Частота прерываний больше или равна частоте ШИМ, поскольку ШИМ крутит счетчик от 0 до 255, а прерывание - от заданного мной значения до 255. И вообще, если я буду опрашивать датчик чаще, чем выводить управляющее воздействие, будет имхо как-то не комильфо.
Вижу 2 варианта
1) запускать таймер на полный счетчик, чтобы частота опроса равнялась частоте выдачи ШИМ. Но не знаю, будет ли успевать обновляться значение ШИМ, оно там вроде как буферизуется, может не успеет обновиться как уже новое пора - и так каждый раз.
2) запустить таймер на частоте раза в 4 выше требуемой частоты опроса датчика, шим будет генерироваться с этой частотой - 4 раза подряд одно и то же значение, но больше гарантия что оно обновится. А в прерывании поставить еще один счетчик, и опрашивать датчик/выставлять флаг/рассчитывать выходное значение только каждое четвертое прерывание таймера

Что скажете, господа?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Ivana
сообщение Mar 24 2016, 12:36
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Baser вот этот вариант я и имел в виду под номером 1 в стартовом посте. Мне конечно ВРОДЕ КАК нет смысла менять ШИМ чаще, чем период ПИД. Но если его запускать с той же частотой, то изменение будет отставать на целый один период опроса (не знаю насколько это критично), и я не смогу плавно менять период опроса - таймер будет гонять прерывание от 0 до 255 как ШИМ. Но может мне эта плавность и не потребуется. Но самое главное - мне бы гарантию, что при такой конфигурации у меня вообще будет меняться ШИМ - может там какая двойная буферизация, и изменение значения выхода ШИМ происходит только через 2 такта после обновления его в регистре - тогда у меня просто не будет успевать обновляться ШИМ из-за низкой частоты его настройки. Поэтому я и хотел с запасом частоту ШИМ увеличить по сравнению с частотой опроса датчика. И информация от XVR тоже не противоречит этому. А как это сделать на одном таймере - об это я попытался простыми словами написать в варианте 2 первого поста.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Ivana   Структурная реализация ПИД   Mar 24 2016, 09:02
- - MrYuran   Цитата(_Ivana @ Mar 24 2016, 12:02) Что с...   Mar 24 2016, 09:26
- - _Ivana   Хорошо, тогда поставим вопрос иначе - как вы видит...   Mar 24 2016, 09:28
- - MrYuran   Что это за пид, который надо с частотой шима крути...   Mar 24 2016, 10:01
- - Baser   Частота расчета управляющего воздействия определяе...   Mar 24 2016, 11:02
- - _Ivana   Задача - повторить (возможно с вариациями) что-то ...   Mar 24 2016, 11:06
|- - Baser   Цитата(_Ivana @ Mar 24 2016, 13:06) Задач...   Mar 24 2016, 11:26
- - Tarbal   Я бы начал с определения значений коэффициентов П,...   Mar 24 2016, 11:15
- - Tanya   Цитата(_Ivana @ Mar 24 2016, 12:02) Что с...   Mar 24 2016, 11:33
- - _Ivana   Tarbal, эти значения будут считываться через отдел...   Mar 24 2016, 11:55
|- - Baser   Цитата(_Ivana @ Mar 24 2016, 13:55) препо...   Mar 24 2016, 12:26
|- - Tanya   Цитата(_Ivana @ Mar 24 2016, 14:55) Tanya...   Mar 24 2016, 12:51
- - XVR   В оригинальном AN964 PWM работает на 31.2 KHz, а ц...   Mar 24 2016, 12:13
- - _Ivana   XVR, вот спасибо, Айболит Осталось мне разобратьс...   Mar 24 2016, 12:17
|- - Tarbal   Цитата(_Ivana @ Mar 24 2016, 16:17) XVR, ...   Mar 31 2016, 18:36
- - Baser   Цитата(XVR @ Mar 24 2016, 14:13) В оригин...   Mar 24 2016, 13:00
- - _Ivana   Tanya про модулятор не понял, но идею забыть о тай...   Mar 24 2016, 13:05
|- - Tanya   Цитата(_Ivana @ Mar 24 2016, 16:05) Tanya...   Mar 24 2016, 13:24
- - _Ivana   Погоняю конечно. Но у меня могут быть достаточно р...   Mar 24 2016, 13:34
|- - Baser   Цитата(_Ivana @ Mar 24 2016, 15:34) (кто ...   Mar 24 2016, 13:45
||- - MrYuran   Цитата(Baser @ Mar 24 2016, 16:45) Я в та...   Mar 25 2016, 07:14
|- - Tanya   Цитата(_Ivana @ Mar 24 2016, 16:34) В про...   Mar 24 2016, 14:50
- - _Ivana   Baser согласен, если упрусь в препятствия непреодо...   Mar 24 2016, 13:57
- - amaora   Точная модель Вам не нужна, моделировать не будете...   Mar 24 2016, 16:33
- - _Ivana   Tanya ну в интегральном смысле у меня резких броск...   Mar 24 2016, 19:45
- - Ga_ry   Возьмите ATtiny24 там два таймера, в два раза боль...   Mar 24 2016, 20:09
|- - domowoj   Цитата(Ga_ry @ Mar 25 2016, 02:09) Возьми...   Mar 25 2016, 03:56
|- - esaulenka   Цитата...возьмите XXX ... ...не мучаясь... Отстан...   Mar 25 2016, 11:02
- - sigmaN   Если хочется именно AVR, то я бы как следующую сту...   Mar 25 2016, 10:27
- - MrYuran   Тогда все просто Забить на прерывания и ловить фл...   Mar 25 2016, 11:15
- - _Ivana   MrYuran поясните подробнее. Мне нужно вызывать нек...   Mar 25 2016, 11:26
- - EmbedElektrik   имхо проще врубить автостарт ацп и в его прерывани...   Mar 25 2016, 11:34
- - MrYuran   В общем цикле (main loop) занимаетесь своими мелки...   Mar 25 2016, 11:37
|- - XVR   Цитата(MrYuran @ Mar 25 2016, 14:37) В об...   Mar 25 2016, 15:29
|- - Tarbal   Цитата(MrYuran @ Mar 25 2016, 15:37) В об...   Apr 7 2016, 13:52
- - _Ivana   EmbedElektrik спасибо, хорошая мысль, думал ее. У ...   Mar 25 2016, 11:39
- - _Ivana   Tarbal, давно не заходил на форум, не видел ваш от...   Apr 7 2016, 13:02
- - Tanya   Цитата(_Ivana @ Mar 24 2016, 12:02) Думаю...   Apr 7 2016, 14:57
- - _Ivana   Вы уже предлагали такой вариант, но мне кажется, ч...   Apr 7 2016, 20:29
|- - Tanya   Цитата(_Ivana @ Apr 7 2016, 23:29) Вы уже...   Apr 8 2016, 10:11
- - _Ivana   Цитата(Tanya @ Apr 8 2016, 13:11) Каков у...   Apr 8 2016, 11:08
|- - Tanya   Цитата(_Ivana @ Apr 8 2016, 14:08) При ча...   Apr 8 2016, 12:40
- - _Ivana   Ну вот я и планирую новые значения считывать с пот...   Apr 8 2016, 13:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 09:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016