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

 
 
> Автоматическое регулирование
Destr
сообщение Aug 29 2006, 16:35
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 29-08-06
Пользователь №: 19 915



Уважаемые специалисты, помогите пожалуйста начинающему освоить автоматическое регулирование.
Вопрос заключается в следующем:
Имеется емкость, в которой необходимо поддерживать заданный уровень жидкости.Через одну трубу жидкость поступает в емкость, ее поток не регулируется. Через другую жидкость сливается, регулируется двигателем, который управляется преобразователем частоты. Частота преобразователя задается через контроллер, путем задания целого значения от 1 до 32768. Так вот мне не понятно как связать это значение, задающее работу преобразователя, со значением управляющего воздействия, получаемого из формулы ПИД регулирования.
Очень надеюсь на вашу помощь по такому дилетантскому вопросу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
NickNich
сообщение Sep 10 2006, 13:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



Эххх, давно не брал я в руки шашку.....

Несмотря на кужущуюся простоту, при минимальном требовании "плавности регулирования", система у Вас получается довольно сложной для проектирования, т.е. содержит существенную нелинейность в виде двустороннего нестационарного ограничения по управляющему воздействию на объектрегулирования под названием "бак". Если входной поток, заполняющий бак, обозначить как V, а поток откачиваемый насосом обозначить как Kн*u (предполагается, что насос линейно отрабатывает управляющее воздействие u>=0), то скорость изменения уровня в баке будет:

dLout/dt = V-Kн*u.
Lout - уровень в баке; Кн - коэффициент пересчета числа от 0 до 32768 в производительность насоса.

Двустороннесть ограничения здесь - при u=0 скорость заполнения не может быть больше V, а при u=max скорость слива не может быть быстрее V-Kн*u_max. Нестационарность - в Ваших условиях нет информации о скорости V, поэтому, на этапе проектирования она должна предполагаться неизвестной и нестационарной (как правило - медленно меняющейся). Дополнительная сложность - насос работает только на слив, поэтому нужно специльно отрабатывать знак ошибки:

Err = Lset-Lout
Lset - задающее воздейсвтие.

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

Еще одна сложность - дискретность датчика уровня. Исполнитель у Вас 15-ти разрядный. Датчик уровня, скорее всего будет выдавать значительно грубее. Может так получиться, что система регулирования, в стационарном состоянии, бутет качаться вблизи установившегося значения на +/-1 разряд этого датчика. Такое явление называется "предельный цикл низкого уровня".

Простейший алгоритм поддержания заданного уровня здесь самоочевиден. Если DLout - один дискрет датчика уровня, то:

при Err > DLout устанавливается u=0
при Err < -DLout устанавливается u=u_max
где u_max - такое значение от 0 до 32768, что Kн*u_max заведомо больше максимально возможной скорости заполнения бака Vmax.



Если выставлено упомянутое требование "плавности регулировки", то Вам необходимо подобрать такое u0, при котором обеспечивается два равенства для текущего значения V0 (V0 неизвестно и медленно меняется):

V0-Kн*u0 = 0
Err = 0.

Точно удовлетворить эти равенства не получится в силу дискретности датчика уровня. Вот здесь и может появиться уже упомянутый "предельный цикл низкого уровня" - это характерное свойство
всех цифровых систем регулирования по ошибке с малой разрядностью датчика. Но приближенно - нужно пытаться. Простейший вариант замкнутого контура регулирования
предложил AlterPferd (Вам нужно было более детально раскрутить его на идеи) - замкнуть контур через усилительное звено с коэффициентом передачи -Kп (!!!знак "минус" - для инвертирования сигнала ошибки!!!), а неизвестную скорость заполнения V0 рассматривать как мешающее воздействие. В этом случае управляющее воздействие на насос:

u = -Кп*Err = -Кп*(Lset-Lout)
u = 0, если u<0

а удержание уровня будет выполнено со статической ошибкой, которая может быть оценена как

Err = tau*V0, где tau = 1/(Кп*Кн).

Выбором Kп достаточно большим можно свести эту ошибку до приемлемой величины для всех возможных скоростей заполнения бака. Если каким-то образом удалось получить V0, то можно вычесть эту ошибку, сформировав управляющее воздействие по правилу:

u = -Кп*Err + V0/Kн
u = 0, если u<0.

Специально нормировать здесь ничего не нужно. Но необходимо согласовать размерность задающего воздействия (Lset), показаний датчика уровня (Lout) и диапазон допустимых входных значений исполнительного звена (насоса).




Включение интегратора с коэффициентом усиления Ки паралельно усилительному звену (это называется "изодромная коррекция" - рекомендую погуглить) теоретически может свести статическую ошибку от мешающего воздействия V0 до нуля. Управляющее воздействие здесь формируется в виде (!!! знак ошибки инвертирован !!!):

Int(i) = Int(i-1) - Err
u(i) = -Кп*Err(i) + Ки*Int(i)
u = 0, если u<0.

Однако, наличие ограничения на управляющее воздействие вида u = 0, если u>0 тянет за собой явление, которое в англицкой литературе называется wind-up (не знаю как по русски, но рекомендую погуглить). Это явление удлинняет переходный процесс за счет появления затухающих колебаний вокруг установившегося значения (этих колебаний не будет, если снять ограничение). Борются с wind-up по разному. Простейший способ - отключение входа интегратора (т.е. принудительная подача на него нулевого значения) в момент выполнения
условия u<0, т.е.:

Int1 = Int(i-1) - Err
u(i) = -Кп*Err(i) + Ки*Int1
если u(i)<0 то u = 0, Int(i) = Int(i-1).

Коэфициенты Ки и Кп лучше выбирать так, чтобы корни s = 0.5*(-Кп +/- sqrt(Кп^2-4*Ки)) характеристического уравнения были отрицательными и действительными - это обеспечит систмеме устойчивость и малую колебательность (колебания, вызванные совместным действием ограничения u = 0, если u<0 - это отдельная песня для нелинейных систем авторегулирования smile.gif). Специально нормировать здесь тоже не нужно.


Все, что написано выше может оказаться абсолютно неприменимым к Вашему случаю. Но именно с этого я бы начал проектирование системы, при заданных Вами условиях. Далее полезут более тонкие и труднопробиваемые моменты - насос может оказаться нелинейным отосительно управляющего воздействия, у насоса может появиться запаздывание, начнут сказываться какие-нить люфты и силы трения в приводах и т.д.....
Go to the top of the page
 
+Quote Post
Oldring
сообщение Sep 10 2006, 14:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(NickNich @ Sep 10 2006, 17:00) *
Эххх, давно не брал я в руки шашку.....

...



Вы решили поиздеваться над бедным человеком?
Начнем с того, что задача уже давно изменилась - теперь речь идет не о ШИМ регуляторе для двигателя, а о выпускном клапане с дискретной скоростью изменения положения. Про линейность выходного потока говорить тоже сложно. Кроме того, вряд-ли стоит рассматривать как штатный режим описанные ограничения опустошения или переполнения бака - их нужно только проверить и скорее всего нужно чтобы система вела себя предсказуемо в аварийных случаях и при запуске. Ну и стационарность входного потока тут к чему, если известны пределы по впуску и нужно держать стабильным уровень в баке с некоторой заранее определенной точностью при всех возможных входных потоках в пределах ограничений? Мне кажется, Вы слишком переусложняете, при том, что главная сложность - все-таки непонятный очень нелинейный выпуск.

Цитата(Shurmas @ Sep 10 2006, 17:46) *
я б посоветовал почитать дедушку Боба

http://www.elecdesign.com/Articles/Print.cfm?ArticleID=4915

желательно все 6 статей.


Хм... Нечеткая логика без предварительного понимания возможностей линейных регуляторов - это странно. С другой стороны - а вдруг?


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Destr   Автоматическое регулирование   Aug 29 2006, 16:35
- - LordN   ключевое слово - нормировка надо привести выход к ...   Aug 29 2006, 19:18
|- - Destr   Цитата(LordN @ Aug 29 2006, 23:18) ключев...   Aug 29 2006, 20:13
|- - Артур   Цитата(LordN @ Aug 29 2006, 23:18) ключев...   Mar 4 2013, 15:16
|- - AndreyVN   Цитата(Артур @ Mar 4 2013, 18:16) Нормиро...   Mar 4 2013, 15:45
|- - Артур   Цитата(AndreyVN @ Mar 4 2013, 19:45) Норм...   Mar 5 2013, 16:12
|- - Tanya   Цитата(Артур @ Mar 5 2013, 20:12) И далее...   Mar 5 2013, 16:42
- - LordN   лекции по ТАУ небольшой список литературы вот эти...   Aug 30 2006, 03:18
|- - Destr   Зона пропорциональности - это коэффициент пропорци...   Aug 30 2006, 06:57
|- - Destr   И если не трудно объясните пожалуйста как нормиров...   Aug 30 2006, 14:04
|- - Destr   ЦитатаИ если не трудно объясните пожалуйста как но...   Aug 30 2006, 21:02
- - LordN   ЦитатаТогда получается, что если нет рассогласован...   Aug 30 2006, 08:14
|- - AlterPferd   Цитата(LordN @ Aug 30 2006, 12:14) Цитата...   Aug 30 2006, 10:59
|- - Destr   По ссылкам на форумы я перечитал все. Но именно пр...   Aug 30 2006, 11:01
- - LordN   ЦитатаИ еще как подобрать коэффициенты так чтобы в...   Aug 30 2006, 11:14
|- - Destr   Цитатаограничения задаются ограничителем. ? Нав...   Aug 30 2006, 11:26
- - LordN   ЦитатаНаверно просто условие поставить что если вы...   Aug 30 2006, 14:05
- - LordN   ЦитатаВот это подскажите пожалуйста еще по поводу ...   Aug 31 2006, 04:07
|- - Destr   Цитатая ж уже написал код, там все нормировки уже ...   Aug 31 2006, 07:27
- - LordN   ЦитатаПотоком жидкости необходимо управлять шаровы...   Aug 31 2006, 08:26
|- - Destr   Ну пока ясно. Благодарю вас за помощь. Думаю вопр...   Aug 31 2006, 09:19
|- - Destr   Что то вот это не совсем понял Цитата(LordN ...   Sep 13 2006, 17:55
- - Oldring   Вставьте в емкость сливную трубку на нужной высоте...   Aug 31 2006, 11:02
- - Oldring   P.S. Есть четыре пути: 1. Прочитать литературу са...   Aug 31 2006, 11:16
|- - Destr   ЦитатаПрочитать литературу самому, понять смысл и ...   Sep 2 2006, 14:07
|- - Oldring   Цитата(Destr @ Sep 2 2006, 18:07) Цитата ...   Sep 10 2006, 13:29
- - LordN   Цитата1. Прочитать литературу самому, понять смысл...   Sep 2 2006, 16:01
|- - NickNich   Цитата(Oldring @ Sep 10 2006, 18:09) Вы р...   Sep 10 2006, 16:48
||- - Oldring   Цитата(NickNich @ Sep 10 2006, 20:48) Цит...   Sep 10 2006, 17:52
||- - NickNich   Цитата(Oldring @ Sep 10 2006, 21:52) Неко...   Sep 10 2006, 19:32
|- - Shurmas   Цитата(Oldring @ Sep 10 2006, 18:09) Цита...   Sep 10 2006, 17:22
- - Shurmas   я б посоветовал почитать дедушку Боба http://www....   Sep 10 2006, 13:46
- - Destr   Мда, все казалось так просто когда, LordN все объя...   Sep 11 2006, 17:58
|- - Oldring   Цитата(Destr @ Sep 11 2006, 21:58) Датчик...   Sep 11 2006, 18:25
- - Destr   Цитата(Oldring @ Sep 11 2006, 22:25) Сам ...   Sep 12 2006, 07:29
- - LordN   ЦитатаТо есть получается, если у меня сигнал о пол...   Sep 14 2006, 04:27
- - Destr   Все равно не понятно: 1) Какая связь между этим Ци...   Sep 14 2006, 08:13
- - TomaT   Немного в сторону... А в частотнике ПИД-а нет? Обы...   Sep 14 2006, 08:36
|- - Destr   Цитата(TomaT @ Sep 14 2006, 12:36) Немног...   Sep 14 2006, 08:48
- - LordN   ЦитатаВсе равно не понятно:да, моя ошибка. сам зап...   Sep 14 2006, 10:02
|- - Destr   Понятно, получается тоже самое что и с частотником...   Sep 14 2006, 14:27
|- - Fireball   Есть у меня книжка "PID Controllers Theory an...   Sep 23 2006, 11:00
|- - Destr   Цитата(Fireball @ Sep 23 2006, 15:00) Ест...   Sep 23 2006, 12:55
- - Fireball   ftp://81.24.212.28/ - доступно с 8-00 до 22-00 зы...   Sep 25 2006, 17:02
- - LordN   Цитатаftp://81.24.212.28/ - доступно с 8-00 до 22-...   Sep 26 2006, 03:41
|- - Oskal   Цитата(LordN @ Sep 26 2006, 07:41) Цитата...   Sep 26 2006, 14:23
|- - Fireball   К сожалению у меня была возможность получить эту к...   Sep 26 2006, 14:37
- - Destr   У меня очередной вопрос возник. Как осуществлять п...   Sep 28 2006, 06:26
|- - NickNich   Цитата(Destr @ Sep 28 2006, 10:26) У меня...   Sep 28 2006, 08:56
- - Destr   У меня очередной вопрос возник. Как осуществлять п...   Sep 28 2006, 06:26
|- - Tanya   Цитата(Destr @ Sep 28 2006, 10:26) У меня...   Sep 28 2006, 07:24
||- - Destr   Цитата(Tanya @ Sep 28 2006, 11:24) как эт...   Sep 28 2006, 07:30
||- - Tanya   Цитата(Destr @ Sep 28 2006, 11:30) Цитата...   Sep 28 2006, 08:10
|- - LordN   Цитата(Destr @ Sep 28 2006, 13:26) У меня...   Sep 28 2006, 09:46
|- - Stanislav   Цитата(LordN @ Sep 28 2006, 13:46) для на...   Sep 28 2006, 10:00
||- - Destr   Цитата(Stanislav @ Sep 28 2006, 14:00) Пр...   Sep 28 2006, 10:30
|- - NickNich   Цитата(LordN @ Sep 28 2006, 13:46) для на...   Sep 28 2006, 11:53
- - Destr   Блин нажимаю отправить сообщение, и выводится что ...   Sep 28 2006, 06:28
- - LordN   ЦитатаПростите, нельзя ли пояснить написанное подр...   Sep 28 2006, 13:59
|- - NickNich   Цитата(LordN @ Sep 28 2006, 17:59) но сам...   Sep 28 2006, 16:31
- - Thistle   ну было это давольно давно, планктон с тех пор мут...   Sep 28 2006, 17:59
- - jackBU   Для систем с запаздыванием применяют регуляторы с ...   Sep 29 2006, 11:01
- - Thistle   вот тоько в этом случае нужна мат.модель объекта, ...   Jan 10 2007, 23:04
- - UMP   Несколько отвлекаю от темы, но, тем не менее совет...   Jan 11 2007, 20:10
- - SergeyX   рекомендую взглянуть на методики настройки пид-рег...   Jan 30 2007, 11:47
- - Waso   А если время квантования меняется? Мне нужно стаби...   Sep 23 2007, 08:40
|- - Oldring   Цитата(Waso @ Sep 23 2007, 12:40) А если ...   Sep 23 2007, 08:55
|- - Waso   Цитата(Oldring @ Sep 23 2007, 15:55) Кром...   Sep 24 2007, 02:44
|- - Oldring   Цитата(Waso @ Sep 24 2007, 06:44) Есть ли...   Sep 24 2007, 08:17
|- - TSerg   Цитата(Waso @ Sep 24 2007, 06:44) Есть ли...   Sep 24 2007, 10:41
- - Deka   А сейчас, господа, сюрприз! И состоит он в том...   Sep 25 2007, 06:35
|- - TSerg   Цитата(Deka @ Sep 25 2007, 10:35) А сейча...   Sep 27 2007, 12:10
- - qwqw   Я пока далек от темы регулирования, знакомлюсь с о...   Apr 6 2010, 13:53
- - Roger   Уважаемые специалисты, помогите пожалуйста начинаю...   Sep 26 2010, 19:53
|- - Oldring   Цитата(Roger @ Sep 26 2010, 23:53) Код ~P...   Sep 29 2010, 09:38
- - DW0   без интегральной составляющей не обойтись, т.к. он...   Sep 28 2010, 20:37
- - Berny   хм, а зачем на клапан вообще двигатель, например з...   Apr 12 2011, 13:02
- - TSerg   >На мой взгляд, без плавающей точки остается то...   Mar 5 2013, 16:33
- - TSerg   >Подвешенное тело на которое действует Термин ...   Mar 5 2013, 16:53
|- - Артур   Цитата(TSerg @ Mar 5 2013, 20:53) >Под...   Mar 5 2013, 17:05
|- - TSerg   Цитата(Артур @ Mar 5 2013, 21:05) Но зада...   Mar 5 2013, 17:20
- - Abrams   Добрый день! Встала задача реализовать контро...   Jan 22 2014, 19:52
|- - Tanya   Цитата(Abrams @ Jan 22 2014, 23:52) Добры...   Jan 23 2014, 06:37
|- - thermit   Цитата(Abrams @ Jan 22 2014, 22:52) Добры...   Jan 24 2014, 07:23
|- - Abrams   Цитата(thermit @ Jan 24 2014, 11:23) как ...   Jan 24 2014, 08:00
|- - Tanya   Цитата(Abrams @ Jan 24 2014, 12:00) К сож...   Jan 24 2014, 08:15
|- - Tarbal   Цитата(Abrams @ Jan 24 2014, 11:00) К сож...   Jan 24 2014, 13:22
|- - Abrams   Цитата(Tarbal @ Jan 24 2014, 16:22) Я бы ...   Jan 24 2014, 13:46
|- - Tarbal   Цитата(Abrams @ Jan 24 2014, 16:46) Задач...   Jan 24 2014, 16:39
- - Abrams   Разумеется генератор и сам двигатель крутяться все...   Jan 23 2014, 11:39
|- - Tanya   Цитата(Abrams @ Jan 23 2014, 15:39) Получ...   Jan 23 2014, 15:28
- - thermit   Как-то так... Если период дискретизации (период уп...   Jan 24 2014, 14:34


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:04
Рейтинг@Mail.ru


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