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

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

Описание модели

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

  • свойственный темп роста населения организма.

  • пропускная способность среды.

Существует также приток других членов организма соседней средой. Модель использует нормированные единицы.

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

open_system('sdoPopulationInflux')

Открытый Parameter Estimation Tool

Перейдите к меню Analysis и выберите Parameter Estimation.... В инструменте Parameter Estimation нажмите Open Session и выберите Open from model workspace, и затем выберите sdoPopulationInflux_spesession загружать сеанс с данными об эксперименте населения, уже загруженными. В панели инструментов нажмите Plot Model Response, чтобы построить ответ модели с начальными значениями параметров модели для R и K. График показывает, что с начальными значениями параметров модели, выход модели не близко к результатам измерений, указывая, что мы должны вычислить лучшие оценки параметров.

Оцените параметры

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

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

Вычислите установившуюся рабочую точку во время оценки параметра

Чтобы улучшить подгонку между данными модели и результатами измерений, модель должна быть установлена в установившийся, когда параметры оцениваются. В панели инструментов нажимают More Options и выбирают Operating Point Options.

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

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

Можно также задать опции для вычисления рабочей точки, при помощи вкладки опций в диалоговом окне. Например, опция Gradient descent with projection часто используется, чтобы найти рабочую точку для систем, которые используют физическое моделирование.

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

Связанные примеры

Изучить, как поместить модели в устойчивое состояние с помощью sdo.optimize команда, см. "Модель набора к Установившемуся Когда Оценка Параметров (Код)".

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

bdclose('sdoPopulationInflux')