В этом примере показано, как установить модель в стационарное состояние в процессе оценки параметров. Перевод модели в стационарное состояние важен во многих областях применения, таких как энергетические системы и динамика самолета. В этом примере используется модель динамики заполнения.
Модель Simulink sdoPopulationInflux моделирует простую экологию, где рост популяции организма ограничен несущей способностью окружающей среды:

- имманентная скорость роста популяции организма.
- грузоподъемность окружающей среды.
Также наблюдается приток других членов организма из соседней среды. Модель использует нормализованные единицы измерения.
Откройте модель.
open_system('sdoPopulationInflux')

На вкладке Приложения нажмите кнопку Оценка параметров в разделе Системы управления, чтобы запустить приложение Оценка параметров. В приложении Оценка параметров щелкните Открыть сеанс и выберите Open from model workspace, а затем выберите sdoPopulationInflux_spesession для загрузки сеанса с уже загруженными данными эксперимента заполнения. На панели инструментов щелкните Печать ответа модели (Plot Model Response), чтобы распечатать ответ модели с начальными значениями параметров модели для R и K. График показывает, что при начальных значениях параметров модели выходные данные модели не близки к измеренным данным, что указывает на необходимость вычисления лучших оценок параметров.

Предварительно сконфигурированный сеанс оценки параметров также определяет, что R и K должны быть оценены, и что их нижние границы равны 0, поскольку имманентные темпы роста и несущая способность окружающей среды не являются отрицательными. На панели инструментов щелкните Добавить график (Add Plot) и добавьте график, чтобы показать траектории параметров во время оценки, и другой график, чтобы показать стоимость оценки. Вкладка Вид (View) используется для размещения графиков в удобном формате. Щелкните Оценка (Estimate), чтобы оценить параметры R и K. Оптимизация проходит через несколько итераций, изменяя значения параметров для улучшения соответствия между откликом модели и данными.

Сравнение данных измеренной совокупности с откликом оптимизированной модели показывает, что они все еще плохо совпадают. В начале реакции модели имеется переходный период, где он заметно отличается от измеренных данных.
Для улучшения соответствия между моделью и данными измерений модель должна быть установлена в стационарное состояние при оценке параметров. На панели инструментов нажмите «Дополнительные параметры» и выберите Operating Point Options.

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

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

Можно также задать параметры для вычисления рабочей точки с помощью вкладки «Параметры» диалогового окна. Например, опция Gradient descent with projection часто используется для поиска рабочей точки для систем, использующих физическое моделирование.
Указав, что вычисляется рабочая точка, щелкните Оценить (Estimate) и снова выполните оценку параметра. В начале реакции модели больше нет переходного процесса, и существует гораздо лучшее соответствие между реакцией модели и измеренными данными, что также отражается более низким значением функции цели/стоимости во второй оптимизации. Все это указывает на то, что мы нашли хороший набор значений параметров.

Чтобы узнать, как перевести модели в устойчивое состояние с помощью sdo.optimize см. раздел Установка модели в установившееся состояние при оценке параметров (код).
Закройте модель.
bdclose('sdoPopulationInflux')