Проблема с нелинейным ограничением - состояние тета-насыщения и не знаю, как применить решение, препятствующее запуску - PullRequest
1 голос
/ 07 мая 2020

Я решаю задачу оптимизации с помощью fmincon. Я оптимизирую заданную траекторию, которую делает дрон. Дрон управляется контроллером MP C (реализован с fmincon).

Итак, я сделал график траектории, и все прошло нормально: https://imgur.com/a/4YJm8AL (Здесь вы можете видеть и траекторию, и состояния, и управление).

Дело в том, что когда я добавляю ограничение на угол, который делает дрон, то есть | theta | <20º (см. дискретизацию.m), траектория становится очень соблазнительно, и я получил это сообщение от fmincon: Solver преждевременно остановился. fmincon остановился, потому что он превысил предел оценки функции, options.MaxFunctionEvaluations = 30000 (выбранное значение). </p>

И это мой результат: https://imgur.com/a/2af31L8 Я думаю, что есть выход из строя контроллера, представленный насыщенность (т.е. мои пределы на θ). Я не думаю, что это проблема MATLAB / fmincon, это проблема архитектуры управления. Возможно, мне стоит попробовать реализовать решение для защиты от заводских настроек, но я не знаю, как это сделать.

Это мой код: https://github.com/preguica00/mpc_drone_forces Если бы кто-нибудь мог мне помочь, это было бы здорово. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...