Добрый день! Подскажите, как правильно стабилизировать обороты двигателя с обратной связью по энкодеру на ПЛК (только сигнал А - 1024 имп/об) без ПИД?
ПЧ двигателя управляется по аналоговому сигналу с ПЛК Siemens S7-1215 (AO - 10 бит),
максимальная частота вращения двигателя 1500 об/мин.
Меня интересует сам алгоритм?
В прерывании, каждые 500 мс я фиксирую количество импульсов и перевожу это значение в об/мин,
но как мне, без ПИД регулятора, выполнить стабилизацию оборотов (точность +/- 3 об/мин).
Рассматриваю вариант, когда энкодер подключить к ПЧ нельзя (по любым причинам),
можно использовать только один сигнал А на ПЛК (сигналы энкодера B, R - не будут задействованы).
В идеале, выполнить стабилизацию максимально быстро.
Стабилизация оборотов двигателя с ОС по энкодеру
-
- Posts: 8
- Joined: Sat May 14, 2011 12:39 pm
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation
Re: Стабилизация оборотов двигателя с ОС по энкодеру
Ваше желание сродни желанию заняться *ом... стоя... в гамаке...
В данном случае совет специалиста (как *олога, так и автоматчика) будет один - не выдумывайте и делайте по-человечески.
В данном случае совет специалиста (как *олога, так и автоматчика) будет один - не выдумывайте и делайте по-человечески.
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Re: Стабилизация оборотов двигателя с ОС по энкодеру
просьба к "специалисту" указывать конкретный "человеческий" алгоритм,
а не выдумывать аллегории
к сожалению частотник под рукой сейчас не работает (требуется отремонтировать) и при +3°С думы в празднике о будущем урожае...
-
- Posts: 8
- Joined: Sat May 14, 2011 12:39 pm
Re: Стабилизация оборотов двигателя с ОС по энкодеру
Я так понял, только ПИД регулятор. Можно или даже нужно использовать ПИД,
но у меня не получается его настроить более-менее нормально,
в каком плане,
был проект, где нужно было синхронизировать два двигателя, точнее один являлся мастер приводом (n=const),
он задавал линейную скорость ленты, а второй был приемным устройством (n=var из-за изменения диаметра барабана), э
та лента наматывалась на катушку, стоял датчик натяжения ленты (выходной сигнал +-10В),
так вот если не было резкого изменения натяжения,
ПИД отрабатывал отлично,
но по тех.причинам (из-за механики) могли возникать рывки,
ПИД не успевал отработать корректно (либо лента рвалась, либо занчительно снижалось натяжение и срабатывал аварийный останов),
какие я только не пробовал выставлять коэффициенты по П и Д составляющей,
золотой середины так и не добился.
Что касается нечеткой логики теория вроде как ясна, но как это все описать математически,
да еще потом перенести в ПЛК, я в итоге не смог разобраться (нигде не нашел нормального примера).
А сейчас нужно более-менее стабильно поддерживать заданные обороты практически вне зависимости от нагрузки на валу (понятно, в разумных пределах),
особенно интересует при резком изменении нагрузки.
но у меня не получается его настроить более-менее нормально,
в каком плане,
был проект, где нужно было синхронизировать два двигателя, точнее один являлся мастер приводом (n=const),
он задавал линейную скорость ленты, а второй был приемным устройством (n=var из-за изменения диаметра барабана), э
та лента наматывалась на катушку, стоял датчик натяжения ленты (выходной сигнал +-10В),
так вот если не было резкого изменения натяжения,
ПИД отрабатывал отлично,
но по тех.причинам (из-за механики) могли возникать рывки,
ПИД не успевал отработать корректно (либо лента рвалась, либо занчительно снижалось натяжение и срабатывал аварийный останов),
какие я только не пробовал выставлять коэффициенты по П и Д составляющей,
золотой середины так и не добился.
Что касается нечеткой логики теория вроде как ясна, но как это все описать математически,
да еще потом перенести в ПЛК, я в итоге не смог разобраться (нигде не нашел нормального примера).
А сейчас нужно более-менее стабильно поддерживать заданные обороты практически вне зависимости от нагрузки на валу (понятно, в разумных пределах),
особенно интересует при резком изменении нагрузки.
-
- Posts: 878
- Joined: Tue Dec 26, 2006 5:21 am
- Location: Russia
Re: Стабилизация оборотов двигателя с ОС по энкодеру
1. Без ПИД можно настроить любую систему, если ее знать очень хорошо.
2. В вашем случае надо было сразу писать про вашу систему. В вашем случае никакой ПИД не поможет. В вашем случае нужно оставить ПИД, как был изначально. И добавить демпферную систему для устранения резкого изменения натяжения ленты (назовем лентой).
П.С. Ваш случай не простой, но типичный, поэтому много употребляю "В вашем случае".
П.С.С. В вашем случае демпферная система есть просто натяжной ролик, который прикреплен к пневмоцилиндру с длинным ходом и закрытым объемом.
Именно он добавит "вашему ПИДу" скорость реакции во всем диапазоне изменений силы натяжения.
П.С.С. Да, вспомнил, можно еще управлять не скоростью частотника а усилием частотника, но это уже другая история.
2. В вашем случае надо было сразу писать про вашу систему. В вашем случае никакой ПИД не поможет. В вашем случае нужно оставить ПИД, как был изначально. И добавить демпферную систему для устранения резкого изменения натяжения ленты (назовем лентой).
П.С. Ваш случай не простой, но типичный, поэтому много употребляю "В вашем случае".
П.С.С. В вашем случае демпферная система есть просто натяжной ролик, который прикреплен к пневмоцилиндру с длинным ходом и закрытым объемом.
Именно он добавит "вашему ПИДу" скорость реакции во всем диапазоне изменений силы натяжения.
П.С.С. Да, вспомнил, можно еще управлять не скоростью частотника а усилием частотника, но это уже другая история.
-
- Posts: 878
- Joined: Tue Dec 26, 2006 5:21 am
- Location: Russia
Re: Стабилизация оборотов двигателя с ОС по энкодеру
Описать все нечеткой математикой и подсунуть ИИ. (полушутка)Что касается нечеткой логики теория вроде как ясна, но как это все описать математически,
В общем случае (и в вашем случае тоже) нечеткую логику нужно привести к четкой логике, потому что у вас нет ИИ и нет инструментов для работы в нечеткой математике. Например задать дополнительное постоянное внешнее достаточно большое (чтобы пренебречь нечеткой логикой) воздействие в одном направлении.
В вашем случае это есть натяжной ролик, который все время натягивает ленту в одном направлении, а постоянство натяжения задает бесконечно длинный закрытый пневмоцилиндр. А достаточное усилие натяжения задает давление в полости пневмоцилиндра.
-
- Posts: 8
- Joined: Sat May 14, 2011 12:39 pm
Re: Стабилизация оборотов двигателя с ОС по энкодеру
В общем я понял, нужно нормально настроить ПИД и не изобретать велосипед! Всех благодарю за консультацию!
-
- Posts: 878
- Joined: Tue Dec 26, 2006 5:21 am
- Location: Russia
Re: Стабилизация оборотов двигателя с ОС по энкодеру
Вы быстро учитесь. Удачи.
-
- Posts: 2
- Joined: Mon Jun 17, 2019 9:48 am
Re: Стабилизация оборотов двигателя с ОС по энкодеру
энкодер - это датчик угловых перемещений, для стабилизации скорости вращения он не очень подходит.
На больших оборотах за малый промежуток можно получить достаточно достоверную величину ошибки, а вот на малых оборотах нет.
На станках применяют тахогенератор качестве датчика обратной связи, и при этом имеют привод с достаточно большим диапазоном регулирования от 0-3000 об/мин,
но правда на двигателе постоянного тока.
Частотный преобразователь имеет еще вдобавок неравномерное управление,
на малых частотах (0-2 Hz) может вообще не крутится при скалярном режиме управления.
Поэтому для начало я бы советовал построить П-регулятор,
т.е. регулятор в котором выходной сигнал равен величине ошибки,
поэкспериментировать с временем для получения величины ошибки и коэффициентом П-регулятора.
Затем если его не хватит для вашего диапазона, то добавить интегральную составляющую ошибки к выходному сигналу.
На больших оборотах за малый промежуток можно получить достаточно достоверную величину ошибки, а вот на малых оборотах нет.
На станках применяют тахогенератор качестве датчика обратной связи, и при этом имеют привод с достаточно большим диапазоном регулирования от 0-3000 об/мин,
но правда на двигателе постоянного тока.
Частотный преобразователь имеет еще вдобавок неравномерное управление,
на малых частотах (0-2 Hz) может вообще не крутится при скалярном режиме управления.
Поэтому для начало я бы советовал построить П-регулятор,
т.е. регулятор в котором выходной сигнал равен величине ошибки,
поэкспериментировать с временем для получения величины ошибки и коэффициентом П-регулятора.
Затем если его не хватит для вашего диапазона, то добавить интегральную составляющую ошибки к выходному сигналу.
-
- Posts: 878
- Joined: Tue Dec 26, 2006 5:21 am
- Location: Russia
Re: Стабилизация оборотов двигателя с ОС по энкодеру
Читайте внимательнее: автор писал
Ваши советы слишком оторваны от конкретики.
так вот если не было резкого изменения натяжения, ... но по тех.причинам (из-за механики) могли возникать рывки,
Ваши советы слишком оторваны от конкретики.