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

 
 
> Структурная реализация ПИД, как организовать?
_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, 13:34
Сообщение #2


Местный
***

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



Погоняю конечно. Но у меня могут быть достаточно радикальные изменения в коде, которые еще не однозначно решены. Писать я буду на ассемблере (кто там про мазохизм писал? wink.gif), и к примеру аппаратного умножения на моем камне нет (снова про мазохизм), надо будет умножать вручную. Так я пока даже не знаю, буду ли я 10 бит на 10 бит из АЦП умножать в 3 байта результата или возьму только по одному старшему байту из АЦП, а 2 младших бита отброшу... А от этого время вычислений будет меняться сильно. Я пока с общей структурой уже можно сказать определился с помощью участников этой темы. А например как управлять двигателем вправо-влево по двум выходам ШИМ (на моем камне 2 выхода ШИМ) я пока даже не представляю. В прототипе на PIC16F684 для управления двигателем использовано 4 вывода МК - у меня столько нет лишних. Но я подозреваю, что и двумя можно обойтись - один по часовой (второй при этом 0), второй - против (первый при этом 0).
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 24 2016, 13:45
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(_Ivana @ Mar 24 2016, 15:34) *
(кто там про мазохизм писал? wink.gif)

Я в такие игры лет 15 назад наигрался от отсутствия дешевых ресурсов на МК, больше не хочу sm.gif
Возмите что ль маленький STM32, ну или на крайний случай PIC24 - приятная архитектура wink.gif
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
- - _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
||- - 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 - 04:13
Рейтинг@Mail.ru


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