exponenta event banner

Пропустить моделирование модели на основе нарушения ограничений параметров (GUI)

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

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

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

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

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

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 часа.

  • В течение 24 часа обогреватель не должен включаться более 12 раз.

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

Открыть оптимизатор ответов

Откройте предварительно настроенный сеанс оптимизатора ответов с помощью команд

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 требование еще не определено. Используйте настраиваемое требование, чтобы указать это ограничение и настроить требование на ошибку, если оно не удовлетворяется.

В раскрывающемся списке Создать выберите Пользовательское требование. Откроется диалоговое окно Создать требование (Create Requirement).

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

  • Имя- SwitchConstraint.

  • Тип - Выбрать Constrain the function output to be >= 0 из списка Тип (Type).

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

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

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

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

  • Если ограничение нарушено, а флажок Ошибка, если ограничение нарушено (Error if constraint is risted) установлен, программа не моделирует модель для оценки остальных требований. Вместо этого решатель назначает функцию затрат a NaN значение для этой итерации, вычисляет условия завершения и продолжает.

  • Если ограничение нарушено, а флажок Ошибка, если ограничение нарушено (Error if constraint is risted) снят, решатель попытается смоделировать модель для оценки остальных требований. Моделирование модели может привести к жесткой ошибке; например, моделирование модели термостата при SwitchConstraint нарушено приведет к ошибке. В этом случае решатель назначает функцию затрат a NaN значение для этой итерации, вычисляет условия завершения и продолжает.

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

Оптимизация конструкции

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

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

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

Просмотр отклика оптимизированной модели

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

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

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

bdclose('sdoThermostat')