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

 
 
> ПИД регулятор на АВР
Anton_1000
сообщение Feb 1 2009, 15:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 13-01-09
Из: г.Севастополь
Пользователь №: 43 288



Уважаемые знатоки ПИД, я собрал регулятор на основе алгоритма закодированного на С в AVR221. Меня интересует правильно ли учтены И и Д составляющие. Можно ли их как-то усовершенствовать. Не понятно как учтено время интегрирования и диффренцирования?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
slog
сообщение Feb 1 2009, 15:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Время естественно зависит от частоты запуска регулятора.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Anton_1000
сообщение Feb 1 2009, 15:48
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 13-01-09
Из: г.Севастополь
Пользователь №: 43 288



Частота расчёта ШИМ значения по ПИД алгоритму примерно 3 раза в секунду. При каких условиях или с какой частотой необходимо обнулять Сумму ИНТЕГРАЦИИ?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 1 2009, 16:04
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Anton_1000 @ Feb 1 2009, 18:01) *
Уважаемые знатоки ПИД, я собрал регулятор на основе алгоритма закодированного на С в AVR221. Меня интересует правильно ли учтены И и Д составляющие. Можно ли их как-то усовершенствовать. Не понятно как учтено время интегрирования и диффренцирования?

Уважаемый Anton_1000!
Прочитайте (и почитайте) правила форума. Вы написали абсолютно пустое по содержанию и названию сообщение.
К настоящему моменту его посмотрели 14 человек, которые впустую затратили на это свое время и электроэнергию.
Зачем Вы пишите - "я собрал регулятор на основе алгоритма закодированного на С в AVR221"
Причем тут С и АВР? Правильно ли Вы что-то там учли, что и как Вы хотите усовершенствовать, - известно только Вам и состоящим с Вами в астральной связи телепатам. Но им-то этого читать не нужно.
А Вам нужно почитать...
Go to the top of the page
 
+Quote Post
Anton_1000
сообщение Feb 1 2009, 16:59
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 13-01-09
Из: г.Севастополь
Пользователь №: 43 288



Мир многообразен и каждая букашка или козявка имеет право на жизнь в нём.
Go to the top of the page
 
+Quote Post
Simok
сообщение Feb 1 2009, 18:19
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 29-01-09
Из: Moscow
Пользователь №: 44 153



Цитата(Anton_1000 @ Feb 1 2009, 19:59) *
Мир многообразен и каждая букашка или козявка имеет право на жизнь в нём.


А я вот например не знаю, что такое "ПИД" biggrin.gif А слово закодированного, означает шифрование или скомпилириванного (собранного) исходника? wink.gif
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 1 2009, 19:41
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Anton_1000 @ Feb 2 2009, 00:59) *
Мир многообразен и каждая букашка или козявка имеет право на жизнь в нём.

Вы бы подробнее описали свой проект: чем у Вас ПИД управляет?
Советую эту статейку глянуть.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Anton_1000
сообщение Feb 3 2009, 05:09
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 13-01-09
Из: г.Севастополь
Пользователь №: 43 288



Рассчитанное значение пид-регулятора нормируется к значение ШИМ от 0 до 511 (9 разрядов). Далее преобразуется в пневматический сигнал для управления мембранным исполнительным механизмом с помощью которого регулируется давление в паропроводе. Вопрос состоит в том нужно ли учитывать время между соседними измерениями рассогласования, ведь в приедённом коде этого не делается, а код из AN.

CODE
error = setPoint - processValue;

// Calculate Pterm and limit error overflow
if (error > pid_st->maxError)
p_term = MAX_INT;
else if (error < -pid_st->maxError)
p_term = -MAX_INT;
else
p_term = pid_st->P_Factor * error;

// Calculate Iterm and limit integral runaway
temp = pid_st->sumError + error;
if(temp > pid_st->maxSumError){
i_term = MAX_I_TERM;
pid_st->sumError = pid_st->maxSumError;
}
else if(temp < -pid_st->maxSumError){
i_term = -MAX_I_TERM;
pid_st->sumError = -pid_st->maxSumError;
}
else{
pid_st->sumError = temp;
i_term = pid_st->I_Factor * pid_st->sumError;
}

// Calculate Dterm
d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);

pid_st->lastProcessValue = processValue;

ret = (p_term + i_term + d_term) / SCALING_FACTOR;
if(ret > MAX_INT){
ret = MAX_INT;
}
else if(ret < -MAX_INT){
ret = -MAX_INT;
Причина редактирования: Оформление цитирования исходника в соответствующий тэг - codebox.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 3 2009, 05:34
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Ещё раз.
Это время задаётся частотой, с которой ты запускаешь свой регулятор.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 3 2009, 07:36
Сообщение #10





Guests






Цитата(Anton_1000 @ Feb 1 2009, 18:01) *
Уважаемые знатоки ПИД, я собрал регулятор на основе алгоритма закодированного на С в AVR221. Меня интересует правильно ли учтены И и Д составляющие. Можно ли их как-то усовершенствовать. Не понятно как учтено время интегрирования и диффренцирования?


В школу.
Go to the top of the page
 
+Quote Post
ucMike
сообщение Feb 4 2009, 19:49
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 21-11-08
Пользователь №: 41 832



Anton_1000, как у тебя с безударным переходом при переключении режима "ручной-автомат"?
Уточню. Как это отразится на p_term, i_term, d_term?

И в каком положении будет клапан, если setPoint = processValue и setPoint имеет различные значения("задание").
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:46
Рейтинг@Mail.ru


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