|
Структурная реализация ПИД, как организовать? |
|
|
|
Mar 24 2016, 09:02
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Думаю реализовать ПИД-регулятор на АВР Тини-13. Хочу уточнить, правильно ли я выбираю структуру реализации.
Сначала инициализирую все что надо, читаю по трем АЦП значения, задающие 3 коэффициента ПИД. Запускаю таймер с требуемой частотой опроса датчика, устанавливаю по нему прерывание. В прерывании читаю показания АЦП датчика и выставляю флаг, что пришло новое значение. В мэйне в бесконечном цикле жду пока не установится этот флаг, а как он установился - рассчитываю управляющее воздействие и кладу его в ШИМ, сбрасываю флаг. Все красиво, но непонятно одно - у меня один единственный таймер - он определяет частоту опроса и он же определяет частоту ШИМ. Частота прерываний больше или равна частоте ШИМ, поскольку ШИМ крутит счетчик от 0 до 255, а прерывание - от заданного мной значения до 255. И вообще, если я буду опрашивать датчик чаще, чем выводить управляющее воздействие, будет имхо как-то не комильфо. Вижу 2 варианта 1) запускать таймер на полный счетчик, чтобы частота опроса равнялась частоте выдачи ШИМ. Но не знаю, будет ли успевать обновляться значение ШИМ, оно там вроде как буферизуется, может не успеет обновиться как уже новое пора - и так каждый раз. 2) запустить таймер на частоте раза в 4 выше требуемой частоты опроса датчика, шим будет генерироваться с этой частотой - 4 раза подряд одно и то же значение, но больше гарантия что оно обновится. А в прерывании поставить еще один счетчик, и опрашивать датчик/выставлять флаг/рассчитывать выходное значение только каждое четвертое прерывание таймера
Что скажете, господа?
|
|
|
|
Сообщений в этой теме
_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 _Ivana Baser вот этот вариант я и имел в виду под номером... Mar 24 2016, 12: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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|