Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПИД+ШИМ
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Обратная Связь, Стабилизация, Регулирование, Компенсация
Страницы: 1, 2
kumle
Решил освоить ПИД
В качестве модели коллекторный мотор который крутит диск (для создания инерции)
мотор подключен через всем известный драйвер L293D к микроконтроллеру.
Пытаюсь написать прогу для стабилизации частоты оборотов с помощью шим
Допустим скважность ШИМ могу менять от 0 до 255 (0%-100%)

Непонятен переход от управляющего воздействия к скважности ШИМ
сначала разбираюсь только с пропорциональной составляющей P
Допустим нужно стабилизировать частоту 100Гц F0=100гц
выбрем коэфф Кp=2
Тогда при начале алгоритма (мотор еще стоит) начальная невязка будет Е=100,
тогда P=Kp*E=200, И упр. воздействие будет U=P=200.
Принимаю это упр воздействие за максимальное, и расчитываю коэфф. перевода его в 100% скважность шим равную 255
K=255/200=1.275
Далее вызывая алгоритм буду переводить упр. воздействие в скважность с помощью этого коэф.
Правильно ли это ?

И как делать когда будут еще интегральная и дифф. составляющие?


wim
Цитата(kumle @ Apr 13 2016, 13:40) *
Пытаюсь написать прогу для стабилизации частоты оборотов с помощью шим
ШИМ - это импульсный сигнал с постоянной частотой и переменной скважностью (коэффициентом заполнения). А если Вы меняете скважность, изменяя частоту, то это уже не ШИМ.
kumle
частота шим постоянная, я ее не меняю )
я стабилизирую частоту оборотов двигателя)

Если кратко, то мой вопрос в том как правильно сделать нормализацию
управляющего сигнала с выхода ПИД, в скважность ШИМ.
Tanya
Цитата(kumle @ Apr 13 2016, 15:25) *
я стабилизирую частоту оборотов двигателя)

Частоту вращения регулировать легко и приятно с таким двигателем.
Можно даже, выбранным Вами, таким незатейливым ШИМом. Частота при постоянной нагрузке устанавливается сама-собой пропорционально напряжению питания - среднему значению по периоду ШИМа. Лучше, однако, управлять током, от которого момент зависит линейно.
Но можно и так...
Суммируете компоненты ПИДа и подаете эту сумму на ШИМ.
Можете все это промоделировать, заменив двигатель на конденсатор с резистором и генератором тока, который имитирует нагрузку. Емкость конденсатора - момент инерции, напряжение на конденсаторе - скорость вращения. Если добавить еще резистор параллельно конденсатору, то добавится трение.
amaora
Выход ограничивайте на крайних значениях заполнения и не надо никаких "переход от управляющего воздействия к скважности ШИМ". Ведь это будет всего лишь еще один коэффициент на который умножится невязка, как и на пропорциональный коэффициент регулятора, так зачем их нужно два. Разделение на выход регулятора и величину заполнения может иметь смысл в каких-то случаях, если выход в Вольтах например, а питание может изменяться во время работы, тогда надо пересчитывать заполнение после регулятора. А еще, Вам здесь скоро скажут, что нужен контур тока, а потом уже по скорости.
wim
Цитата(kumle @ Apr 13 2016, 15:25) *
Если кратко, то мой вопрос в том как правильно сделать нормализацию
управляющего сигнала с выхода ПИД, в скважность ШИМ.
У Вас есть регулировочная характеристика двигателя - зависимость частоты вращения от напряжения. Средняя величина напряжения, подаваемого на двигатель, это напряжение питания, умноженное на коэффициент заполнения. Управляющий сигнал тоже имеет диапазон - от минимального значения до максимального. Если, к примеру, минимальному значению управляющего сигнала соответствует минимальный коэффициент заполнения, ему же будет соответствовать минимальная частота вращения, а максимальному - максимальная, соответственно.
P.S. Вы там по ходу дела учебник читаете, что ли? Очень уж наукоемко излагаете. biggrin.gif
kumle
Цитата(amaora @ Apr 13 2016, 15:46) *
Выход ограничивайте на крайних значениях заполнения и не надо никаких "переход от управляющего воздействия к скважности ШИМ". Ведь это будет всего лишь еще один коэффициент на который умножится невязка, как и на пропорциональный коэффициент регулятора, так зачем их нужно два. Разделение на выход регулятора и величину заполнения может иметь смысл в каких-то случаях, если выход в Вольтах например, а питание может изменяться во время работы, тогда надо пересчитывать заполнение после регулятора. А еще, Вам здесь скоро скажут, что нужен контур тока, а потом уже по скорости.

А как быть в том случае если алгоритм не выдает крайнее значение заполнения? А это нужно например чтобы сразу быстро стартануть мотор.
Я понимаю в этом случае нужно увеличить коэфициент в пропорциональной составляющей Kp, но тогда другие составлющие (интегральная и дифференциальная) будут вносить меньший вклад в регулирование? Как тут быть ?
Цитата(Tanya @ Apr 13 2016, 15:45) *
Можете все это промоделировать, заменив двигатель на конденсатор с резистором и генератором тока, который имитирует нагрузку.

Не, я уже сделал макет с мотором и ременной передачей на другой вал где насажен диск для создания инерции
Tanya
Цитата(kumle @ Apr 13 2016, 17:09) *
А как быть в том случае если алгоритм не выдает крайнее значение заполнения? А это нужно например чтобы сразу быстро стартануть мотор.
Я понимаю в этом случае нужно увеличить коэфициент в пропорциональной составляющей Kp, но тогда другие составлющие (интегральная и дифференциальная) будут вносить меньший вклад в регулирование? Как тут быть ?

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

Цитата(kumle @ Apr 13 2016, 17:09) *
Не, я уже сделал макет с мотором и ременной передачей на другой вал где насажен диск для создания инерции

А вот с этим нужно осторожнее. Можно сжечь драйвер. Если слишком быстро (неумело) тормозить, например. При старте тоже... Контроль тока нужно делать.
amaora
Цитата(kumle @ Apr 13 2016, 17:09) *
А как быть в том случае если алгоритм не выдает крайнее значение заполнения? А это нужно например чтобы сразу быстро стартануть мотор.
Я понимаю в этом случае нужно увеличить коэфициент в пропорциональной составляющей Kp, но тогда другие составлющие (интегральная и дифференциальная) будут вносить меньший вклад в регулирование? Как тут быть ?


Это вопрос настройки регулятора, или даже выбора структуры СУ, а еще лучше начать с изучения требуемых траекторий движения системы и того какое управление их обеспечит.

Я знаю два варианта "быстрых" регуляторов.

1. Релейный, или почти релейный пропорциональный с большим коэффициентом. Весь переходный процесс регулятор находится в насыщении и выдает крайнее значение, и только в малой области около заданного значения остается линейный режим. Это требует хорошего качества обратной связи, с минимальным шумом.
2. Использование модели системы, для формирования управления из допустимой траектории (без использования невязки с заданным значением) + слабый ПИ регулятор для компенсации неточности модели или + адаптация модели. Здесь есть много разных вариантов, структур построения. В вашем случае простой пример такого управления, это пересчитывать требуемое напряжение через электромеханическую постоянную и заданную скорость + падение напряжения на активном сопротивлении, u = w*E + i*R. Только вот это пример не дает минимально возможный отклик, для этого нужно знать больше информации об управляемой системе.

Добавка: п.1 не для любой системы подходит в таком простом виде.
digital
Цитата(Tanya @ Apr 13 2016, 18:01) *
Алгоритм не должен выдавать зашкаливающие значения. Он (ПИД) не для того, чтобы им так грубо управляли. Нужно плавно менять значение задатчика - ограничивать скорость нарастания. Тогда ПИД будет нормально работать.


разве ПИД не обязан адекватно реагировать при любом изменение задатчика?
Tanya
Цитата(digital @ Apr 15 2016, 10:52) *
разве ПИД не обязан адекватно реагировать при любом изменение задатчика?

Нет, к всеобщему сожалению. Реальный. Идеальный с бесконечным напряжением питания (выдаваемым на выходе воздействием) мог бы.
digital
Цитата(Tanya @ Apr 15 2016, 11:14) *
Нет, к всеобщему сожалению. Реальный. Идеальный с бесконечным напряжением питания (выдаваемым на выходе воздействием) мог бы.


не понимаю, к примеру если ПИД управляет температурой котла, мы разве не можем поменять температуру с 50 до 80 ? какие последствие при этом будут?

и кто тогда должен плавно менять? другой контур ПИД? или еще что то? какие критерий допустимости изменения входа?
Tanya
Цитата(digital @ Apr 15 2016, 12:08) *
не понимаю, к примеру если ПИД управляет температурой котла, мы разве не можем поменять температуру с 50 до 80 ? какие последствие при этом будут?

Будет большое перерегулирование с последующими колебаниями. Не всегда это допустимо.
Цитата(digital @ Apr 15 2016, 12:08) *
и кто тогда должен плавно менять? другой контур ПИД? или еще что то? какие критерий допустимости изменения входа?

Плавно менять должен ограничитель скорости нарастания. Ведь при максимальной мощности скорость нагрева ограничена. Вот и нужно до этой величины (ну, не совсем, немного меньше) ограничивать задатчик. Альтернативно. На примере Вашего котла - включаем максимальную мощность на некоторое время. При некоторой небольшой невязке включаем ПИД с величиной И-компоненты, соответствующей выбранной температуре - мы ведь не первый день этот котел греем...
digital
Цитата(Tanya @ Apr 15 2016, 12:19) *
Будет большое перерегулирование с последующими колебаниями. Не всегда это допустимо.

хм, я получается воюю с ветреными мельницами
Цитата
Плавно менять должен ограничитель скорости нарастания. Ведь при максимальной мощности скорость нагрева ограничена. Вот и нужно до этой величины (ну, не совсем, немного меньше) ограничивать задатчик. Альтернативно. На примере Вашего котла - включаем максимальную мощность на некоторое время. При некоторой небольшой невязке включаем ПИД с величиной И-компоненты, соответствующей выбранной температуре - мы ведь не первый день этот котел греем...

т.е. примерно так?
1. способ
error=TempNeed-TempCur; // где TempNeed задатчик TemCur текущая

if((error<-5.0)||(error>-5.0)) Output=1.0; //
else Output=PID(error);

2. способ

Temp+=(TempNeed-Temp)/64;

error=Temp-TempCur;
Output=PID(error);

// где TempNeed задатчик
// TemCur текущая температура (измеренная)

и можно еще вопрос
в случае нагревателя, выход ПИД это амплитуда подаваемая на нагреватель или приращение амплитуды ?

т.е. Output=PID(error); или Output+=PID(error);
Tanya
Цитата(digital @ Apr 15 2016, 12:54) *
хм, я получается воюю с ветреными мельницами
т.е. примерно так?

и можно еще вопрос

в случае нагревателя, выход ПИД это амплитуда подаваемая на нагреватель или приращение амплитуды ?

т.е. Output=PID(error); или Output+=PID(error);

Не знаю, с чем и зачем Вы воюете, но пишете очень непонятно. Это на каком языке?
Схема (кусок кода) ограничения скорости задатчика должна линейно по времени периодически (каждую секунду или минуту, или неделю..) добавлять немножко к задатчику до достижения желаемого.
Второй способ - совсем отключаем регулятор и подаем максимальную мощность до достижения почти желаемого, после чего включаем ПИД, записав в И-часть заранее определенную величину.
На выходе регулятора должна быть мощность, которая при нагреве напряжением пропорциональна его квадрату, а при использовании ШИМа - среднему по периоду времени включения нагревателя. Это если напряжение фиксировано.
demiurg_spb
Цитата(kumle @ Apr 13 2016, 15:25) *
Если кратко, то мой вопрос в том как правильно сделать нормализацию
управляющего сигнала с выхода ПИД, в скважность ШИМ.
Никак. Выход алгоритма должен всегда давать значение 0-1 (0-100%) ну или -1..+1 (-100%..+100%),
а эта величина должна уже потом пересчитываться в конкретное число дискрет выхода ШИМ или в другие попугаи.
Таким образом Вы избавите себя и пользователей от кучи проблем (т.к. параметры настройки вашего ПИД регулятора будут платформенно-независимы).
digital
Цитата(Tanya @ Apr 15 2016, 15:23) *
Не знаю, с чем и зачем Вы воюете, но пишете очень непонятно. Это на каком языке?
Схема (кусок кода) ограничения скорости задатчика должна линейно по времени периодически (каждую секунду или минуту, или неделю..) добавлять немножко к задатчику до достижения желаемого.
Второй способ - совсем отключаем регулятор и подаем максимальную мощность до достижения почти желаемого, после чего включаем ПИД, записав в И-часть заранее определенную величину.
На выходе регулятора должна быть мощность, которая при нагреве напряжением пропорциональна его квадрату, а при использовании ШИМа - среднему по периоду времени включения нагревателя. Это если напряжение фиксировано.

на чистом си, то что вы описали то программы и выполняют
Цитата(Tanya @ Apr 15 2016, 11:14) *
Нет, к всеобщему сожалению. Реальный. Идеальный с бесконечным напряжением питания (выдаваемым на выходе воздействием) мог бы.

вот выговорите что нельзя задатчик произвольно менять, а вообще то тест ПИД регулятора выполняется единичным скачком, тот самый который от минуса до макс
Tanya
Цитата(digital @ Apr 15 2016, 23:35) *
на чистом си, то что вы описали то программы и выполняют

Кто-то из нас неправильно переводит с одного языка на другой.
Цитата(digital @ Apr 15 2016, 23:35) *
вот выговорите что нельзя задатчик произвольно менять, а вообще то тест ПИД регулятора выполняется единичным скачком, тот самый который от минуса до макс

Да. Отстала от жизни, наверное. А зачем Вы спрашивали, если знаете, что единица это скачок от минуса до макса?
digital
Цитата(Tanya @ Apr 16 2016, 08:43) *
Да. Отстала от жизни, наверное. А зачем Вы спрашивали, если знаете, что единица это скачок от минуса до макса?


так вы это утверждали, я поэтому и спросил, что может чего то не знаю
Tanya
Цитата(digital @ Apr 18 2016, 13:36) *
так вы это утверждали,

Где? Напомните?
digital
Цитата(Tanya @ Apr 18 2016, 14:57) *
Где? Напомните?


тут

Цитата(Tanya @ Apr 13 2016, 18:01) *
Алгоритм не должен выдавать зашкаливающие значения. Он (ПИД) не для того, чтобы им так грубо управляли. Нужно плавно менять значение задатчика - ограничивать скорость нарастания. Тогда ПИД будет нормально работать.



или вы что то иное имели в виду ?
Tanya
Цитата(digital @ Apr 18 2016, 15:29) *
или вы что то иное имели в виду ?

Но ведь я ничего не писала про какие-то единичные скачки...
digital
Цитата(Tanya @ Apr 18 2016, 20:07) *
Но ведь я ничего не писала про какие-то единичные скачки...


вы меня троллите ? rolleyes.gif

вы писали что нельзя резко изменять входной сигнал, на что я указал что типичный тест ПИД регулятора это единичный скачок, который являеться крайним вариантом резкого изменения, что вы имели в виде под словами, что нельзя резко менять входной сигнал? почему?
Tanya
Цитата(digital @ Apr 19 2016, 11:00) *
вы меня троллите ? rolleyes.gif

вы писали что нельзя резко изменять входной сигнал, на что я указал что типичный тест ПИД регулятора это единичный скачок, который являеться крайним вариантом резкого изменения, что вы имели в виде под словами, что нельзя резко менять входной сигнал? почему?

Вот и объясните, что такое "единичный" скачок, который идет от какого-то там минуса до не более понятного макса,
и почему Вы считаете, что это "правильный" тест регулятора.
Я же всего лишь писала, что при нормальной работе регулятора (аналогового или цифрового) ничего там не должно зашкаливать. Иначе это будет не ПИД, который линейный, а нечто нелинейное уже.
digital
Цитата(Tanya @ Apr 19 2016, 12:00) *
Вот и объясните, что такое "единичный" скачок, который идет от какого-то там минуса до не более понятного макса,
и почему Вы считаете, что это "правильный" тест регулятора.
Я же всего лишь писала, что при нормальной работе регулятора (аналогового или цифрового) ничего там не должно зашкаливать. Иначе это будет не ПИД, который линейный, а нечто нелинейное уже.



При проведении активного эксперимента возникает задача выбора формы тестового воздействия. Используют сигналы в форме ступеньки (скачка), в форме прямоугольного импульса, линейно нарастающего сигнала, треугольного импульса, псевдослучайного двоичного сигнала (ПСДС) [Гроп], шума, отрезка синусоиды (частотный метод). Наиболее часто для настройки ПИД-регуляторов используют скачок (рис. 5.12-а), двойной прямоугольный импульс (рис. 5.12-в) и синусоидальный сигнал (рис. 5.12-г).
http://www.bookasutp.ru/Chapter5_1_2.aspx


с вас ожидаю какие любо материалы в кторых написано о каких либо оганичениях входного сигнала, спасибо
Tanya
Цитата(digital @ Apr 19 2016, 12:27) *
с вас ожидаю какие любо материалы в кторых написано о каких либо оганичениях входного сигнала, спасибо

Так где пресловутый единичный скачок? От "минуса" до "макса"?
А ограничение естественное, объяснение чего (требование линейности) было приведено выше.
digital


понятно, значит все же тролинг, жаль, удачи
digital


Возможно вы имели в виду интегральное насыщение http://www.bookasutp.ru/Chapter5_4.aspx#IntegralSaturation
Tanya
Цитата(digital @ Apr 19 2016, 15:49) *
Возможно вы имели в виду интегральное насыщение http://www.bookasutp.ru/Chapter5_4.aspx#IntegralSaturation

Множество всяких теоретиков понаписало множество модификаций регуляторов. Для наукообразия. Рисуют всякие-там отклики и сравнивают их. Но в реальности всегда нужно понимать, что мы хотим получить. Например, высокое быстродействие на грани или даже с небольшими высокочастотными осцилляциями или регулирование без переброса, пусть медленное и печальное.
Настраивайте на то, что Вам нужно. Но насыщать (перегружать) регулятор плохо - могут возникнуть непредсказуемые вещи.
Лучше такого избегать.
demiurg_spb
Цитата(Tanya @ Apr 19 2016, 18:19) *
Невозможно настроить так, чтобы никогда не было насыщения - иначе это будет не регулирование, а старческий сон.
Для решения описанных вами проблем есть много различных способов и трюков, например, почитайте как работает antiwindup.
А хорошо-ли плохо-ли - это всё условности и в различных системах бывают совершенно различные задатчики, в том числе и 0-MAX, например дверь или шлагбаум (выдумал сходу)...
Tanya
Цитата(demiurg_spb @ Apr 20 2016, 09:38) *
Невозможно настроить так, чтобы никогда не было насыщения - иначе это будет не регулирование, а старческий сон.


Даже спорить с Вами не буду... У меня вот не бывает насыщения никогда. Мне не нужно. И нельзя терять управление некоторыми объектами. Что до старческого сна, то имеется опыт управления тепловыми объектами как в субмикросекундном диапазоне, так и в почти недельном. А какие Вы видите плюсы в насыщении интегральной части?
demiurg_spb
Цитата(Tanya @ Apr 20 2016, 11:41) *
Даже спорить с Вами не буду... У меня вот не бывает насыщения никогда. Мне не нужно. И нельзя терять управление некоторыми объектами. Что до старческого сна, то имеется опыт управления тепловыми объектами как в субмикросекундном диапазоне, так и в почти недельном. А какие Вы видите плюсы в насыщении интегральной части?

Вы моё прошлое сообщение перечитайте.
Я не говорил что есть плюсы в насыщении интергатора и даже привёл метод как этого избегают.
Но не давать возможности регулятору выдавать 100% мощности на выходе - это не самоцель и во многих случаях огромное снижение эксплуатационных характеристик изделия.

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

Мы с вами видимо из разных миров - я делаю серийные изделия, выпускаемые сотнями в месяц, а вы, видимо, работаете над единичными лабораторными установками.
Я правильно понимаю вашу сферу деятельности?
Tanya
Цитата(demiurg_spb @ Apr 20 2016, 11:55) *
Вы моё прошлое сообщение перечитайте.
Я не говорил что есть плюсы в насыщении интергатора и даже привёл метод как этого избегают.
Но не давать возможности регулятору выдавать 100% мощности на выходе - это не самоцель и во многих случаях огромное снижение эксплуатационных характеристик изделия.

Я правильно понимаю вашу сферу деятельности?

А меня 95% мощности устраивает. И где тут огромное снижение? И даже 100 при выключенной И- компоненте можно сделать. Но смысла особого в этом нет.
Сферу понимаете почти правильно.
demiurg_spb
Все остались при своих.
digital
Цитата(Tanya @ Apr 20 2016, 12:11) *
А меня 95% мощности устраивает. И где тут огромное снижение? И даже 100 при выключенной И- компоненте можно сделать. Но смысла особого в этом нет.
Сферу понимаете почти правильно.

зачем же И компоненту выключать? biggrin.gif
Цитата(Tanya @ Apr 19 2016, 18:19) *
Множество всяких теоретиков понаписало множество модификаций регуляторов. Для наукообразия. Рисуют всякие-там отклики и сравнивают их. Но в реальности всегда нужно понимать, что мы хотим получить. Например, высокое быстродействие на грани или даже с небольшими высокочастотными осцилляциями или регулирование без переброса, пусть медленное и печальное.
Настраивайте на то, что Вам нужно. Но насыщать (перегружать) регулятор плохо - могут возникнуть непредсказуемые вещи.
Лучше такого избегать.

Таня, зря вы по ссылкам не читаете , , эти так вами называемые теоретики, написали причину, и несколько методов решения, где кстати ваш один из вариантов
Tanya
Цитата(digital @ Apr 20 2016, 23:21) *
зачем же И компоненту выключать? biggrin.gif

Таня, зря вы по ссылкам не читаете , , эти так вами называемые теоретики, написали причину, и несколько методов решения, где кстати ваш один из вариантов

Спасибо Вам большое за советы. Замечу только, что этих "теоретиков" я не читаю - они не теоретики, а обычные компиляторы. Переписывают отовсюду - создают "курс" для студентов или отчетов на какой-нибудь кафедре. Студентам этого не понять. Приходится зубрить, наверное. Графики, которые там приводятся посчитаны для какой-то одной модели объекта управления. Там даже нет никакого объяснения, какие объекты должны описываться каждой моделью.
В данном случае Вы ссылаетесь еще на относительно приличное описание - хоть и написано суконным языком, - вот первый попавшийся пример их заумной фразы -"ПИД-регулятор, воплощенный в виде технического устройства, называют ПИД-контроллером.", но хотя бы без грубых грамматических и смысловых ошибок, характерных для "новых" курсов. Уже хорошо.
digital
Цитата(Tanya @ Apr 21 2016, 12:12) *
Спасибо Вам большое за советы. Замечу только, что этих "теоретиков" я не читаю - они не теоретики, а обычные компиляторы. Переписывают отовсюду - создают "курс" для студентов или отчетов на какой-нибудь кафедре. Студентам этого не понять. Приходится зубрить, наверное. Графики, которые там приводятся посчитаны для какой-то одной модели объекта управления. Там даже нет никакого объяснения, какие объекты должны описываться каждой моделью.
В данном случае Вы ссылаетесь еще на относительно приличное описание - хоть и написано суконным языком, - вот первый попавшийся пример их заумной фразы -"ПИД-регулятор, воплощенный в виде технического устройства, называют ПИД-контроллером.", но хотя бы без грубых грамматических и смысловых ошибок, характерных для "новых" курсов. Уже хорошо.


лучше спорить по сути, а не по форме , правильнее было привести в чем именно они не правы, тем более по вашему они не правы быть и не могут, ибо они и ваш вариант приводят, только они объясняют почему и откуда
Tanya
Цитата(digital @ Apr 26 2016, 17:08) *
только они объясняют почему и откуда

Рада, что теперь Вы все поняли. Так модель какого порядка правильно описывает Ваш котел?
somebody111
Цитата
Невозможно настроить так, чтобы никогда не было насыщения - иначе это будет не регулирование, а старческий сон.

вам правильно ответили. Как только регулятор уходит в насыщение, система управления становится нелинейной. Поведение нелинейной системы предсказать возможно, но сложно.Вся реальная (с практической точки зрения) ТАУ построена на линейных системах. Как только система становится нелинейной, учебники по ТАУ можно не читать. По этой причине подобной ситуации надо максимально избегать. Если регулятор уходит в насыщение - это первый признак того,что система работает на пределе возможностей.
Цитата
разве ПИД не обязан адекватно реагировать при любом изменение задатчика?

Вам про Фому, а вы про Ерёму. Я на примере намекну вам, о чём Таня пытается вдолбить.
Есть объект управления - огромная 100 литровая бочка с водой. Нагревается до 100 градусов 24 часа. Приблизительная модель объекта:
H=1/(T*s+1).
Сделаем регулятор температуры этой воды, используя принцип полной внутренней компенсации. Передаточная функция регулятора должна быть (T*s+1). В этом случае передаточкая функция разомкнутой системы будет Hр=1, т.е. безынерционный элемент. Математически, с точки зрения ТАУ, все правильно. А теперь, как схемотехник, расскажите мне какая мощность будет вашего нагревателя ^_^. По этой причине и ставят задатчики интенсивности в главные контуры регулирования.Тоже касается и электроприводов
somebody111
Цитата
А как быть в том случае если алгоритм не выдает крайнее значение заполнения? А это нужно например чтобы сразу быстро стартануть мотор.

Давайте сначала. Регулятор - эта штука,которая компенсирует постоянные времени объекта управления. Если вы делаете систему управления вашим моторчиком одноконтурной, т.е.ток не ограничиваете, то компенсация должна быть такой, чтобы предать системе нужный тип переходного процесса. Некоторые виды этих процессов привожу в ссылке ниже:
http://s32.postimg.org/rmz66yzk3/200468_html_m3fcc6b2f.png
Если вы хотите поднять быстродействие, можно увеличить П-составляющую регулятора. Одновременно с ним увеличится и жесткость механической характеристики вашего привода.
Как правило для управления электроприводом этого достаточно. В этом случае под нагрузкой разница между заданием и реальной скоростью будет какая-то, но с увеличением П-составляющей она будет уменьшаться, но 0 не будет никогда.
Если вам нужно,чтобы характеристика было абсолютно жесткой, т.е. при любой нагрузке моторчик должен вращаться с постоянной скоростью без просадки, добавьте интегральную составляющую.Значение интегральной составляющей в этом случае будет определять "как быстро частота вращения достигнет заданного значения". Но бесконечно её увеличивать нельзя. Во-первых, с увеличением И-составляющей снижается запас устойчивости системы.Во-вторых, появится такой эффект как перерегулирование.Следует отметить, что в ПИ-регуляторе, П-составляющая вносит реальный вклад только в начале, когда интегратор еще не зарядился; как только интегратор накопил ошибку, вклад П-составляющей по сравнению с И -никакой, даже мешает.В моих задачах,например, жесткая характеристика электропривода и ,тем более ,перерегулирование недопустимы - резвый двигатель ломает дорогую механику,а,при перерегулировании электровоз начинает шатать. Поэтому, как правило, ограничиваются П-регулятором и задатчиком интенсивности. В этом случает перерегулирование исключено ,а удары в механике сведены к минимуму. Но если очень надо, для каких-нибудь станков, вводится интегральная составляющая, которая сведет разницу между заданием и реальной частотой в 0, но в этом случает, для избежания подобных проблем ПИ-регулятор модифицируют. В зависимости от задачи, можно 100 этих модификаций придумать. В частности,чуть выше был упомянута модификация с компенсацией насыщения. Она используется тогда, когда у вас двигатель перегружен, регулятор насыщен и от привода требуется быстро отреагировать,когда нагрузка будет снята. С простым регулятором сначало пройдет какое-то время на разрядку интегратора,а потом на его новую зарядку. С алгоритмом компенсации насыщения И составляющая быстрее разрядится и привод быстрее отреагирует и ,самое главное, колебаний скорости в этот момент не будет

Про Д составляющую забудьте. В электроприводе Д составляющая приносит только вред. В промышленных и непромышленных задачах она не используется. Она используется либо в крутых цифровых системах (и то, в тык, по определению производной она не делается- за подробностями к проектировщикам всяких цифровых фильтров на плисах) либо на объектах с огроменной постоянной времени. Например, какой-нибудь тепловой объект, который часа два только разогревается. Можно загнать в максимум И-составляющую,чтобы компенсировать эти два часа, а можно немножко снять с И и отдать на Д
demiurg_spb
Цитата(somebody111 @ Apr 26 2016, 19:03) *
вам правильно ответили. Как только регулятор уходит в насыщение, система управления становится нелинейной.
Уже по второму кругу пошли.
Вы излагаете на весьма доступном языке и я в состоянии оценить весь ваш лингвистический порыв, но ТАУ я изучал в течение 6 семестров на кафедре САУ по специальности электропривод в Политехе, примерно 15 лет назад и кое-что ещё помню...
А теперь по существу. Научите нас всех как проектировать регулятор контура положения (без насыщения), например, для гиростабилизированной платформы с ограниченной подвижностью?
Tanya
Цитата(somebody111 @ Apr 26 2016, 20:57) *
Про Д составляющую забудьте. В электроприводе Д составляющая приносит только вред.

До этого места я Вам мысленно кивала... Но тут не могу молчать.
Где же тут какая-то особенность в механике по сравнению с теплом?
Уравнения одинаковые.
Вот, хотим скорость стабилизировать. Производная скорости - ускорение, силой вызываемое. Если мы детектируем силу, которая еще не успела вызвать существенное отклонение, то почему мы должны отказать себе в удовольствии противодействовать ей - убить ее на корню сразу?
С другой стороны и моторчик, и печку мы можем моделировать конденсатором с резисторами и внешними генераторами тока.
Нет никаких отличий, кроме названий. В одном случае напряжение на конденсаторе мы называем температурой, в другом - скоростью.
С третьей стороны - Д-компонента вводит в систему вязкое трение (для случая механики), что позволяет нам увеличить П-компоненту.
Есть еще и другие стороны рассмотрения на фазовой диаграмме...

Цитата(demiurg_spb @ Apr 26 2016, 23:56) *
Уже по второму кругу пошли.
Вы излагаете на весьма доступном языке и я в состоянии оценить весь ваш лингвистический порыв, но ТАУ я изучал в течение 6 семестров на кафедре САУ по специальности электропривод в Политехе, примерно 15 лет назад и кое-что ещё помню...
А теперь по существу. Научите нас всех как проектировать регулятор контура положения (без насыщения), например, для гиростабилизированной платформы с ограниченной подвижностью?

А я вот не изучала ни ТАУ, ни САУ - совсем недавно мне объяснили, что эти аббревиатуры значат...
Поэтому, наверное, и не понимаю, какой плюс мы извлекаем из насыщения (зашкаливания) системы управления.
Объясните, пожалуйста.
somebody111
Цитата
Где же тут какая-то особенность в механике по сравнению с теплом?

Тепловые процессы сами по себе медленные. В первом приближении их можно рассматривать апериодическим звеном. Если делать ПИ-регулятор, то постоянную времени придется сильно задрать,что и приведет к ко всяким перерегулированиям и насыщениям. А можно закрыть глаза и сказать,что в более точном приближении объект описывается апериодическим 2 порядка и постоянные времени можно распределить введением Д-составляющей. Без Д-составляющей регулятор будет насыщаться и де-факто будет не ПИ, а релейный регулятор.Для тиристоров в преобразователе - это не самый лучший режим.
--
Механика - вообще другая тема. Если вы рассматриваете просто двигатель - вы правы.Это линейный объект управления. Как только нацепите на вал редуктор, начнуться проблемы, связанные с наличием люфта в механической передаче,т.е. система с нелинейностью. Проявляться она будет в том, что при запуске и реверсах будет удар. Реально работающих систем, которые его напрямую компенсируют, еще не придумали, но есть панацея - делать привод менее резвым. Д-составляющая,наоборот, и вводится для резвости.Если люфт игнорировать, то будут 10-ти кратные удары в редукторе и через полгода его придется менять.Если речь идет о 100Вт-ном моторчике, то без проблем купить другой более мощный редуктор. В моих задачах двигатель стоит 4 миллиона, преобразователь 2, а редуктор 15. Преобразователь я могу штамповать пачками, двигатель полностью защищен преобразователем и с ним ничего не будет, а вот редуктор изготавливается пол года, мощнее сделать невозможно, стоит гораздо дороже и запасного нет-)
Другими словами, основное отличие теплового объекта и механической в том, что тепловой объект - линейный с большой постоянной времени, а механическая система -нелинейная, когда идет выбор люфта.
Цитата
А теперь по существу. Научите нас всех как проектировать регулятор контура положения (без насыщения)

Еще раз вам повторяю - то, что регулятор уходит в насыщение не есть хорошо. Если вы понимаете это проблему - это одно, если принимать это за норму - другое.
Tanya
Цитата(somebody111 @ Apr 27 2016, 14:19) *
Тепловые процессы сами по себе медленные.
---
Механика - вообще другая тема. Если вы рассматриваете просто двигатель - вы правы. Как только нацепите на вал редуктор, начнуться проблемы, связанные с наличием люфта в механической передаче,т.е. система с нелинейностью.

Слово "медленные" должно ведь что-то означать. По сравнению с чем? Вот если на оси времени не ставить масштаб, то как узнать, что они медленные? Тепловые процессы тоже могут быть нелинейными. Вообще говоря, тепловые системы могут быть протяженными с такими интересными явлениями, как тепловые волны, о которых мало кто знает...
В механике ведь тоже можно представить себе систему со многими степенями свободы, собственными частотами и нелинейным взаимодействием, но ведь музыканты играют на всяких там (особенно сейчас модных) виолончелях. но у них внутри немного более сложная система управления, чем ПИД.
demiurg_spb
Цитата(Tanya @ Apr 27 2016, 13:39) *
А я вот не изучала ни ТАУ, ни САУ - совсем недавно мне объяснили, что эти аббревиатуры значат...
Поэтому, наверное, и не понимаю, какой плюс мы извлекаем из насыщения (зашкаливания) системы управления.
Объясните, пожалуйста.
Хочется ругаться!!! Где я говорю что насыщение - это хорошо и что из этого мы извлекаем плюсы???
Я говорю совсем о другом - о том что есть системы которые по своей сути имеют границы и рано или поздно уходят в насыщение.
И я уже приводил такой пример из области механики. Чтобы вы поняли попробую перекинуть в область температуры:
Ваша печь имеет конечную мощность ТЭНов, а вы задали уставку по температуре слишком большую или камера потеряла герметичность (забыли закрыть дверь) и как тут не грей, на уставку не выйти. Это не совсем обычная ситуация в вашей сфере, а в других сферах - это норма жизни!
А вы всё никак в это не верите... Насыщение - это ТИПОВАЯ ситуация любого нормально спроектированного регулятора, и из этой ситуации он должен выходить красиво. Вот тут и приходится включать сообразительность и не давать интегратору возможности кушать "сверх нормы".
somebody111
Цитата
Слово "медленные" должно ведь что-то означать. По сравнению с чем? Вот если на оси времени не ставить масштаб, то как узнать, что они медленные? Тепловые процессы тоже могут быть нелинейными. Вообще говоря, тепловые системы могут быть протяженными с такими интересными явлениями, как тепловые волны, о которых мало кто знает...
В механике ведь тоже можно представить себе систему со многими степенями свободы, собственными частотами и нелинейным взаимодействием, но ведь музыканты играют на всяких там (особенно сейчас модных) виолончелях. но у них внутри немного более сложная система управления, чем ПИД.

Я очень не люблю обобщать. Философия за все время своего существования ни на один вопрос не ответила. Конкретно - электропривод и ТЭНы. Постоянная времени ТЭНов измеряется в минутах и часах, постоянная времени 400кВт привода - 0.5-1 секунда.Постоянная времени 50кВт привода 0.5-1 секунда. Постоянная времени 30кВт привода 0.5-1 секунда
Цитата
Я говорю совсем о другом - о том что есть системы которые по своей сути имеют границы и рано или поздно уходят в насыщение.

ну так я об этом и говорил. Говорили об одном и том же на разных языках
==
Я предлагаю прекратить наш спор, потому что он отошёл от темы. Тема - ПИД-регулятор СКОРОСТИ с ограничениями. Ответы:
Первое мнение - Д составляющая не нужна. На низкой мощности она ничего не компенсирует и лишняя настройка, а на высокой мощности она противопоказана. Постоянное нахождение регулятора в насыщении не есть норма. В приводе должен быть задатчик интенсивности. И-составляющая так же не обязательна, если не требуется абсолютно жесткая характеристика
Второе мнение: ПИД регулятор в электроприводе имеет право на существование и насыщения недопустимы
Третье мнение: регулятор в электроприводе может насыщаться
Tanya
Цитата(demiurg_spb @ Apr 27 2016, 15:03) *
Хочется ругаться!!!
Чтобы вы поняли попробую перекинуть в область температуры:
Ваша печь имеет конечную мощность ТЭНов, а вы задали уставку по температуре слишком большую или камера потеряла герметичность (забыли закрыть дверь) и как тут не грей, на уставку не выйти. Это не совсем обычная ситуация в вашей сфере, а в других сферах - это норма жизни!
А вы всё никак в это не верите... Насыщение - это ТИПОВАЯ ситуация любого нормально спроектированного регулятора, и из этой ситуации он должен выходить красиво. Вот тут и приходится включать сообразительность и не давать интегратору возможности кушать "сверх нормы".

Вот и не надо задавать такую уставку. Контроллер должен ее медленно менять, следя за границами, которые мы должны заранее знать.
Про типовую ситуацию... Если двигатель заклинит... Если печь взорвется - туда кое-что положили.. Это не типовая ситуация. Должен быть контроллер (уже не ПИД) более высокого уровня.
Сами же говорите, что надо иметь сообразительность. А ПИД, о котором мы тут ведем речь, ею не обладает.
Только птица Говорун...

Цитата(somebody111 @ Apr 27 2016, 15:10) *
Я очень не люблю обобщать. Философия за все время своего существования ни на один вопрос не ответила. Конкретно - электропривод и ТЭНы. Постоянная времени ТЭНов измеряется в минутах и часах, постоянная времени 400кВт привода - 0.5-1 секунда.Постоянная времени 50кВт привода 0.5-1 секунда. Постоянная времени 30кВт привода 0.5-1 секунда

Ну и которые из них медленные? С чем сравниваем?
somebody111
Цитата
Ну и которые из них медленные? С чем сравниваем?

минуты>>>1 секунды, не?
Цитата
Про типовую ситуацию... Если двигатель заклинит... Если печь взорвется - туда кое-что положили.. Это не типовая ситуация

Это типовые "не типовые" ситуации. Вы рассуждаете теоретически. Практически, если двигатель встал в стопор его не всегда можно отключить. Или в печку наложили много холодного железа и надо его быстро разогреть. Если ваша интелектуальная печка от этого умно отключиться, вам будут слать претензии, что ваше изделие при их условиях не работает.В конечном итоге это изделие никто не купит
gte
Цитата(demiurg_spb @ Apr 27 2016, 15:03) *
или камера потеряла герметичность (забыли закрыть дверь) и как тут не грей, на уставку не выйти. Это не совсем обычная ситуация в вашей сфере, а в других сферах - это норма жизни!

Цитата(Tanya @ Apr 27 2016, 16:10) *
Про типовую ситуацию... Если двигатель заклинит... Если печь взорвется - туда кое-что положили.. Это не типовая ситуация. Должен быть контроллер (уже не ПИД) более высокого уровня.

Перегрузка, например, выхода источника питания это вполне типовая ситуация только ее можно решить без героизма, автоматическим переходом на регулировку другим регулятором по мощности (дверь открыли) или по току.
Tanya
Цитата(somebody111 @ Apr 27 2016, 16:26) *
минуты>>>1 секунды, не?

Вы уже сомневаетесь. Это хорошо.
Цитата(somebody111 @ Apr 27 2016, 16:26) *
Это типовые "не типовые" ситуации.


Цитата(gte @ Apr 27 2016, 16:44) *
Перегрузка, например, выхода источника питания это вполне типовая ситуация только ее можно решить без героизма, автоматическим переходом на регулировку другим регулятором по мощности (дверь открыли) или по току.

Эти ситуации не должны отрабатываться ПИДом, о котором мы тут ведем плодотворнейшую из дискуссий.
А нарочно их устраивать глупо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.