Встревожьте решение решателя состояний системы лучше удовлетворить независимые от времени отношения решения
Нет
C, C++
#define MDL_PROJECTION
void mdlProjection(SimStruct *S)
S
SimStruct, представляющий Блок s-function.
Этот метод предназначается для использования с S-функциями, что образцовые динамические системы, состояния которых удовлетворяют независимые от времени отношения, такие как те, которые следуют из массы или энергосбережения или других физических законов. Механизм Simulink® вызывает этот метод на каждом временном шаге после того, как решатель модели вычислил состояния S-функции для того временного шага. Как правило, небольшие ошибки в числовом решении состояний вызывают решения не удаться удовлетворить инварианты решения точно. Ваш метод mdlProjection
может компенсировать ошибки путем беспокойства состояний так, чтобы они более тесно инварианты приближенного решения на шаге текущего времени. В результате числовое решение придерживается более тесно идеального решения, в то время как моделирование прогрессирует, производя более точное полное моделирование системы, смоделированной вашей S-функцией.
Ваши возмущения метода mdlProjection
системных состояний должны находиться в пределах ошибочных допусков решения, заданных моделью, в которую встраивается S-функция. В противном случае возмущения могут делать недействительным решение решателя. Это до вашего метода mdlProjection
, чтобы гарантировать, чтобы возмущения соответствовали ошибочным допускам, заданным моделью. Смотрите Беспокойство состояний Системы Используя Инвариант Решения для простого метода для беспокойства состояний системы. Следующие статьи описывают более сложные методы возмущения, которые может использовать ваш метод mdlProjection
.
C. W. Механизм, “Поддерживая инварианты решения в числовом решении ОДУ”, журнал на научном и статистическом вычислении, издании 7, № 3, июль 1986.
L. F. Шемпин, “Законы сохранения и Числовое Решение ОДУ I”, Компьютеры и Математика с Приложениями, Изданием 12B, 1986, стр 1287–1296.
L. F. Шемпин, “Законы сохранения и Числовое Решение ОДУ II”, Компьютеры и Математика с Приложениями, Изданием 38, 1999, стр 61–72.
Вот простой, Основанный на ряде Тейлора подход к беспокойству состояний системы. Предположим свои S-модели-функции динамическая система, имеющая инвариант решения, , i. e., является непрерывной, дифференцируемой функцией системных состояний, , и время, , чье значение является постоянным со временем. Затем
где
является идеальным вектором состояния системы на шаге текущего времени решателя
является аппроксимированным вектором состояния, вычисленным решателем на шаге текущего времени
является якобианом инвариантной функции, выполненной в точке в пространстве состояний, заданном аппроксимированным вектором состояния на шаге текущего времени:
является временем на шаге текущего времени
является невязкой (различие) между инвариантной функцией, выполненной в и на шаге текущего времени:
Значение является тем же самым на каждом временном шаге и известно по определению.
Учитывая непрерывную, дифференцируемую инвариантную функцию для системы, что ваши S-модели-функции, эта формула позволяет методу mdlProjection
вашей S-функции вычислять возмущение
из числового решения решателя, , который более тесно совпадает с идеальным решением, , мешая решению S-функции дрейфовать от идеального решения, когда прогрессирует моделирование.
Этот пример иллюстрирует, как метод возмущения, обрисованный в общих чертах в предыдущем разделе, может помешать числовому решению модели дрейфовать от идеального решения, в то время как моделирование прогрессирует. Рассмотрите следующую модель, mdlProjectionEx1:
Блок PredPrey ссылается на S-функцию, predprey_noproj.m
, который использует уравнения Лотки - Вольтерры
к образцовой демографической динамике добычи хищника, где является плотностью населения хищников и является плотностью населения добычи. Идеальное решение ОДУ добычи хищника удовлетворяет независимую от времени функцию
где , , и являются константами. S-функция принимает a = 1
, c = 2
и d = 121.85
.
Блок Invariant Residual в этой модели вычисляет невязку между инвариантной функцией, выполненной вдоль идеальной траектории системы через пространство состояний и его моделируемой траекторией:
где xnand ynare значения, вычисленные решателем модели для хищника и плотности населения добычи, соответственно, на шаге текущего времени. Идеально, невязка должна быть нулем в течение моделирования модели, но моделирование модели показывает, что невязка на самом деле значительно отклоняется от нуля:
Теперь рассмотрите следующую модель, mdlProjectionEx2:
Эта модель совпадает с предыдущей моделью, за исключением того, что ее S-функция, predprey.m
, включает метод mdlProjection
, который использует подход возмущения, обрисованный в общих чертах в Беспокойстве состояний Системы Используя Инвариант Решения, чтобы компенсировать числовой дрейф. В результате числовое решение более тесно отслеживает идеальное решение, в то время как моделирование прогрессирует, как продемонстрировано остаточным сигналом, который остается рядом или в нуле в течение моделирования: