Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
15-1149150033
RA
2006-06-01 12:20
2006.06.25
Перезд в столицу? (Киев)


15-1148570205
Kapoo
2006-05-25 19:16
2006.06.25
Молю, помогите с курсовой!..


2-1149743388
XTD
2006-06-08 09:09
2006.06.25
Почему программа работает с паузами ?


1-1148039440
Лопух
2006-05-19 15:50
2006.06.25
Прорисовка на чужом окне. Как?


2-1149704397
Mr tray
2006-06-07 22:19
2006.06.25
в каком модуле содержится MAKELANGID?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский