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

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Не могу добиться устойчивости работы шим регулятора, шим регулирование
DS
сообщение Apr 1 2006, 13:30
Сообщение #46


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Kovrov @ Apr 1 2006, 17:19) *
Цитата(defunct @ Apr 1 2006, 00:47) *


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

могу сказать как я делал очень пид регулятор..
Kp = коэффицент пропрц.
Ki = интегр постоянная
Kd = дифф постоянная
[П] proporc = Kp*(Ustavka_i-izm)
[И] INT = (Tpwm*Kp*(ustavka_I-izm)/Ki
[Д] Diff = (Kd*Kp*(LAST_izm-izm))/Tpwm

OUT(pid) = Diff+INT+proporc
;========================



Для И канала Вы либо здесь ошиблись, либо в программе - там должна стоять сумма всех предыдущих (ustavka_I-izm). Без этого нет интеграла, и регулятор неустойчив. Кстати, в источниках питания не применяется, как правило Д канал, поскольку он обостряет переходной процесс, который может нагнуть или источник, или нагрузку.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Apr 1 2006, 13:36
Сообщение #47


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



дело в том что у меня вся это приблуда запускалась только при изменении значения ос
ну а так то конечно и обязательно сумма до текущего измерения...
ну а так как значение у меня могло измениться только на +- 1 А все это и не прокатитло...


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
Starick
сообщение Apr 1 2006, 15:43
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 4-09-05
Пользователь №: 8 211



Я полностью соглашаюсь с Ковровым. Тот пример программного ПИД регулятора, который Вы привели и стало основой моего одного проекта. Так как именно разделение вычислений каждого звена ПИД регулятора позволило гибко настроить его коэффициенты на готовом объекте. Только одно замечание: Вы не предусмотрели такую особенность, как насыщение интегратора, при котором необходимо отключить накопление ошибки интегрального звена.
В довесок приведу часть кода для Имейдж Крафта

delta=present_period-zadanie_oborotov;
PID=delta*Kp;

if(!(status_flag&(1<<saturation_flag)))
{
integral=integral+delta;
}
temp=Ki*integral/1000;
PID=PID+temp;
temp=Kd*(delta-delta1)/1000;
PID=PID+temp;
delta1=delta;
status_flag&=(~(1<<saturation_flag));

////////////////////////////////////////////////////////////////////////////////

PWM=PID>>12;
if(PWM>127)
{
PWM=127;
status_flag|=(1<<saturation_flag);
}

if(PWM<-127)
{
PWM=-127;
status_flag|=(1<<saturation_flag);
}
OCR2=PWM+127;
Может написано и убого, но понятно.
Этот регулятор применялся именно для стабилизации частоты вращения двигателя. Коэфициенты подбирались уже на "живую".
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 21:44
Рейтинг@Mail.ru


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