Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

ПИД-регулирование   Найти похожие ветки 

 
swan ©   (2006-05-10 20:16) [0]

Кто-нибудь пробовал реализовать ПИД-регулирование в Delphi ?
При попытке регулирования "вживую" достаточно инерционная система начинает идти вразнос. Помимо общей теории хотелось бы увидеть хоть краешек кода.
С уважением. Павел.


 
Юрий Зотов ©   (2006-05-10 20:42) [1]

А какая разница, на чем написана программа? Delphi, или не Delphi - при чем тут это?

Она либо написана правильно, либо нет. А какой именно компилятор сгенерил ее код - совершенно перпендикулярно.


 
Ангела ©   (2006-05-10 22:39) [2]

Если она идет вразнос, значит просто неправильно выбраны коэффициенты.
А на чем писать - вопрос десятый.


 
Jeer ©   (2006-05-11 09:54) [3]

swan ©   (10.05.06 20:16)

Вообще-то САУ вначале рассчитывают, затем отлаживают с помощью специализированных программных средств: MathLab, VisSim и аналогичные.

Перевести затем на подходящий язык программирования труда не составит, если понятна теория дискретных систем и принципы построения САУ с учетом физических ограничений.

А сам PID-регулятор вполне примитивная вещь с передаточной функцией

W = Kp + Ki/s + Kd*s

Методов определения (расчета) коэффициентов достаточно много в соответствующей литературе, например метод Зиглера-Никольса.


 
swan ©   (2006-05-11 20:15) [4]

Спасибо за интерес к вопросу. Просто я пыталя сделать "самодельный" регулятор, но ничего путного не получилось. Раньше приходилось пользоваться готовыми ПИД-регуляторами, например ФБ в STEP7. Всё работало. Попытался в ИНЕТЕ пошарить литературу по данному вопросу, но кроме голой теории ничего не нашёл. Если возможно, помогите с алгоритмом. Кодинг я уж как=нибудь осилю сам.    Заранее благодарен.
С уважением ,   ПАВЕЛ.


 
Virgo_Style ©   (2006-05-11 23:11) [5]

Голая теория есть... кодинг сам осилишь... Не понимаю тогда, в чем должна заключаться помощь?


 
Jeer ©   (2006-05-12 11:55) [6]

Опять не ясно - в чем проблема.
"Голая теория" -  с нее обычно и надо начинать.
Ок.

Предположим, есть объект управления, описываемый совокупностью инерционного (апериодического звена первого порядка)
с передаточной функцией (ПФ):
Wo(p) = Ko/(To*p + 1)  (1)
Ko = 1
To = 100 сек

и звена чистого запаздывания с Tz = 10 сек.

Физическое ограничение на выходной сигнал Ymax = 1.2
Физическое ограничение на сигналы в САУ <= 1.5
Выходной сигнал вводится в САУ через безинерционный датчик с коэффициентом передачи Kd = 1

Требуется создать САУ таким объектом с параметрами:

- астатическая система;
- перерегулирование не выше 20;
- минимальное время регулирования;

Решение.
Поскольку задана астатическая система, т.е. система с нулевой ошибкой в установившемся режиме, то
в качестве регулятора необходимо использование ПИ-регулятора, а поскольку задано минимальное время регулирования, то - ПИД-регулятор.

Из "голой" теории и практики известны соотношения:

Для систем с запаздыванием время регулирования Tr = (7..8) * Tz и для нашего случая составит 70-80 сек

Для ПИД-регулятора, описываемого ПФ
Wr = Kr * ( 1 + 1/(Ti * p) + Td * p)  (2)

с учетом заданных требований к переходному процессу (20%), имеем:

Kr = 1.2 / ( Tz / To) = 12
Ti = 2 * Tz = 20
Td = 0.4 * Tz = 4

Система уравнений, описывающая работу САУ с объектом выглядит так

Сигнал управления:
lim( Xc, 1.5)
Сигнал с выхода объекта:
lim(Yo,1.2)
Сигнал ошибки:
E = Yo - Xc
Сигнал на входе регулятора
Xr = lim(E,1.5)
Сигнал на выходе регулятора  Y
Yr = lim( Wr(p),1.5)

где lim( X,Y) - операция ограничения сигнала X уровнем Y по модулю.

Для перехода к разностным уравнениям перепишем ур-ние (2) так
Wr(P) = Kp + Ki / p + Kd * p
где Kp = Kr = 12 - усиление пропорционального канала
Ki = Kr / Ti = 0.6 - усиление интегрального канала
Kd = Kr * Td  = 48 - усиление дифференциального канала

Один из вариантов разностного уравнения ПИД-регулятора:

Yr[i] = Kp * Xr[i] + Ki * sum( Xi) + Kd * dXi

где sum(Xi)  - сумма (интеграл) входного сигнала за N отсчетов
dXi = Xr[i] - Xr[i-1] - первая разность (производная) входного сигнала.

С учетом действующих физических ограничений в системе и уровня задающего сигнала
параметры регулятора могут несколько отличаться от практически рекомендуемых.
А дальше - подстройка.

Собственно и все:)


 
antonn ©   (2006-05-12 13:34) [7]

Z-z-z...
:)


 
Гуест   (2006-05-21 02:48) [8]

Аффтар жжет...

Приятно, хоть кто-то знает теорию :)


 
Германн ©   (2006-05-21 03:30) [9]


> Гуест   (21.05.06 02:48) [8]
>
> Аффтар жжет...
>
> Приятно, хоть кто-то знает теорию :)
>


Но неприятно, что строку
> Аффтар жжет... не заканчивает смайлик. И то, что сию строку опубликовал "человек без имени". :-(
Тем более, что тема вопроса весьма нетривиальна для большинства пользователей Дельфи!



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
15-1148565801
dimodim-furyz
2006-05-25 18:03
2006.06.25
StaffCop.У когонить есть решение этой чумы?


15-1149268194
ArtemESC
2006-06-02 21:09
2006.06.25
Программка...


4-1143015386
EgorovAlex
2006-03-22 11:16
2006.06.25
Почему ReadPrinter читает с принтера максимум 64Кб данных за одну


11-1129102697
Алексей Ефременко
2005-10-12 11:38
2006.06.25
Аналог компонента TChart в KOL


4-1142613185
AndreyRus
2006-03-17 19:33
2006.06.25
Аналог IOCTL_SCSI_RESCAN_BUS в Windows 2003