Пропустите симуляцию модели на основе ограничительного нарушения параметра (графический интерфейс пользователя)

Этот пример показывает, как оптимизировать проект и задать ограничения только для параметра, которые препятствуют тому, чтобы модель была оценена на недопустимом пробеле решения.

Во время оптимизации решатель может попробовать набор переменной проекта, который приводит к ошибке симуляции модели, которая может быть в вычислительном отношении дорогой. Если можно задать ограничение только для параметра, которое идентифицирует такой набор переменной проекта, то решатель может использовать ограничение, чтобы пропустить такие наборы. Другими словами, можно сконфигурировать оптимизацию, чтобы быть более эффективными путем запрещения наборов переменной проекта, которые приводят к ошибкам симуляции.

В этом примере вы оптимизируете настройки термостата, чтобы минимизировать температурные отклонения заданного значения при удовлетворении некоторых ограничений. Одно из ограничений применяется к параметрам модели, которые задают переключатель термостата на/выключать точках. Если выключать точка больше, чем переключатель - на точке, оценивая модель приводит к ошибке симуляции.

Модель термостата

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

open_system('sdoThermostat');

Модель описывает простой нагреватель & термостат, которые регулируют температуру комнаты. Комната подвергается внешним температурным колебаниям. Комнатная температура вычисляется с помощью уравнения теплового потока первого порядка:

Где:

  • комнатная температура (C).

  • внешняя температура (C).

  • тепло предоставляется нагревателем (W).

  • комната тепловая способность (J/C).

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

Работа нагревателя отображена в осциллографе Heater use. Верхняя ось является обеспеченным теплом, и более низкая ось показывает времена, когда нагреватель включается.

Комнатная температура отображена в осциллографе Temperature.

Проблема проектирования термостата

Вы настраиваете поворот термостата - на и выключаете температурные пороги, и также степень нагревателя. Блок Thermostat switch задает поворот - на, и выключите пороги с помощью переменных H_on и H_off. Блок Heater задает степень нагревателя с помощью переменной Hgain.

Конструктивные требования:

  • Минимизируйте различие между комнатной температурой и температурным заданным значением за 24-часовой период.

  • Нагреватель не должен включать больше чем 12 раз в 24-часовой период.

  • Поворот термостата - на температуре должен быть больше, чем термостат выключает температуру. Если это ограничение нарушено, модель недопустима и не может быть моделирована или оценена.

Откройте Response Optimization Tool

Откройте предварительно сконфигурированный сеанс инструмента Response Optimization с помощью команд

load sdoThermostat_sdosession
sdotool(SDOSessionData)

Предварительно сконфигурированный сеанс задает следующие переменные:

  • Набор переменных DesignVars - Design для H_on, H_off и параметров модели Hgain.

  • Minimize_T_error - Требование, чтобы минимизировать температурное отклонение от заданного значения.

  • LimitH_on - Требование, чтобы ограничить число раз термостат включено.

  • H_on_sig и T_error - Регистрируемые сигналы. H_on_sig представляет, когда нагреватель работает. T_error является различием между комнатной температурой и заданным значением.

Задайте ограничение параметра

H_on> требование H_off еще не задан. Используйте пользовательское требование, чтобы задать это ограничение и сконфигурировать требование к ошибке, если это не удовлетворено.

В Новом выпадающем списке выберите Custom Requirement. Создать диалоговое окно Требования открывается.

В этом диалоговом окне задайте следующее:

  • Имя - SwitchConstraint.

  • Введите - Выбирают Constrain the function output to be >= 0 из Списка типов.

  • Функция - @sdoThermostat_SwitchingConstraint.

  • Ошибка, если ограничение нарушено - Устанавливает этот флажок.

Программное обеспечение вызывает функцию sdoThermostat_SwitchingConstraint в каждой итерации оптимизации со структурой, содержащей все переменные проекта. Вывод функции sdoThermostat_SwitchingConstraint является различием между значениями H_off и H_on. Это различие должно быть положительно для требования быть удовлетворенным.

Программное обеспечение оценивает пользовательские требования, которые тестируют ограничения только для параметра, такие как SwitchConstraint, прежде, чем моделировать модель и оценить остающиеся требования.

  • Если ограничение нарушено, в то время как Ошибка, если ограничение является нарушенным флажком, выбрана, программное обеспечение не моделирует модель, чтобы оценить остающиеся требования. Вместо этого решатель присваивает функцию стоимости значение NaN для этой итерации, оценивает останавливающиеся условия и продолжается.

  • Если ограничение будет нарушено, в то время как Ошибка, если ограничение является нарушенным флажком, очищена, решатель попытается моделировать модель, чтобы оценить остающиеся требования. Симуляция модели может привести к серьезной ошибке; например, симуляция модели термостата, когда SwitchConstraint будет нарушен, приведет к ошибке. В этом случае решатель присваивает функцию стоимости значение NaN для этой итерации, оценивает останавливающиеся условия и продолжается.

Чтобы исследовать ограничительную функцию, введите edit sdoThermostat_SwitchingConstraint. Требование, чтобы H_on> H_off был реализован как H_on - H_off> 0

Оптимизируйте проект

Нажмите Optimize.

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

Во время этой оптимизации H_on и значения H_off никогда не приближаются к H_on> ограничительный контур H_off. Так, никогда нет опасности нарушить ограничение. Однако изменение алгоритма оптимизации может произвести различное поведение. Например, изменяя алгоритм оптимизации от того, используемого здесь, 'Внутренняя точка', к 'Активному Набору' приводит к H_on и значениям H_off, которые являются на ограничительном контуре. Это нарушение инициировало требование SwitchConstraint и предотвращает симуляцию модели для соответствующих итераций.

Просмотрите оптимизированный образцовый ответ

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

Оптимизированная комнатная температура отображена в осциллографе Temperature.

Закройте модель

bdclose('sdoThermostat')