реклама на сайте
подробности

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


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Mar 15 2010, 12:09
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 15 2010, 12:29
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Сергей Борщ @ Mar 15 2010, 15:09) *
Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить.

Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...?
Все это непонятно. Мне.
Сначала надо бы разобраться с этими двигателями.
А потом можно скачать аппликацию от Microchip'а. Была такая про удержание инверсного маятника моторчиком.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 15 2010, 12:58
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 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) *
Вот только инверсного маятника человеку не хватает...

Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 15 2010, 13:28
Сообщение #5


Гуру
******

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



Цитата(Tanya @ Mar 15 2010, 15:58) *
Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались?


Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы?

Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая.

Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 15 2010, 14:09
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Oldring @ Mar 15 2010, 16:28) *
Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы?

Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая.

Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания.

Задача почти такая же. Задатчик гуляет сам по себе. Из внешнего мира. Вот он шум... из Зазеркалья... Закулисы...
А наша задача - его отслеживать. Только у нас устойчивость получше, но непринципиально.
Слов ПИДдержание... какое-то украинское. Откуда взялось?

Цитата(khach @ Mar 15 2010, 17:00) *
Так вот, собственно, как считаете, таходатчик при сегодняшней технике развития привода это анахронизм, и надо "тянуть" за алгоритм обработки энкодера, или все таки надо его сохранить?

А может... Этот самый мотор может в нерабочее время подрабатывать (тахо)генератором?
Это бы было хорошо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Сергей Борщ   Сервопривод - какие алгоритмы кроме ПИД используются?   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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 03:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016