Я решаю задачу оптимизации с помощью 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 Если бы кто-нибудь мог мне помочь, это было бы здорово. Спасибо