Этот пример показывает, как использовать Simulink ® Design Optimization™ для отслеживания уставки и оптимизации отклика с неопределенностями в модели объекта управления. Модель объекта управления состоит из передаточной функции объекта управления и включает блок Насыщения и блок пределов. Для просмотра результатов выполните следующие шаги.
Откройте pidtrack_demo моделировать с помощью команды ниже и запустить симуляцию. Эта симуляция создаёт неоптимизированную переходную характеристику и исходные данные для оптимизации.
open_system('pidtrack_demo')

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

Дважды кликните Step Response Specifications блок для просмотра ограничений на реакцию объекта управления, включая время нарастания, время урегулирования и максимальное перерегулирование.
Дважды кликните Reference Tracking Specifications блок для просмотра опорного сигнала, которую контроллер должен отслеживать.
Можно запустить Response Optimizer с помощью меню Приложения на панели инструментов Simulink или sdotool команда в MATLAB. Можно запустить предварительно сконфигурированную задачу оптимизации в Response Optimizer, сначала открывая модель и дважды кликнув по оранжевому блоку в нижней части модели. В Response Optimizer нажмите кнопку Plot Model Response, чтобы симулировать модель и показать, насколько хорошо исходная конструкция удовлетворяет требованиям проекта.

Сплошные линии на графиках указывают на реакцию объекта без учета неопределенностей, а штриховые линии указывают на неопределенные реакции.
Запускаем оптимизацию нажатием кнопки Optimize из Response Optimizer.
Параметрами настройки являются усиления ПИД-регулятора Kp, Ki, и Kd. Параметры объекта a1 и a2 известны только в пределах 10% (неопределенность).
Оптимизация стремится минимизировать разрыв между фактической и идеальной характеристиками для номинальных значений (сплошные линии) и значений min/max (пунктирные линии) a1 и a2.
Графики обновляются, чтобы указать, что требования проекта теперь удовлетворены.


% Close the model bdclose('pidtrack_demo')