|
Сервопривод - какие алгоритмы кроме ПИД используются?, результаты с ПИД не устраивают (может неправильно готовлю). |
|
|
|
Mar 14 2010, 09:59
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Стоит задача: оживить авиационный индикатор. Индикатор состоит из двухфазного двигателя типа ДИД, который через редуктор двигает шкалу или вращает стрелку и датчик обратной связи (потенциометр или сельсин). Двигатель запитываю пониженным напряжением (17в вместо 36в) 400Гц. Больше не могу - входное питание постоянка 24в. Двигатель вращается замечательно. Проблема с реализацией следящей системы. Редуктор обладает весьма значительной инерцией и трением покоя. Попробовал реализовать ПИД (по статье "PID without PhD"), но результат не понравился. Настроить его по Зиглеру-Николсу невозможно - при малых P двигатель не может преодолеть трение редуктора, увеличиваю - как только двигатель в состоянии стронуть редуктор начинаются колебания. Задавить колебания можно значительным увеличением D. При малых D торможение начинается слишком поздно, при больших оно начинает тормозить еще на разгоне, система получается очень вялой. При малых изменениях входного сигнала I часть отрабатывает медленно, а если ее ускорить - начинает мешать при больших перемещениях, снова начинаются колебания. Какие еще алгоритмы применяются в подобных сервосистемах? На просторах интернета встречается статья "Fundamentals of Servo Motion Control", где кроме PID управления описано некое PIV управление, но описано в общих словах. Поиск этого PIV выдает перепечатки этой самой "Fundamentals" с теми же самыми картинками и ни слова больше. Какие алгоритмы применяются в сервосистемах радиоуправляемых моделей? Там нагрзука сервомашинки заранее неизвестна, но работают они очень шустро и четко. Процессор - мега88, плавающую точку не успеет, все считаю в фиксированной. Частота опроса датчика - 50 Гц. В какую сторону копать? Ссылки с не очень заумной математикой приветствуются.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
 |
Ответов
|
Mar 15 2010, 12:09
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Oldring @ Mar 15 2010, 11:04)  Можно подмешать к току двигателя переменный ток, создающий момент, превышающий трение. Управляемость простыми алгоритмами улучшится, но и износ механики возрастет. Двигатель индукционный двухфазный. Запитан двумя синусами 400 Гц, сдвинутыми на 90 градусов. Цитата(Tanya @ Mar 15 2010, 11:18)  Эти индикаторы совсем-совсем разные? Непонятно все это. Система регулирования обычно настраивается не очень точно (не экстремально). Да, совсем-совсем. Я могу сделать какую-то процедуру калибровки (желательно автоматической), но пока непонятно - что именно калибровать. Цитата(Tanya @ Mar 15 2010, 11:18)  Может быть Ваша проблема в том, что Вы включаете ПИД при больших отклонениях задатчика? Тогда интегральный член будет "зашкаливать", и появятся затухающие колебания... Задатчик должен быть достаточно плавным в таком случае. Совершенно естественно, что двигатель должен сначала разгонять, а потом тормозить. И торможение должно начинаться до достижения конечной точки... Вы на машине ездите? Может быть и в этом. Какое именно отклонение задатчика считать большим? Я в начале писал, что колебания есть даже при отключенном интегральном члене. Да, мне понятно, что торможение должно начинаться заранее. Изначальный вопрос ветки можно переформулировать так: как рассчитать момент, когда надо начинать тормозить? Да, езжу. Цитата(Tanya @ Mar 15 2010, 11:18)  Самый быстрый вариант - максимальное ускорение с последующим максимальным торможением. Это банально. Еще сообщу, что самописцы-регистраторы с моторчиками и реохордами выпускались еще до нашего с Вами появления на Свет. Прекрасно. Вот самый быстрый (приемистый) вариант меня и интересует. Возможно для Вас это и банально, для меня - нет. Если бы я мог решить задачу сам - я бы ее решал. Но поскольку мои знания в электроприводе и ТАУ весьма минимальны - я и обратился на форум. Простого знания того, что это банально мне будет недостаточно для решения задачи. Спасибо за упоминание регистраторов - об их существовании я слышал. Вы не поверите - но в реальном самолете те самые индикаторы тоже работают и работали до нашего с Вами появления на Свет. Там они управляются чисто аналоговым способом. Я не могу себе позволить киловаттный источник 36в 400 Гц и штатную схему с кучей трансформаторов для вращения полуваттного двигателя. Мне надо управлять цифрой. Цитата(@Ark @ Mar 15 2010, 12:10)  В этой задаче присутствуют два различных процесса управления. Управление непосредственно двигателем - разгон, поддержание скорости, торможение. И слежение за положением - отработка рассогласования. Эти процессы происходят немного в разных временных масштабах. Управление двигателем должно быть быстрее (хотя бы на порядок). Поэтому и есть прямой смысл разделить управление этими процессами, а не сваливать их в одну кучу в одном регуляторе. Было бы замечательно. Мучает вопрос - как определить или рассчитать скорость, которую надо поддерживать? Цитата(Oldring @ Mar 15 2010, 12:44)  Чего-то мне кажется, что у человека сигнал управления - это не момент, а напряжение питания двигателя. И всего три возможных состояния этого сигнала управления. Двигатель управляется амплитудой синуса в обмотке управления. От -max до +max. Синус я формирую ШИМом, амплитуду могу менять с дискретностью 8 бит. Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 16 2010, 06:55
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Ого, нафлудили... Цитата(Сергей Борщ @ Mar 15 2010, 16:09)  Двигатель управляется амплитудой синуса в обмотке управления. От -max до +max. Синус я формирую ШИМом, амплитуду могу менять с дискретностью 8 бит. Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить. Все-таки если управлять частотой с соответствующей коррекцией амплитуды, Вы можете а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел) б) получить линейность управляющего воздействия, в) получить постоянный вращаюший момент при движении. И все, заметьте, в одном флаконе. Циглер-Николс ай-лю-лю!
|
|
|
|
|
Mar 16 2010, 17:53
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(_Pasha @ Mar 16 2010, 09:55)  Ого, нафлудили... а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел) б) получить линейность управляющего воздействия, в) получить постоянный вращаюший момент при движении. И все, заметьте, в одном флаконе.
Циглер-Николс ай-лю-лю! а) По поводу новяза попрошу ссылаться... б) Скажите, как это сделать нам и Автору без датчика тока. в) это еще зачем? Тогда будем двигаться с ускорением до разноса или остановки трением... Все это Вы написали и запели ай-лю-лю всего-то с одного флакона? Не верю.
|
|
|
|
Сообщений в этой теме
Сергей Борщ Сервопривод - какие алгоритмы кроме ПИД используются? Mar 14 2010, 09:59 proxi Цитата(Сергей Борщ @ Mar 14 2010, 11:59) ... Mar 14 2010, 11:00 @Ark IMHO, нужна обратная связь по скорости вращения дв... Mar 14 2010, 11:04 Tanya Цитата(Сергей Борщ @ Mar 14 2010, 12:59) ... Mar 14 2010, 12:02 @Ark Цитата... Получится более линейная вещь.
По моему,... Mar 14 2010, 12:42 Tanya Цитата(@Ark @ Mar 14 2010, 15:42) По моем... Mar 14 2010, 13:02 @Ark ЦитатаСкорость при малых значениях ее обычно измер... Mar 14 2010, 13:08 _Pasha Цитата(Сергей Борщ @ Mar 14 2010, 13:59) ... Mar 14 2010, 15:35 Сергей Борщ Цитата(proxi @ Mar 14 2010, 13:00) двигат... Mar 14 2010, 18:50 Tanya Цитата(Сергей Борщ @ Mar 14 2010, 21:50) ... Mar 14 2010, 19:13 proxi ЦитатаНе все так страшно - у меня сельсин запитыва... Mar 14 2010, 21:42 man with no name Я для регулирования положения делал табличку завис... Mar 14 2010, 21:01 Сергей Борщ Цитата(Tanya @ Mar 14 2010, 21:13) Что зн... Mar 14 2010, 21:24 Tanya Цитата(Сергей Борщ @ Mar 15 2010, 00:24) ... Mar 15 2010, 09:18  Oldring Цитата(Tanya @ Mar 15 2010, 12:18) Может ... Mar 15 2010, 09:31   Tanya Цитата(Oldring @ Mar 15 2010, 12:31) Имен... Mar 15 2010, 09:35    Oldring Цитата(Tanya @ Mar 15 2010, 12:35) Ограни... Mar 15 2010, 09:49     Tanya Цитата(Oldring @ Mar 15 2010, 12:49) Пожа... Mar 15 2010, 10:17      Oldring Цитата(Tanya @ Mar 15 2010, 13:17) И так ... Mar 15 2010, 10:44       Tanya Цитата(Oldring @ Mar 15 2010, 13:44) Невя... Mar 15 2010, 10:55        Oldring Цитата(Tanya @ Mar 15 2010, 13:55) Для ре... Mar 15 2010, 11:10         Tanya Цитата(Oldring @ Mar 15 2010, 14:10) Невя... Mar 15 2010, 11:27          Oldring Цитата(Tanya @ Mar 15 2010, 14:27) Не шут... Mar 15 2010, 11:33           Tanya Цитата(Oldring @ Mar 15 2010, 14:33) Назр... Mar 15 2010, 12:13            Oldring Цитата(Tanya @ Mar 15 2010, 15:13) Что Ва... Mar 15 2010, 12:36 @Ark Цитата... люфты в редукторе минимальные, если вращ... Mar 14 2010, 22:45 _Pasha Типомысль:
Экстраполяция промежуточных отсчетов ко... Mar 15 2010, 07:47 Oldring Цитата(Сергей Борщ @ Mar 14 2010, 12:59) ... Mar 15 2010, 09:04 @Ark В этой задаче присутствуют два различных процесса ... Mar 15 2010, 10:10 @Ark ЦитатаПредполагается, что мы можем создать именно ... Mar 15 2010, 10:24 Tanya Цитата(@Ark @ Mar 15 2010, 13:24) Система... Mar 15 2010, 10:27 @Ark ЦитатаЭто мы хотим положение, а она должна выдават... Mar 15 2010, 10:47 Oldring Цитата(Сергей Борщ @ Mar 15 2010, 15:09) ... Mar 15 2010, 12:22 Tanya Цитата(Сергей Борщ @ Mar 15 2010, 15:09) ... Mar 15 2010, 12:29  Сергей Борщ Цитата(Tanya @ Mar 15 2010, 14:29) Если В... Mar 15 2010, 12:39  Tanya Цитата(Tanya @ Mar 15 2010, 15:29) Если В... Mar 15 2010, 12:58   Oldring Цитата(Tanya @ Mar 15 2010, 15:58) Ваш ав... Mar 15 2010, 13:28    Tanya Цитата(Oldring @ Mar 15 2010, 16:28) Не п... Mar 15 2010, 14:09     Oldring Цитата(Tanya @ Mar 15 2010, 17:06) Задача... Mar 15 2010, 14:27      blackfin Цитата(Oldring @ Mar 15 2010, 17:27) Все ... Mar 15 2010, 14:31  Сергей Борщ Цитата(_Pasha @ Mar 16 2010, 08:55) Все-т... Mar 16 2010, 09:28   barabek Цитата(Сергей Борщ @ Mar 16 2010, 19:28) ... Mar 16 2010, 09:40   AndreyChip Цитата(Сергей Борщ @ Mar 16 2010, 13:28) ... May 26 2010, 14:00   _Pasha Цитата(Tanya @ Mar 16 2010, 21:53)
а) По... Mar 16 2010, 18:40 @Ark ЦитатаБыло бы замечательно. Мучает вопрос - как оп... Mar 15 2010, 12:26 perfect Пардон, что влезаю с такими вопросами, но всё-таки... Mar 15 2010, 13:25 khach Насколько я помню, петля PI+V (скорость) позволяет... Mar 15 2010, 14:00 @Ark ЦитатаЭтот самый мотор может в нерабочее время под... Mar 15 2010, 14:27 Сергей Борщ Цитата(Tanya @ Mar 15 2010, 14:58) А заче... Mar 15 2010, 14:53 Tanya Цитата(Сергей Борщ @ Mar 15 2010, 17:53) ... Mar 15 2010, 15:11  Сергей Борщ Цитата(Tanya @ Mar 15 2010, 17:11) Тогда ... Mar 15 2010, 15:22   Tanya Цитата(Сергей Борщ @ Mar 15 2010, 18:22) ... Mar 15 2010, 15:39   Oldring Цитата(Сергей Борщ @ Mar 15 2010, 18:22) ... Mar 15 2010, 15:50    тау Цитата(Oldring @ Mar 15 2010, 18:50) Обмо... Mar 15 2010, 16:24 Сергей Борщ Цитата(Tanya @ Mar 15 2010, 17:39) Я тако... Mar 15 2010, 16:30 Oldring Цитата(Сергей Борщ @ Mar 15 2010, 19:30) ... Mar 15 2010, 16:45  khach Цитата(Oldring @ Mar 15 2010, 19:45) На з... Mar 15 2010, 17:00   Oldring Цитата(khach @ Mar 15 2010, 20:00) Кстати... Mar 15 2010, 17:07 тау Цитата(Сергей Борщ @ Mar 15 2010, 19:30) ... Mar 15 2010, 17:00  Сергей Борщ Цитата(тау @ Mar 15 2010, 19:00) СП в тра... Mar 15 2010, 17:32   Tanya Цитата(Сергей Борщ @ Mar 15 2010, 20:32) ... Mar 15 2010, 18:31 perfect Хм, мне бы больше понравилось не падение амплитуды... Mar 15 2010, 18:24 Сергей Борщ Цитата(perfect @ Mar 15 2010, 20:24) Хм, ... Mar 15 2010, 20:48  barabek У меня была примерно такая задача управления мален... Mar 16 2010, 01:00 perfect Не очень постоянный, там есть С21. Mar 15 2010, 18:35 Tanya Цитата(perfect @ Mar 15 2010, 21:35) Не о... Mar 15 2010, 18:43  Oldring Цитата(Tanya @ Mar 15 2010, 21:43) Течет,... Mar 15 2010, 22:41   Tanya Цитата(Oldring @ Mar 16 2010, 01:41) Рото... Mar 16 2010, 04:42    Oldring Цитата(Tanya @ Mar 16 2010, 07:42) А я во... Mar 16 2010, 06:03 TSerg >Амплитудное мне реализовать проще - не нужно б... Mar 18 2010, 12:23 Serj78 Наличие трения указывает на существенное изменение... Mar 24 2010, 19:45 _Pasha Цитата(Serj78 @ Mar 24 2010, 22:45) Диффе... Mar 24 2010, 21:28 Vasily_ Цитата(Сергей Борщ @ Mar 14 2010, 13:14) ... Apr 14 2010, 09:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|