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

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

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

Сплошные линии на графиках указывают реакцию установки без учета неопределенностей, а пунктирные линии указывают на неопределенные реакции.
Мы начинаем оптимизацию, нажав кнопку «Оптимизировать» в оптимизаторе ответа.
Настроенными параметрами являются коэффициенты усиления контроллера PID Kp, Ki, и Kd. Параметры завода a1 и a2 известны только в пределах 10% (неопределенность).
Оптимизация направлена на минимизацию разрыва между фактическими и идеальными откликами для номинальных значений (сплошные линии) и значений min/max (пунктирные линии) a1 и a2.
Графики обновляются, указывая, что проектные требования теперь выполнены.


% Close the model bdclose('pidtrack_demo')