Текущий архив: 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.47 MB
Время: 0.009 c