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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ПИД регулирование, все что с ним связано
ucramola
сообщение Mar 20 2005, 23:05
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 18-03-05
Пользователь №: 3 481



Цитата(Akakiy @ Nov 18 2004, 20:05)
Может кто нибудь видел сишные исходники ПИД регулятора. Хотчется глянуть как народ решает эту задачку.
*


линк вдогонку http://www.jashaw.com/pid/code.htm
это конечно примитивщина, но на 1й раз пойдет

теория http://atm.h1.ru/root/theory/theory.html на "сруском"

а вообще для прграммирования удобней

u(k+1)=K1*u(k)-K2*u(k-1)+K3*u(k-2)
u(i)- управляющее воздействие на i шаге
K1,2,3-коэффициенты
Go to the top of the page
 
+Quote Post
max123
сообщение Apr 5 2005, 04:25
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 23-03-05
Пользователь №: 3 615



Модель ПИ регулятора.

Управление осуществляется по формуле:

Управление = Управление + Кп * (Текущее_рассогласование - Предыдущее_
рассогласование) + 1/ Ти * Текущее_рассогласование.

Управление(Out) выход регулятора шкала 0-100
Кп - коэффициент пропорциональности = 0.1
Ти - время интегрирования = 5 с

Регулятор должен вызываться с какой то периодичностью допустим
раз в 1 секунду, тогда значение Ти будет в секундах

Интегральная часть (Ui) = 1/ Ти * Текущее_рассогласование


Шаг 1
Pv Расход воздуха равен 10 м3/ч
Sp Задание по воздуху 20 м3/ч
Текущее_рассогласование = Sp- Pv = 20 - 10 = 10
Предыдущее_рассогласование = 0
При первом включении регулятора Ui = - Кп * Текущее_рассогласование , что бы выход регулятора был равен 0.
Out = 0 + 0.1 * ( 10 - 0 ) + (- 0.1 * 10 ) = 0

Через 1 секунду

Шаг 2
Pv Расход воздуха равен 10 м3/ч
Sp Задание по воздуху 20 м3/ч
Текущее_рассогласование = Sp- Pv = 20 - 10 = 10
Предыдущее_рассогласование = 10
Ui = 1/5 * 10 = 2
Out = 0 + 0.1 * ( 10 - 10 ) + 1/5 * 10 = 2

Через 1 секунду

Шаг 3
Pv Расход воздуха равен 15 м3/ч
Sp Задание по воздуху 20 м3/ч
Текущее_рассогласование = Sp- Pv = 20 - 15 = 5
Предыдущее_рассогласование = 10
Ui = 1/5 * 10 = 2
Out = 2 (Out) + 0.1 * ( 5 - 10 ) + 1/5 * 10 = 2 - 0.5 +2 = 3.5

И т д

Если выход регулятора будет больше 100 или меньше 0 то
выход регулятора нужно замораживать
Go to the top of the page
 
+Quote Post
Fast
сообщение Apr 5 2005, 05:00
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Эмпирически я получил (и использую для ФАПЧ КАМ-демодуляторов) такую разновидность
u(k+1)=K1*u(k)-K2*u(k-1) + K3*s(k)
s(k+1)=s(k) + Ka*u(k)

u(i)- управляющее воздействие на i шаге
s(i)- усредненное воздействие на интервале (постоянка)
K1,2,3-коэффициенты

Соотношение коэф-тов приблизительно
K2 = 0.2-0.7 K1
K3 = 0.1-1.0 K1
Ka = 0.001-0.1 K1

Характеристика ПИФ получается узкополосная, но пологая - достаточно быстрый захват и установление + приемлемое сглаживание в установившемся режиме
Go to the top of the page
 
+Quote Post
pschl
сообщение Apr 27 2005, 16:57
Сообщение #19





Группа: Новичок
Сообщений: 9
Регистрация: 26-04-05
Пользователь №: 4 522



Прежде всего нужно начать с того, каков объект и его передаточная функция. Тип регулятора и инженерные методы его синтеза выбираются исходя из модели объекта. Да, классический случай прост, но, например для температурных процессов можно добавить форсирование, так как они медленные... и.т.д А задача программирования достаточно проста. Выбрать дискретный регулятор(модель) и вперед. Есть простой способ получения С кода регулятора. Берется MATLAB с Control System ToolBox, синтезируется и моделируется в нем система управления, а далее можно получить C- код регулятора, там даже некое API есть и библиотеки нужные, как это сделать, написано в документации.
Go to the top of the page
 
+Quote Post
Fast
сообщение Apr 28 2005, 15:03
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(pschl @ Apr 27 2005, 19:57)
Прежде всего нужно начать с того, каков объект и его передаточная функция. Тип регулятора и инженерные методы его синтеза выбираются исходя из модели объекта.

Вот такой обобщенный вопрос:
А если не знаем объект и его передаточную функцию - и все это черный ящик. И модель объекта построить сложно, чтоб адекватно все свойства отражала.
Есть только входные воздействия и выходные отклики (и мы знаем какой он должен быть с вероятностью < 1). Что делать ??
То есть, как строить систему с обучением в общем я знаю, но как обучать, чтобы добиться лучшего приближения и макс. быстрой стабилизации(захвата) - очень хочу знать.

Что значит "форсирование"
Цитата(pschl @ Apr 27 2005, 19:57)
..можно добавить форсирование, так как они медленные...
Go to the top of the page
 
+Quote Post
yuriyc
сообщение May 5 2005, 04:34
Сообщение #21


Участник
*

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



Была аналогичная проблема. Достаточно долгий выход на режим из за перерегулирования и достатачно длительного затем успокоения системы. Причем требовалось убрать перерегулирование температуры совсем. Задача была в поддержании температур в диапазоне от 30 до 400 градусов с точностью не менее 0.2 градусов. выход на режим осуществляется с со скоростью от 0.5 до 100 грд/мин.
Перерегулирование происходит по двум причинам
1. влияние интегральной, накопившейся за время выхода на режим.
2. из за тепловой инерции системы.
Решилось следующим образом: Был взят класический ПИД закон. при выходе на заданную температуру интегральная составляющая не участвует. т.к. ее влияние важно только на этапе поддержания.
Затем империческим путем определена тепловая инерция системы. т.е. Перелет без участия интегральной. Таким образом получили формулу расчета, дельты когда при выходе на режим регулирование надо прекращать.
Тзаданная = Тзаданная - дельта.
После прекращения регулирования ждем падения скорости прироста температуры практически до нуля. и начинаем регулирование.
Чтобы не было провала в регулировании из за отсутствия интегральной ее надо начинать накапливать с температуры зависящей от скорости выхода и заданной температуры. (формулу получили также империческим путем)

Кстати. Можно еще не ждать перелета, а принудительно понижать скорость на конечном этапе.
Таким образом время выхода на режим уменьшается в разы
Go to the top of the page
 
+Quote Post
yuriyc
сообщение May 5 2005, 06:07
Сообщение #22


Участник
*

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



Кстати ПИД регудятор можно усовершенствовать. Добавив к нему постоянную составляющую, зависящую от заданного значения. Мы ведь знаем какое воздействие надо оказывать на систему в состоянии поддержания. Возьмем это воздействие вычтем где-то 5-10%. и добавим к резульату ПИД расчета.
Тем самым мы уменьшим время выхода на режим поддержания. т.к. интегральную составляющую надо копить меньше
Go to the top of the page
 
+Quote Post
-Tумблер-
сообщение May 6 2005, 11:40
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040



Цитата
..при выходе на заданную температуру интегральная составляющая не участвует. т.к. ее влияние важно только на этапе поддержания. ..


Цитата(yuriyc @ May 5 2005, 09:07)
Кстати ПИД регудятор можно усовершенствовать. Добавив к нему постоянную составляющую, зависящую от заданного значения. 


Удивительно, как иногда разные разработчики независимо
друг от друга приходят к одним и тем же выводам. biggrin.gif
Что удивительно приятно. blush.gif

Могу лишь добавить, что иногда может быть удобно
определить массив "постоянных составляющих" для разных температур.
Так сказать, "равновесную кривую".
А значения между этими точками считать посредством
кусочно-линейной апроксимации.


--------------------

- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
Go to the top of the page
 
+Quote Post
yuriyc
сообщение May 6 2005, 17:23
Сообщение #24


Участник
*

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



Цитата(-Tумблер- @ May 6 2005, 14:40)
Могу лишь добавить, что иногда может быть удобно
определить массив "постоянных составляющих" для разных температур.
Так сказать, "равновесную кривую".
А значения между этими точками считать посредством
кусочно-линейной апроксимации.
*


Полностью согласен. При не линейности характеристик это очень даже поможет smile.gif Скорее это будет даже более правильным решением
Go to the top of the page
 
+Quote Post
khach
сообщение May 6 2005, 19:46
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



При ПИД регулировке нагревателей (и охладителей) столкнулся с ситуацией, когда постоянная времени "вверх" сильно отличаеться от постоянной времени "вниз". Кто нибудь сталкивался с регуляторами с двумя P (одна-"вверх", другая -"вниз")? И что говорит академическая теория устойчивости о таких системах?
Go to the top of the page
 
+Quote Post
yuriyc
сообщение May 11 2005, 06:34
Сообщение #26


Участник
*

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



Цитата(khach @ May 6 2005, 22:46)
При ПИД регулировке нагревателей (и охладителей) столкнулся с ситуацией, когда постоянная времени "вверх" сильно отличаеться от постоянной времени "вниз". Кто нибудь сталкивался с регуляторами с двумя P (одна-"вверх", другая -"вниз")? И что говорит академическая теория устойчивости о таких системах?
*

Ну на счет академическай теории устойчивости о таких системах не скажу. Не вкурсе. Но мне кажется, что конечная устойчивость будет связана с точностью управляющего воздействия. Так в систевах нагрева ее можно довести до сотых градуса используя электронагреватели. А вот при охлаждении уже нет такого результата. Так для крио установок на жидном азоте, заявленная точность крана впрыска +-5грд/сельсия. Охладить можно до -400грд. Тут уже вопрос в реализации системы и общем диапазоне рабочих температур.
Точность можно повысить, я думаю, за счет константы холода и регулированным подогревом.
Что касается постоянной времени, то если нагрев принудительный, то охлаждение наверняка естественное ну или обдув воздухом. Отсюда и разница. Эфективность то нагрева выше.
Go to the top of the page
 
+Quote Post
-Tумблер-
сообщение May 11 2005, 09:47
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040



Цитата(khach @ May 6 2005, 22:46)
Кто нибудь сталкивался с регуляторами с двумя P (одна-"вверх", другая -"вниз")? И что говорит академическая теория устойчивости о таких системах?


Специально ничего такого от академической науки найти не удалось.
Что касается регуляторов температуры, то подозреваю что "все они такие".
Причем в Якутии это будет не так, как в Сахаре. blush.gif
Что можно было бы предложить ? Если очень надо, можно
использовать разные передаточные функции регулятора для процесса
нагревания и охлаждения. Видимо, так можно улучшить динамические свойства системы.
Общие законы устойчивости, конечно, не меняются.
'' ..достаточный запас по фазе на частоте единичного усиления
разомкнутой системы..''
smile.gif


--------------------

- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
Go to the top of the page
 
+Quote Post
ViDo
сообщение Jun 28 2005, 14:48
Сообщение #28


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 3-02-05
Пользователь №: 2 397



В продолжение темы вопрос. Нужно регулировать температуру в печи, на твердом топливе со шнековой подачей. Привод - асинхронный двигатель с частотным управлением. Я измеряю температуру и выдаю сигнал на частотник 0-10В, подойдет ли этот алгоритм? Я читал что на выходе ПИД - ШИМ сигнал, может чего путаю? huh.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 23:49
Рейтинг@Mail.ru


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