exponenta event banner

Оптимизация конструкции для отслеживания опорного сигнала (GUI)

В этом примере показано, как оптимизировать параметры контроллера для отслеживания опорного сигнала с помощью оптимизатора отклика. Опорный сигнал задается без добавления в модель каких-либо блоков проверки.

Структура модели

Модель sldo_model1 включает в себя следующие блоки:

  • Блок контроллера, контроллер PID, управляет выходом Plant подсистема.

  • Блок Unit Step применяет ввод шага.

    Для оптимизации отклика, генерируемого такими входами, можно также использовать другие типы входов, такие как наклонные.

  • Подсистема установки представляет собой систему второго порядка с задержкой. Он содержит блоки функции передачи и задержки передачи.

Требования к конструкции

Выходной сигнал модели должен отслеживать опорный сигнал y = 1 − exp (0,1 × t), где t - время.

Указать опорный сигнал

  1. Откройте модель Simulink ®.

    sys = 'sldo_model1';
    open_system(sys);

    Дополнительные сведения о модели см. в разделе Структура модели.

  2. Чтобы открыть оптимизатор отклика, в окне модели Simulink на вкладке Приложения в галерее в разделе Системы управления выберите Оптимизатор отклика.

  3. Выберите модельный сигнал для отслеживания опорного сигнала.

    1. В раскрывающемся списке Создать выберите Сигнал, чтобы открыть окно Создать набор сигналов.

    2. Для отображения сигнала в окне щелкните вывод блока Plant в окне Simulink model.

    3. Выберите сигнал и щелкните, чтобы добавить его в набор сигналов.

    4. В поле Signal set (Набор сигналов) введите PlantOutput в качестве выбранного имени сигнала.

    Нажмите кнопку ОК, чтобы создать переменную PlantOutput. Он отображается в области Данные оптимизатора ответа.

  4. Укажите опорный сигнал для выхода модели для отслеживания.

    1. В раскрывающемся списке Создать выберите Отслеживание сигналов, чтобы открыть окно Создать требование.

    2. В поле редактирования «Имя» введите ref_sig.

    3. В поле редактирования вектора времени введите linspace(0,50,200)

    4. В поле редактирования «Амплитуда» введите 1-exp(-0.1*linspace(0,50,200)).

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

    5. Щелкните Обновить данные опорного сигнала (Update reference signal data).

    6. В области Указать сигнал для отслеживания опорного сигнала (Specify Signal to Track Reference Signal) установите флажок, соответствующий сигналу, выбранному на предыдущем шаге, и нажмите кнопку ОК.

      Новый опорный сигналref_sig создается и появляется в области Данные. Окно Оптимизация отклика обновляется для печати опорного сигнала.

Задание конструктивных переменных

При оптимизации отклика модели программа изменяет значения конструктивных переменных в соответствии с требованиями проекта.

На вкладке Оптимизация ответа:

  1. Создайте новый набор конструктивных переменных.

    В раскрывающемся списке «Набор конструктивных переменных» выберите «Создать».

    В окне Создать набор конструктивных переменных (Create Design Variables Set) отображаются параметры модели, которые можно использовать в качестве конструктивных переменных, и их расположение в подсистемах модели.

  2. Добавьте параметры в набор конструктивных переменных.

    Выбрать Kd, Ki, и Kpи нажмите для добавления выбранных параметров.

    В списке конструктивных переменных отображаются следующие параметры:

    • Переменная - имя параметра

    • Значение - текущее значение параметра

    • Минимум и максимум - границы параметров

    • Масштаб - коэффициент масштабирования для параметра

  3. Ограничьте параметры положительными значениями. Для этого введите 0 для минимального значения каждого параметра в соответствующем поле Minimum и нажмите клавишу Enter на клавиатуре.

    Нажмите кнопку ОК. Новая конструктивная переменная DesignVars создается и появляется в области Данные оптимизатора ответа.

Оптимизация реакции модели

  1. Чтобы просмотреть текущий отклик модели, щелкните График (Plot) Отклик модели (Model Response).

    График показывает, что отклик модели не отслеживает опорный сигнал.

  2. Щелкните Оптимизировать (Optimize).

    При каждой итерации решатель оптимизации Gradient descent (fmincon) изменяет параметры контроллера для минимизации ошибки между моделируемым ответом и опорным сигналом. Дополнительные сведения см. в разделе Как алгоритм оптимизации формулирует проблемы минимизации.

    Сообщение Optimization converged в отчете о ходе оптимизации (Optimization Progress Report) указывается, что метод оптимизации нашел решение, которое отслеживает опорный сигнал в пределах допусков и границ параметров. Дополнительные сведения о выводах, отображаемых в отчете о ходе оптимизации, см. в разделе Итерационное отображение.

  3. Убедитесь, что отклик отслеживает опорный сигнал, наблюдая график зависимости амплитуды от времени.

    Оптимизированный отклик точно отслеживает опорный сигнал.

  4. Чтобы просмотреть оптимизированные значения параметров, щелкните DesignVars в области данных оптимизатора ответа. Просмотрите обновленные значения в области «Просмотр переменных».

    Оптимизированные значения конструктивных переменных автоматически обновляются в модели Simulink.

Связанные темы