Этот пример показывает, как задать модель в установившемся состоянии в процессе оценки параметра. Установка модели в статическое состояние важна во многих приложениях, таких как степени и динамика самолета. Этот пример использует модель динамики населения.
Модель Simulink sdoPopulationInflux
моделирует простую экологию, где рост населения организма ограничивается пропускной способностью окружения:
- неотъемлемая скорость роста населения организма.
- грузоподъемность окружения.
Также происходит приток других представителей организма из соседнего окружения. В модели используются нормированные модули.
Откройте модель.
open_system('sdoPopulationInflux')
На вкладке Apps нажмите Parameter Estimator в разделе Control Systems, чтобы запустить приложение Parameter Estimator в приложении Parameter Estimator, нажмите Открытие сессии и выберите Open from model workspace
, а затем выберите sdoPopulationInflux_spesession
чтобы загрузить сеанс с уже загруженными данными эксперимента с населением. На панели инструментов нажмите Plot Model Response, чтобы построить график отклика модели с начальными значениями параметров модели для R
и K
. График показывает, что с начальными значениями параметров модели, выход модели не близок к измеренным данным, что указывает на то, что нам нужно вычислить лучшие оценки параметров.
Предварительно сконфигурированный сеанс оценки параметра также задает, что R
и K
должны быть оценены и что их нижние границы равны 0, поскольку неотъемлемая скорость роста и пропускная способность окружения не являются отрицательными. На панели инструментов нажмите Add Plot и добавьте график, чтобы показать траектории параметров во время оценки, и другой график, чтобы показать стоимость оценки. Вкладка View используется для размещения графиков в удобном формате. Нажмите Estimate, чтобы оценить параметры R
и K
. Оптимизация проходит через несколько итераций, изменяя значения параметров, чтобы улучшить подгонку между ответом модели и данными.
Сравнение данных измеренного населения с оптимизированной характеристикой модели показывает, что они все еще плохо совпадают. В начале отклика модели происходит переходный процесс, где он заметно отличается от измеренных данных.
Чтобы улучшить подгонку между моделью и измеренными данными, модель должна быть установлена в установившемся состоянии, когда параметры оценены. На панели инструментов нажмите «Дополнительные опции» и выберите Operating Point Options
.
Это показывает диалоговое окно, в котором можно задать, как должны вычисляться установившиеся рабочие точки во время оценки параметра. В этой модели существует одно состояние, а именно начальное условие интегратора. Используйте диалоговое окно рабочей точки, чтобы указать, что это состояние должно рассматриваться как неизвестное, и оно должно быть установлено в устойчивое состояние. Во время оценки параметра расчет рабочей точки будет изменять это состояние, чтобы установить его в установившемся состоянии.
Вход в модель известен из экспериментальных данных по притоку населения. Используйте диалоговое окно рабочей точки, чтобы указать, что этот вход известен. Этот вход не будет изменяться рабочей точкой расчета во время оценки параметра.
Можно также задать опции для вычисления рабочей точки, используя вкладку options в диалоговом окне. Например, опция Gradient descent with projection
часто используется для нахождения рабочей точки для систем, которые используют физическое моделирование.
Указав, что рабочая точка должна быть вычислена, нажмите Estimate и выполните оценку параметра снова. В начале отклика модели больше нет переходного процесса, и существует намного лучшее соответствие между откликом модели и измеренными данными, что также отражается более низким значением функции цель/стоимость во второй оптимизации. Все это указывает на то, что мы нашли хороший набор значений параметров.
Чтобы узнать, как поставить модели в устойчивое состояние, используя sdo.optimize
команда, см. Установка модели в статическое состояние при оценке параметров (код).
Закройте модель.
bdclose('sdoPopulationInflux')