Контроллер платформы Стюарта, настраивающийся

В этом примере показано, как использовать Simulink® Design Optimization™, чтобы оптимизировать контроллер положения параметры платформы Стюарта. Платформа Стюарта моделируется с помощью блоков Simscape™ Multibody™.

Модель включает вертикальный контроллер положения ПИДа, и усиления настраиваются, чтобы ограничить максимальные силы и положение дорожки с минимальным перерегулированием и 0,3 вторыми временами нарастания.

Откройте stewart_demo модель с помощью команды ниже и запуска симуляция. Симуляция производит неоптимизированное вертикальное положение (Z направление) платформы Стюарта и исходных данных для оптимизации.

open_system('stewart_demo')

Дважды кликните блок Scope, чтобы просмотреть неоптимизированное положение, вход шага и сигнал приведения в действие силы диспетчера.

Дважды кликните Plant блокируйтесь, чтобы посмотреть детали Платформы Стюарта. Обратите внимание на то, что эта модель использует Simscape Multibody blockset.

Дважды кликните Desired Response или Max Forces блоки, чтобы просмотреть ограничения на платформу Стюарта. Блок Max Forces задает ограничения на сигнал приведения в действие контроллера.

Можно запустить Response Optimization Tool с помощью меню Analysis в Simulink или sdotool команда в MATLAB. Можно запустить предварительно сконфигурированную задачу оптимизации в ответ Инструмент Оптимизации первым открытием модель и путем двойного клика на оранжевом блоке в нижней части модели. От Response Optimization Tool нажмите кнопку Plot Model Response, чтобы симулировать модель и показать, как хорошо первоначальный проект удовлетворяет конструктивным требованиям.

Существует два графика, представляющие Z Position и Leg Forces из платформы.

Мы запускаем оптимизацию путем нажатия кнопки Optimize от Response Optimization Tool. Графики обновляются, чтобы указать, что конструктивным требованиям теперь удовлетворяют.

Графики теперь обновляются с оптимизированным положением платформы Стюарта и сигнала приведения в действие силы.

% Close the model
bdclose('stewart_demo')