Возмущение решения решателем состояний системы для лучшего удовлетворения отношений инвариантного по времени решения
Нет
C, C++
#define MDL_PROJECTION
void mdlProjection(SimStruct *S)
SSimStruct представляет S-функциональный блок.
Этот способ предназначен для использования с S-функциями, которые моделируют динамические системы, состояния которых удовлетворяют временным инвариантным соотношениям, таким как те, которые являются результатом сохранения массы или энергии или других физических законов. Модуль Simulink ® вызывает этот метод на каждом временном шаге после того, как решатель модели вычислит состояния S-функции для этого временного шага. Обычно небольшие ошибки в числовом решении состояний приводят к тому, что решения не удовлетворяют инвариантам решения в точности. ВашmdlProjection способ может компенсировать ошибки путем возмущения состояний так, чтобы они более близко приближали инварианты решения на текущем временном шаге. В результате численное решение по мере продвижения моделирования более тесно согласуется с идеальным решением, обеспечивая более точное общее моделирование системы, смоделированной с помощью S-функции.
Ваш mdlProjection возмущения системного состояния метода должны находиться в пределах допусков ошибок решения, заданных моделью, в которую встроена S-функция. В противном случае возмущения могут сделать решение решателя недействительным. Это зависит от вашего mdlProjection для обеспечения соответствия возмущений допускам ошибок, заданным моделью. Простой метод возмущения состояний системы см. в разделе Возмущение состояний системы с помощью инварианта решения. В следующих статьях описаны более сложные методы возмущения, которые mdlProjection способ может быть использован.
C.W. Gear, «Поддержание инвариантов решения в числовом решении ОДУ», Journal on Scientific and Statistical Computing, Vol. 7, No. 3, July 1986.
Л. Ф. Шампин, «Законы сохранения и числовое решение ОДУ I», Компьютеры и математика с приложениями, т. 12B, 1986, стр. 1287-1296.
Л. Ф. Шампин, «Законы сохранения и числовое решение ОДУ II», Computers and Mathematics with Applications, Vol. 38, 1999, pp. 61-72.
Вот простой, основанный на серии Тейлора подход к возмущению состояний системы. Предположим, что ваша S-функция моделирует динамическую систему, имеющую инвариант решения, t), т.е. g является непрерывной, дифференцируемой функцией состояний системы, X и времениt, значение которой является постоянным со временем. Тогда
1Rn
где
- вектор идеального состояния системы на текущем шаге времени решателя;
* - приближенный вектор состояния, вычисленный решателем на текущем шаге времени
- якобиан инвариантной функции, оцениваемый в точке пространства состояний, заданной вектором приближенного состояния на текущем шаге времени:
tn)
- время на текущем шаге времени
представляет собой остаток (разность) между инвариантной функцией, оцениваемой при и * на текущем временном шаге:
Xn *, tn)
Примечание
Величина tn) одинакова на каждом временном этапе и известна по определению.
Учитывая непрерывную, дифференцируемую инвариантную функцию для системы, которую моделирует ваша S-функция, эта формула позволяет вашей S-функции mdlProjection способ вычисления возмущения
1Rn
числового решения решателя Xn *, которое более точно соответствует идеальному решению Xn, удерживая решение S-функции от дрейфа от идеального решения по мере продвижения моделирования.
Этот пример иллюстрирует, как метод возмущений, описанный в предыдущем разделе, может удерживать численное решение модели от дрейфа от идеального решения в процессе моделирования. Рассмотрим следующие model,mdlProjectionEx1:

Блок PredPrey ссылается на S-функцию, которая использует уравнения Лотка-Вольтерра:
(1 − x)
для моделирования динамики популяции хищника-добычи, где ) - плотность популяции хищников, а t) - плотность популяции добычи. Идеальное решение ODE хищника-добычи удовлетворяет инвариантной во времени функции
aeay = d
где , и - константы. S-функция предполагает a = 1, c = 2, и d = 121.85.
Блок Инвариантный остаток (Invariant Resident) в этой модели вычисляет остаток между инвариантной функцией, оцениваемой вдоль идеальной траектории системы через пространство состояний, и ее моделируемой траекторией:
− aeayn
где xnand ynare значения, вычисленные решателем модели для плотности популяции хищника и добычи, соответственно, на текущем шаге времени. В идеале остаток должен быть равен нулю на протяжении всего моделирования модели, но моделирование модели показывает, что остаток на самом деле значительно отклоняется от нуля:

Рассмотрим следующую модель, mdlProjectionEx2:

Эта модель аналогична предыдущей, за исключением ее S-функции, predprey.m, включает mdlProjection метод, который использует подход возмущений, описанный в разделе Возмущение состояний системы с использованием инварианта решения для компенсации численного дрейфа. В результате численное решение более точно отслеживает идеальное решение по мере продвижения моделирования, как показано остаточным сигналом, который остается близким или равным нулю на протяжении всего моделирования:
