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

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

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

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

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

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

open_system('sdoThermostat');

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

$$ \frac{d T}{dt} = K(T_e-T)+Q$$

Где:

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

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

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

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

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

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

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

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

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

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

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

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

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

Откройте Response Optimizer

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

load sdoThermostat_sdosession
sdotool(SDOSessionData)

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

  • DesignVars - Спроектируйте набор переменных для 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_on и H_off значения. Это различие должно быть положительно для требования быть удовлетворенным.

Программное обеспечение оценивает пользовательские требования, которые тестируют ограничения только для параметра, такие как 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')