|
Сервопривод - какие алгоритмы кроме ПИД используются?, результаты с ПИД не устраивают (может неправильно готовлю). |
|
|
|
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 15 2010, 12:29
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Сергей Борщ @ Mar 15 2010, 15:09)  Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить. Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...? Все это непонятно. Мне. Сначала надо бы разобраться с этими двигателями. А потом можно скачать аппликацию от Microchip'а. Была такая про удержание инверсного маятника моторчиком.
|
|
|
|
|
Mar 15 2010, 12:58
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Tanya @ Mar 15 2010, 15:29)  Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...? Все это непонятно. Мне. Пардон. Не заметила, что Вы пишите только про одну обмотку. Тогда момент будет пропорционален току. А зачем Вы синус еще ШИМом делаете? Можно и меандр, наверное. Если сделать локальную обратную связь по току, тогда Вы будете правильно управлять - моментом. Цитата(Сергей Борщ @ Mar 15 2010, 15:39)  Обмотка возбуждения запитана постоянно синусом 400 Гц. На обмотку управления подается синус, сдвинутый на +-90 градусов. При +90 двигатель вращается в одну сторону, при -90 - в другую. Чем больше амплитуда - тем быстрее вращение.Спасибо, поищу. Более точного названия не помните? Уже каялась... Названия не помню... Что-нибудь вроде... inverse(ted) pendulum ? Цитата(Tanya @ Mar 15 2010, 15:51)  Уже каялась... Названия не помню... Что-нибудь вроде... inverse(ted) pendulum ? http://www.microchip.com/stellent/idcplg?I...ppnote=en021807Вот нашлось. Хотя их поиск по ключевым словам не давал ответа... А слова-то правильные были... Цитата(Oldring @ Mar 15 2010, 15:36)  Вот только инверсного маятника человеку не хватает... Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались?
|
|
|
|
|
Mar 15 2010, 13:28
|

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

|
Цитата(Tanya @ Mar 15 2010, 15:58)  Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались? Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы? Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая. Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания.
--------------------
Пишите в личку.
|
|
|
|
|
Mar 15 2010, 14:09
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 16:28)  Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы?
Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая.
Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания. Задача почти такая же. Задатчик гуляет сам по себе. Из внешнего мира. Вот он шум... из Зазеркалья... Закулисы... А наша задача - его отслеживать. Только у нас устойчивость получше, но непринципиально. Слов ПИДдержание... какое-то украинское. Откуда взялось? Цитата(khach @ Mar 15 2010, 17:00)  Так вот, собственно, как считаете, таходатчик при сегодняшней технике развития привода это анахронизм, и надо "тянуть" за алгоритм обработки энкодера, или все таки надо его сохранить? А может... Этот самый мотор может в нерабочее время подрабатывать (тахо)генератором? Это бы было хорошо.
|
|
|
|
Сообщений в этой теме
Сергей Борщ Сервопривод - какие алгоритмы кроме ПИД используются? 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, 14:29) Если В... Mar 15 2010, 12:39     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 15... Mar 16 2010, 06:55  Сергей Борщ Цитата(_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  Tanya Цитата(_Pasha @ Mar 16 2010, 09:55) Ого, ... Mar 16 2010, 17:53   _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
|
|
|