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

|
Думаю реализовать ПИД-регулятор на АВР Тини-13. Хочу уточнить, правильно ли я выбираю структуру реализации.
Сначала инициализирую все что надо, читаю по трем АЦП значения, задающие 3 коэффициента ПИД. Запускаю таймер с требуемой частотой опроса датчика, устанавливаю по нему прерывание. В прерывании читаю показания АЦП датчика и выставляю флаг, что пришло новое значение. В мэйне в бесконечном цикле жду пока не установится этот флаг, а как он установился - рассчитываю управляющее воздействие и кладу его в ШИМ, сбрасываю флаг. Все красиво, но непонятно одно - у меня один единственный таймер - он определяет частоту опроса и он же определяет частоту ШИМ. Частота прерываний больше или равна частоте ШИМ, поскольку ШИМ крутит счетчик от 0 до 255, а прерывание - от заданного мной значения до 255. И вообще, если я буду опрашивать датчик чаще, чем выводить управляющее воздействие, будет имхо как-то не комильфо. Вижу 2 варианта 1) запускать таймер на полный счетчик, чтобы частота опроса равнялась частоте выдачи ШИМ. Но не знаю, будет ли успевать обновляться значение ШИМ, оно там вроде как буферизуется, может не успеет обновиться как уже новое пора - и так каждый раз. 2) запустить таймер на частоте раза в 4 выше требуемой частоты опроса датчика, шим будет генерироваться с этой частотой - 4 раза подряд одно и то же значение, но больше гарантия что оно обновится. А в прерывании поставить еще один счетчик, и опрашивать датчик/выставлять флаг/рассчитывать выходное значение только каждое четвертое прерывание таймера
Что скажете, господа?
|
|
|
|
|
 |
Ответов
|
Apr 8 2016, 11:08
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(Tanya @ Apr 8 2016, 13:11)  Каков у Вас период ШИМа предполагается? При частоте опроса датчика 256Гц (ориентируясь на прототип, может сделаю и в 2-4 раза меньше) частота таймера ШИМ пусть в 4 раза больше - 1кГц. Каждый 4-й тик полного счетчика таймера считаю управление. Если, конечно, мой выбранный драйвер на L298N будет нормально работать на такой частоте ШИМа. Если пищать будет - пока думаю что некритично. Цитата(Tanya @ Apr 8 2016, 13:11)  А вместо потенциометра и АЦП можно сделать кнопки - увеличить и уменьшить. Можно. К тому же я предполагаю снимать коэффициенты в 6 бит (64 варианта от 0 до 100%), с одной стороны можно было бы и побольше, но так я гарантированно уложусь в 2 байта результата при однобайтном значении ошибки каждой составляющей и сумме трех умноженных на коэффициенты ошибок. Но тогда возникает вопрос визуализации значений коэффициентов - переменный резистор отличный прибор задания значения и визуализации его же забесплатно (можно хоть круговую шкалу нарисовать), кнопки и всякие энкодеры в этом отношении проигрывают. Цитата(Tanya @ Apr 8 2016, 13:11)  А время вычислений легко сделать постоянным. Наверное. Если закопаться в математику и написать чисто линейный алгоритм нормализаций и масштабирований значений в диапазоны безо всяких условных переходов, который будет на порядок сложнее и неочевиднее.
|
|
|
|
Сообщений в этой теме
_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 Ну вот я и планирую новые значения считывать с пот... Apr 8 2016, 13:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|