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

 
 
> Сервопривод - какие алгоритмы кроме ПИД используются?, результаты с ПИД не устраивают (может неправильно готовлю).
Сергей Борщ
сообщение 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
_Pasha
сообщение Mar 16 2010, 06:55
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



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

Все-таки если управлять частотой с соответствующей коррекцией амплитуды, Вы можете
а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел)
б) получить линейность управляющего воздействия,
в) получить постоянный вращаюший момент при движении.
И все, заметьте, в одном флаконе.

Циглер-Николс ай-лю-лю!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 16 2010, 17:53
Сообщение #4


Гуру
******

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



Цитата(_Pasha @ Mar 16 2010, 09:55) *
Ого, нафлудили...
а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел)
б) получить линейность управляющего воздействия,
в) получить постоянный вращаюший момент при движении.
И все, заметьте, в одном флаконе.

Циглер-Николс ай-лю-лю!

а) По поводу новяза попрошу ссылаться...
б) Скажите, как это сделать нам и Автору без датчика тока.
в) это еще зачем? Тогда будем двигаться с ускорением до разноса или остановки трением...
Все это Вы написали и запели ай-лю-лю всего-то с одного флакона?
Не верю.
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, 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


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

 


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


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