|
Автоматическое регулирование |
|
|
|
Aug 29 2006, 16:35
|
Участник

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

|
Уважаемые специалисты, помогите пожалуйста начинающему освоить автоматическое регулирование. Вопрос заключается в следующем: Имеется емкость, в которой необходимо поддерживать заданный уровень жидкости.Через одну трубу жидкость поступает в емкость, ее поток не регулируется. Через другую жидкость сливается, регулируется двигателем, который управляется преобразователем частоты. Частота преобразователя задается через контроллер, путем задания целого значения от 1 до 32768. Так вот мне не понятно как связать это значение, задающее работу преобразователя, со значением управляющего воздействия, получаемого из формулы ПИД регулирования. Очень надеюсь на вашу помощь по такому дилетантскому вопросу.
|
|
|
|
|
 |
Ответов
|
Sep 10 2006, 13:00
|
Местный
  
Группа: Свой
Сообщений: 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 - это отдельная песня для нелинейных систем авторегулирования  ). Специально нормировать здесь тоже не нужно. Все, что написано выше может оказаться абсолютно неприменимым к Вашему случаю. Но именно с этого я бы начал проектирование системы, при заданных Вами условиях. Далее полезут более тонкие и труднопробиваемые моменты - насос может оказаться нелинейным отосительно управляющего воздействия, у насоса может появиться запаздывание, начнут сказываться какие-нить люфты и силы трения в приводах и т.д.....
|
|
|
|
|
Sep 10 2006, 14:09
|

Гуру
     
Группа: Свой
Сообщений: 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 статей. Хм... Нечеткая логика без предварительного понимания возможностей линейных регуляторов - это странно. С другой стороны - а вдруг?
--------------------
Пишите в личку.
|
|
|
|
|
Sep 10 2006, 16:48
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593

|
Цитата(Oldring @ Sep 10 2006, 18:09)  Вы решили поиздеваться над бедным человеком? Нет, просто вернулся из отпуска, а тут такая тема закрылась, без моего участия... Цитата(Oldring @ Sep 10 2006, 18:09)  Начнем с того, что задача уже давно изменилась Как я понял из предыдущего обсуждения - это либо две разные задачи, либо два альтернативных подхода к решению одной задачи. Но никак не замена одной задачи другой. Цитата(Oldring @ Sep 10 2006, 18:09)  Ну и стационарность входного потока тут к чему, если известны пределы по впуску и нужно держать стабильным уровень в баке с некоторой заранее определенной точностью при всех возможных входных потоках в пределах ограничений? Дык, я и показал, что от требования стационарности можно избавиться. Просто если это требование наложено явно, оно упрощает проектирование регулятора, а если не наложено - то особо подчеркнул, что поток нестационарен и известны только минимальная и максимальная скоросто заполнения. Цитата(Oldring @ Sep 10 2006, 18:09)  Мне кажется, Вы слишком переусложняете Нет, не переусложняю. Просто поддержать любой, произвольно заданный уровень в баке при описанных условиях - действительно сложная задача. Врезка отводной трубки - это ожесткое ограничение поддерживаемого уровня, и, при заданных условиях, может применяться исключительно как аварийная мера, чтобы бак не перелился. Как в ванне или сливном бачке  . Цитата(Oldring @ Sep 10 2006, 18:09)  при том, что главная сложность - все-таки непонятный очень нелинейный выпуск. Вот и я о том же. То, что я написал выше - позволяет начать строить устойчивый регулятор, который обеспечит "какую-то" работоспособность замкнутого контура. А вот чтобы этот контур работал "как надо" - тут придется выгребать и нелинейность исполнителя, и его запаздывания (а это неслабый удап по устойчивости всей системы) и т.д. по списку. Датчик уровня (точнее его разрядность) тут тоже будет одним из критических звеньев. Это я не могу забыть пятиметровую алюминиевую трубку, через каждые 10 см на которой была накручена катушка из МГТФ. А на трубку надевался кольцевой поплавок с кольцевым магнитом... Цитата(Oldring @ Sep 10 2006, 18:09)  Цитата(Shurmas @ Sep 10 2006, 17:46)  я б посоветовал почитать дедушку Боба http://www.elecdesign.com/Articles/Print.cfm?ArticleID=4915желательно все 6 статей. Хм... Нечеткая логика без предварительного понимания возможностей линейных регуляторов - это странно. С другой стороны - а вдруг? Здесь согласен. Залача вполне решаема методами классической ТАУ. Привлечение всяких модных штучек, когда автор темы слабо понимает азы - совершенно никчему. Цитата(Oldring @ Sep 10 2006, 17:29)  Проще всего прийти в хороший книжный, найти соответсвующий раздел и подобрать под себя какой-нибудь переводной буржуйский учебник. Для проектирования подобный систем должно быть достаточно. Две недели назад видел в арбат-книге последнее издание Бесекерского "Теория систем автоматического управления". Это классический учебник по ТАУ старой советской школы. Переводные буржуйские авторы, а это как правило Ph.D из провининциальный американских университетов (по крайней мере то, что я видет из печатных книг в московских магазинах) - тихо курят в сторонке. Бесекерского можно заказать в Озоне.
|
|
|
|
|
Sep 10 2006, 17:52
|

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

|
Цитата(NickNich @ Sep 10 2006, 20:48)  Цитата(Oldring @ Sep 10 2006, 18:09)  Мне кажется, Вы слишком переусложняете
Нет, не переусложняю. Просто поддержать любой, произвольно заданный уровень в баке при описанных условиях - действительно сложная задача. Врезка отводной трубки - это ожесткое ограничение поддерживаемого уровня, и, при заданных условиях, может применяться исключительно как аварийная мера, чтобы бак не перелился. Как в ванне или сливном бачке  . Если произвольный уровень - то возможно. В любом случае, вряд-ли удастся нормально работать в районе уровня в несколько миллиметров. Что человеку нужно - точно неизвестно. Думаю, нужно либо поддерживать фиксированный уровень, либо работать в некотором диапазоне вблизи середины заполнения бака. Я совершенно не настаиваю, что фиксированная сливная труба может решить все возможные варианты задачи - я её написал как пример ТРИВИАЛЬНОГО решения НЕКОТОРЫХ вариантов задачи  Фиксированная сливная труба - это ведь тоже такой автоматический регулятор. Цитата(NickNich @ Sep 10 2006, 20:48)  Две недели назад видел в арбат-книге последнее издание Бесекерского "Теория систем автоматического управления". Это классический учебник по ТАУ старой советской школы. Переводные буржуйские авторы, а это как правило Ph.D из провининциальный американских университетов (по крайней мере то, что я видет из печатных книг в московских магазинах) - тихо курят в сторонке. Некоторые советские учебники грешат тем, что начинают с критерия Ляпунова  и потом сводят к частным случаям. Не помню какой - видел когда-то в книжном. Не думаю что это хороший метод преподавания. На эту классику обращу внимание специально, спасибо. С советскими учебниками одно плохо: они писались еще до массового распространения цифрового управления и до появления Матлаба, поэтому не описывают современные методы проектирования, или упоминают их скользь. В конце концов, перехватывать ракеты большинству из нас редко приходится - а для решения большинства технологических задач скорее нужно интуитивное понимание типичных случаев и некоторая математическая основа. Кроме того, существует большая разница между монографией и учебником - поэтому часто PhD может написать базовый учебник лучше. Но, возможно, ознакомившись с советской классикой я и изменю свое мнение  Цитата(NickNich @ Sep 10 2006, 17:00)  Int(i) = Int(i-1) - Err u(i) = -Кп*Err(i) + Ки*Int(i) u = 0, если u<0. И, кстати, Вы не забыли, что сама характеристика бака обладает полюсом в нуле - в приближении независимости выходного потока от уровня в баке  ? Я не хочу сказать, что регулятор с интегрирующим звеном здесь совершенно неприменим - но обязательно вылезут побочные эффекты, вроде неустранимого перерегулирования. Это может оказаться и не совсем допустимым - если рассматривать общую постановку задачи. Или схема возбудится - особенно учитывая характеристику управления выпускного клапана. Чем хороша фиксированная сливная труба: она не содержит интегрирующего звена и у нее минимальные задержки реакции. В результате крайне редко можно наблюдать её возбуждение
--------------------
Пишите в личку.
|
|
|
|
Сообщений в этой теме
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, 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|