2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Синтез оптимального управления
Сообщение23.05.2016, 17:24 


02/10/12
6
Добрый день.

Столкнулся с некоторой литературной странностью. В русскоязычном и англоязычном сегменте легко найти задачу построения оптимального управления для системы вида
$x''(t) = u(t)$,
т.е. для систем где мы произвольно можем управлять силой тяги(thrust), но ведь на самом деле обычно мы управляем мощностью! Мне нужно перевести систему из
$x_0=C_0, x'_0 = 0$ в $x_1=C_1, x'_1 = 0$
за минимальное время. И без теории управления понятно, что надо выдать максимальную тягу в одну сторону, а через полпути в обратную. Однако, известно, что мощность для поддержания постоянной тяги пропорциональна скорости
$P=Fx'$.
А вот это уже противоречит естественным физическим ограничениям. У меня бесколлекторный двигатель больше 350Вт выдавать не способен, и управляю я на нём на самом деле мощностью (если я ничего не путаю). В таком случае моя задача на самом деле будет описываться уравнением
$x''|x'|=u$.
Модуль для простоты можно даже отбросить, тем не менее решение такой, на мой взгляд гораздо более реальной задачи, я не нашел нигде.

Что не так в моём понимании?

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение23.05.2016, 20:01 


16/02/10
258
Zealous в сообщении #1125422 писал(а):
Что не так в моём понимании?

Вы взяли одну из простейших задач ОУ и решили, что она вам не годится. Бывает. Задача в этом не виновата. "В русскоязычном и англоязычном сегменте легко найти" очень много разных задач ОУ.
Вы сформулировали другую, более подходящую для Вас. Прекрасно. Я, также как и Вы, такой задачи еще не встречал. Значит, нужно просто взять и решить ее. Но тут сразу 2 проблемы.
1. ДУ имеет особенность при нулевой скорости. При любом управлении $u(t)$ система не сможет покинуть начальное состояние $x'(0)=0$. По той же причине при ненулевой начальной скорости никакое управление не сможет привести систему в состояние покоя.
2. Если за начальную взять ненулевую сколь угодно малую скорость (чтобы преодолеть п.1), мы получим при конечной мощности сколь угодно большую силу т.е. сколь угодно большой ток в обмотках двигателя. То же самое произойдет в конце траектории. Снова нарушение "естественных физических ограничений".

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение23.05.2016, 20:15 


02/10/12
6
VPro
Спасибо большое за Ваш ответ.
Цитата:
Я, также как и Вы, такой задачи еще не встречал.

Хорошо. Просто мне показалось это странным, потому что для меня это более естественная ситуация. Грубо говоря, если мы сжигаем какой-то объем бензина в секунду, то больше энергии мы не способны выдать, или если аккумулятор работает на предельной токоотдаче, то мы не можем попросить его выдавать больше.

Да, особенность при нулевой скорости меня тоже смущает. Хотя и элементарные манипуляции с энергией показывают, что ничего страшного не происходит. Мы сообщим конечную энергию за конечный отрезок времени и получим конечную же скорость. Как по-Вашему, можно ли исправить ситуацию, выделив вокруг начальной и конечной точки небольшую окрестность и соответствующим образом изменить уравнения трансверсальности?

Как быть?

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение23.05.2016, 20:27 


16/02/10
258
Как быть?
1. Общий совет: подойти к вопросу серьезно. Для начала ознакомиться с обширной литературой по управлению электроприводом. Я тут не специалист, но простой запрос выдаст Вам много ссылок. Вполне возможно, ваша проблема уже решена в более адекватной постановке.
2. Оставаясь в рамках сформулированной Вами задачи, попытаться изменить уравнения, например, $x''=\frac{u}{a+x'}$, параметру $a$ придать какой нибудь физический смысл. Эту задачу уже можно решить.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение23.05.2016, 20:46 


02/10/12
6
VPro
Меня устроит не обязательно аналитическое решение. Попробую описать задачу более широко, возможно я вообще зря пытаюсь найти оптимальное управление.
У меня имеется плавсредство с двигателем. Оно лежит на нужном курсе, вопрос лишь в том, какое управление выдавать на двигатель. С частотой 10Гц, я получаю свои координаты, скорость я приближенно считаю как разность между текущим и прошлым измерением. Я нахожусь в какой-то точке и знаю куда мне надо попасть и с какой скоростью я должен в эту точку прийти. Пока что я хочу прийти туда и встать там. Сейчас я рассматриваю задачу без трения.
Управление, которое я пишу, сейчас управляет объектом в симуляции, его я просто численно интегрирую. Я использую в качестве контроллера специализированный инверсный нейроконтроллер. Т.е. его на его входы подаются вектор состояния с задержакми (NARMA) и целевые координаты. Его выход используется непосредственно в качестве управляющего сигнала на двигатель. Чтобы его обучить, мне необходимо знать ошибку выхода. Я бы хотел эту ошибку получать сравнивая выход с оптимальным управлением. Т.е. с функцией, зависящей от текущих и целевых координат и скоростей. Пусть даже и негладкой или разрывной.
Правильно ли я поступаю?

Цитата:
Общий совет: подойти к вопросу серьезно.
Это и есть моя цель. Но конечно, не хотелось бы углубляться в детали управления двигателем, поскольку это далеко от области моей компетенции. Мои мысли на этот счет таковы, что мне не нужна идеальная точность управления, внешние возмущения и трение всё равно будут искажать любое «оптимальное» управление. Даже если на концах траектории я буду ошибаться с конечными скоростями или положениями это не большая проблема, потому как в середине траектории у меня будет обратная связь, которая, если правильно построить управление, будет быстро компенсировать ошибки управления на начальной стадии. Мне нужно практическое решение больше, нежели чем строго теоретически оптимальное.

Принимая во внимание, что абсолютная точность не принципиальна, и то, что у меня есть обратная связь на всём пути, имеет ли смысл пытаться продолжать решать эту задачу используя, скажем, принцип максимума?

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение23.05.2016, 21:38 


16/02/10
258
Да, издалека Вы начали.... Задачи оптимального управления движением судов, автоматизированные системы этого управления --- это большое направление исследований. Тут с кондачка ничего не посоветуешь.
1. По крайней мере, скажу одно - примитивные модели упомянутые в вашем первом посте здесь не годятся. Сопротивление среды имеет решающее значение, его не отбросишь. Уравнения динамики судна гораздо сложнее описанного Вами.
2. Выбор критерия оптимальности: быстродействие, экономия топлива, суммарные затраты, экономия ресурса двигателя, ..... каждый из них может дать совершенно различные оптимальные режимы.
3. Если нет возможности серьезного исследования и решения задачи, то проще попросить опытного штурмана нарисовать хорошую траектории и взять ее за основу.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 02:04 


02/10/12
6
1. Это-то я как раз отлично понимаю, адекватная модель гораздо сложнее. Но у меня еще есть специфика, которая не учитывается в профессиональной литературе на эту тему. Очень малая инерция судна.
2. Для начала неплохо бы с быстродействием разобраться.
3. Возможность исследования есть. Есть возможность судно протестировать в опытовом бассейне, померить гидродинамические коэффициенты. Но опытного штурмана заранее не попросишь решить все возможные ситуации. Разный ветер, килевая качка, течения и пр.

1.1 Я понимаю что динамика судна сложнее, но меня сейчас интересует решение другой задачи. Мне надо концептуально проверить, что я могу обучить нейроконтроллер распознавать и решать именно такую, упрощенную задачу. Я хочу сделать так, чтобы он «уловил» закон динамики судна, пусть даже из симуляции. Это покажет мне, что по крайней мере в этой части комплекса ошибок нет. Уже следующим шагом я буду его обучать на максимально адекватной и возможной для построения модели, учитывающей профиль корпуса, числа Фруда и Рейнольдса. Я хочу по порядку наращивать сложность.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 11:20 
Заслуженный участник


10/01/16
2315
В книжке Арнольда "Математическое понимание природы" , в заметке "Задача Лидова о прилунении ракет", процесс причаливания судна описывается с помощью матроса, который , в последние моменты причаливания, прекращает попытки управлять судном с помощью двигателя, и притягивает его к причалу за канат. Объяснение состоит в неутешительном для нас выводе о невозможности - в рамках гладкой модели - честного чистого управления...
Так что, возможно, сама задача - безнадежна, ибо практики решают ее - на основе многовекового опыта - выходя за рамки модели....

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 13:58 


02/10/12
6
DeBill в сообщении #1125573 писал(а):
В книжке Арнольда "Математическое понимание природы" , в заметке "Задача Лидова о прилунении ракет", процесс причаливания судна описывается с помощью матроса, который , в последние моменты причаливания, прекращает попытки управлять судном с помощью двигателя, и притягивает его к причалу за канат. Объяснение состоит в неутешительном для нас выводе о невозможности - в рамках гладкой модели - честного чистого управления...
Так что, возможно, сама задача - безнадежна, ибо практики решают ее - на основе многовекового опыта - выходя за рамки модели....

Да, именно об этом я и говорю, чистое аналитическое решение, конечно, здорово, но меня больше интересует адаптивное. Именно поэтому, я и пытаюсь использовать нейросеть из-за её способности к обобщению и решению задач, на которые её не обучали.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 13:59 
Заслуженный участник
Аватара пользователя


09/09/14
6328
Zealous
Не уверен, может ли Вас заинтересовать эта статья. Мне она попалась под руку по совершенно другому поводу.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 14:26 


16/02/10
258
Хорошо, давайте разберемся с быстродействием. Решаем задачу наискорейшего перемещения материальной точки в среде без сопротивления на расстояние $S$. Начальная и конечная скорости нулевые. Отбрасываем фантазии про мощность и считаем, что управляющее усилие $u(t)$ ограничено: $|u|\le u_0 $. Усилие уже отнесено к массе. Величина $u_0$ соответствует максимально допустимому току в обмотках двигателя. Приходим к классической задаче:
$$\ddot x=u(t);\quad \dot x(0)=\dot x(T)=0;\quad x(0)=-S; \quad x(T)=0; \quad |u|\le u_0;\quad T\to \min_u.$$ Ее решение $$u^*(t)=u_0\left(H(t)-2H(t-0.5T_0)+H(t-T_0)\right),$$ где $H(t)$ - ступенчатая функция Хевисайда, $T_0=2\sqrt{\frac {S}{u_0}}$ - минимальное время достижения цели.

Первую половину пути объект разгоняется, вторую тормозит. Т.е., если $S$ достаточно большое, мы вполне можем набрать вторую космическую скорость и покинуть Солнечную систему. И тут мы вспоминаем, что в воде космические полеты затруднительны. Т.е. все-таки нужно учитывать сопротивление. Самый простой способ - введение линейного вязкого члена в уравнение движения $\ddot x=-c\dot x +u(t);$.
Задачу это сильно не усложнит. Чтобы Вам не возиться с принципом максимума и сопряженной системой, скажу сразу: оптимальное управление будет по форме абсолютно тем же самым, только величина T_0 измениться в большую сторону. И движение станет похожим на правду: набор скорости по экспоненте с насыщением, потом торможение тоже по экпоненте. Скорость при этом будет ограничена сверху. Все формулы Вы легко выведите сами.

Это решение уже можно брать за некоторое начальное приближение.

 Профиль  
                  
 
 Re: Синтез оптимального управления
Сообщение24.05.2016, 19:07 
Заслуженный участник


10/01/16
2315
Ну да, теоретицки, все хорошо: прицелились - и сразу все дальнейшие действия определили. Беда, однако, в том, что из-за накапливающихся ошибок мы подойдем к финальной точке не совсем так, как надо. И вот тут потребуется дополнительная коррекция - с обратной связью - нашим управлением...
А вааще, может, мы пытаемся изобрести велосипед? Ведь ракеты то уже прилунялись...
Взять их алгоритм, да и адаптировать его....
PS Как то, за рюмкой чая, Болтянский рассказывал, что тогдашние компутеры не справлялись по быстродействию с решением задач типа "прилунение". Так советские инженерА использовали АНАЛОГОВЫЕ устройства. Взять да обучить Вашу нейросеть...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group