文档GydF4y2Ba

投影GydF4y2Ba

Perturb the solver's solution of a system's states to better satisfy time-invariant solution relationships

required

No

语言GydF4y2Ba

MATLABGydF4y2Ba

句法GydF4y2Ba

投影((s)GydF4y2Ba

参数GydF4y2Ba

sGydF4y2Ba

实例GydF4y2Ba万博1manbetxsimulink.msfcnruntimeblockGydF4y2BaClass representing the Level-2 MATLAB S-Function block.

描述GydF4y2Ba

该方法旨在用于模拟动态系统的S功能,其状态满足时间不变的关系,例如由质量或能源保护或其他物理定律产生的关系。Simu万博1manbetxlinkGydF4y2Ba®GydF4y2Ba引擎在模型求解器为该时间步骤计算S函数状态后的每个时间步中调用此方法。通常,状态的数值解决方案中的轻微误差会导致解决方案无法完全满足解决方案的不变性。万博 尤文图斯您的GydF4y2Ba投影GydF4y2Bamethod can compensate for the errors by perturbing the states so that they more closely approximate solution invariants at the current time step. As a result, the numerical solution adheres more closely to the ideal solution as the simulation progresses, producing a more accurate overall simulation of the system modeled by your S-function.

您的GydF4y2Ba投影GydF4y2Ba方法对系统状态的扰动必须属于嵌入S功能的模型指定的解决方案误差公差。否则,扰动可能使求解器的解决方案无效。取决于你GydF4y2Ba投影GydF4y2Ba确保扰动符合模型指定的误差差的方法。看GydF4y2Ba使用解决方案不变的扰动系统状态GydF4y2Bafor a simple method for perturbing a system's states. The following articles describe more sophisticated perturbation methods that yourmdlprocotionGydF4y2Bamethod can use.

  • C.W. Gear,“在ODE的数值溶液中保持溶液不变性”,GydF4y2Bajournal on Scientific and Statistical Computing,卷。7,第3号,1986年7月。GydF4y2Ba

  • L.F. Shampine,“ odes i的保护法和数值解决方案”,GydF4y2BaComputers and Mathematics with Applications,卷。12B,1986,第1287–1296页。GydF4y2Ba

  • L.F. Shampine,“环保法和ODES II的数值解决方案”,GydF4y2BaComputers and Mathematics with Applications,卷。38,1999,第61-72页。GydF4y2Ba

例子GydF4y2Ba

使用解决方案不变的扰动系统状态GydF4y2Ba

Here is a simple, Taylor-series-based approach to perturbing a system's states. Suppose your S-function models a dynamic system having a solution invariant, GGydF4y2Ba ((GydF4y2Ba XGydF4y2Ba ,,,,GydF4y2Ba tGydF4y2Ba )GydF4y2Ba , IE。,GydF4y2Ba GGydF4y2Ba 是系统状态的连续,可区分的函数,GydF4y2Ba XGydF4y2Ba ,时间,GydF4y2Ba tGydF4y2Ba ,其价值随时间不变。然后GydF4y2Ba

XGydF4y2Ba nGydF4y2Ba ≅GydF4y2Ba XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba +GydF4y2Ba jGydF4y2Ba nGydF4y2Ba tGydF4y2Ba ((GydF4y2Ba jGydF4y2Ba nGydF4y2Ba jGydF4y2Ba nGydF4y2Ba tGydF4y2Ba )GydF4y2Ba -GydF4y2Ba 1GydF4y2Ba rGydF4y2Ba nGydF4y2Ba

在哪里GydF4y2Ba

  • XGydF4y2Ba nGydF4y2Ba 是该系统在求解器当前时间步骤中的理想状态向量GydF4y2Ba

  • XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba is the approximate state vector computed by the solver at the current time step

  • jGydF4y2Ba nGydF4y2Ba 是在当前时间步骤中近似状态向量指定的状态空间中评估的不变函数的雅各布式:GydF4y2Ba

    jGydF4y2Ba nGydF4y2Ba =GydF4y2Ba ∂GydF4y2Ba GGydF4y2Ba ∂GydF4y2Ba XGydF4y2Ba ((GydF4y2Ba XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba ,,,,GydF4y2Ba tGydF4y2Ba nGydF4y2Ba )GydF4y2Ba

  • tGydF4y2Ba nGydF4y2Ba is the time at the current time step

  • rGydF4y2Ba nGydF4y2Ba 是评估在GydF4y2Ba XGydF4y2Ba nGydF4y2Ba 一种ndGydF4y2Ba XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba 一种tthe current time step:

    rGydF4y2Ba nGydF4y2Ba =GydF4y2Ba GGydF4y2Ba ((GydF4y2Ba XGydF4y2Ba nGydF4y2Ba ,,,,GydF4y2Ba tGydF4y2Ba nGydF4y2Ba )GydF4y2Ba -GydF4y2Ba GGydF4y2Ba ((GydF4y2Ba XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba ,,,,GydF4y2Ba tGydF4y2Ba nGydF4y2Ba )GydF4y2Ba

    笔记GydF4y2Ba

    the value of GGydF4y2Ba ((GydF4y2Ba XGydF4y2Ba nGydF4y2Ba ,,,,GydF4y2Ba tGydF4y2Ba nGydF4y2Ba )GydF4y2Ba is the same at each time step and is known by definition.

给定对系统模型的连续,可区分的不变功能,此公式允许您的s函数GydF4y2BamdlprocotionGydF4y2Ba计算扰动的方法GydF4y2Ba

jGydF4y2Ba nGydF4y2Ba tGydF4y2Ba ((GydF4y2Ba jGydF4y2Ba nGydF4y2Ba jGydF4y2Ba nGydF4y2Ba tGydF4y2Ba )GydF4y2Ba -GydF4y2Ba 1GydF4y2Ba rGydF4y2Ba nGydF4y2Ba

求解器的数值解决方案GydF4y2Ba XGydF4y2Ba nGydF4y2Ba *GydF4y2Ba ,这更与理想的解决方案相匹配,GydF4y2Ba XGydF4y2Ba nGydF4y2Ba ,,,,keeping the S-function's solution from drifting from the ideal solution as the simulation progresses.

MATLAB例子GydF4y2Ba

此示例说明了上一节中概述的扰动方法如何在仿真进行时使模型的数值解决方案从理想解决方案中漂移。考虑以下模型,GydF4y2BamdlprocotionEx1:GydF4y2Ba

predprey块引用s功能,GydF4y2Bapredprey_noproj.mGydF4y2Ba,,,,that uses the Lotka-Volterra equations

XGydF4y2Ba -GydF4y2Ba =GydF4y2Ba 一种GydF4y2Ba XGydF4y2Ba ((GydF4y2Ba 1GydF4y2Ba -GydF4y2Ba yGydF4y2Ba )GydF4y2Ba yGydF4y2Ba -GydF4y2Ba =GydF4y2Ba -GydF4y2Ba CGydF4y2Ba yGydF4y2Ba ((GydF4y2Ba 1GydF4y2Ba -GydF4y2Ba XGydF4y2Ba )GydF4y2Ba

模拟捕食者捕食人群动态,其中GydF4y2Ba XGydF4y2Ba ((GydF4y2Ba tGydF4y2Ba )GydF4y2Ba 是掠食者的种群密度和GydF4y2Ba yGydF4y2Ba ((GydF4y2Ba tGydF4y2Ba )GydF4y2Ba 是猎物的种群密度。捕食者 - 捕获ODE的理想解决方案满足时间不变的函数GydF4y2Ba

XGydF4y2Ba -GydF4y2Ba CGydF4y2Ba eGydF4y2Ba CGydF4y2Ba XGydF4y2Ba yGydF4y2Ba -GydF4y2Ba 一种GydF4y2Ba eGydF4y2Ba 一种GydF4y2Ba yGydF4y2Ba =GydF4y2Ba dGydF4y2Ba

在哪里GydF4y2Ba 一种GydF4y2Ba ,,,,GydF4y2Ba CGydF4y2Ba ,,,,一种ndGydF4y2Ba dGydF4y2Ba 是常数。S功能假设GydF4y2Ba一种=1GydF4y2Ba,,,,GydF4y2BaC = 2GydF4y2Ba,,,,一种ndGydF4y2Bad=121.85。GydF4y2Ba

该模型中的不变残留块计算沿系统通过状态空间及其模拟轨迹评估的不变函数之间的残留函数:GydF4y2Ba

rGydF4y2Ba nGydF4y2Ba =GydF4y2Ba dGydF4y2Ba -GydF4y2Ba XGydF4y2Ba nGydF4y2Ba -GydF4y2Ba CGydF4y2Ba eGydF4y2Ba CGydF4y2Ba XGydF4y2Ba nGydF4y2Ba yGydF4y2Ba nGydF4y2Ba -GydF4y2Ba 一种GydF4y2Ba eGydF4y2Ba 一种GydF4y2Ba yGydF4y2Ba nGydF4y2Ba

在哪里GydF4y2Ba XGydF4y2Ba nGydF4y2Ba 一种ndGydF4y2Ba yGydF4y2Ba nGydF4y2Ba 一种re the values computed by the model's solver for the predator and prey population densities, respectively, at the current time step. Ideally, the residual should be zero throughout simulation of the model, but simulating the model reveals that the residual actually strays considerably from zero:

现在考虑以下模型,GydF4y2BamdlprocotionEx2:GydF4y2Ba

该模型与以前的模型相同,除了其s函数,GydF4y2Bapredprey.m,,,,includes amdlprocotionGydF4y2Ba使用概述的扰动方法的方法GydF4y2Ba使用解决方案不变的扰动系统状态GydF4y2Ba为了弥补数值漂移。因此,thenumerical solution more closely tracks the ideal solution as the simulation progresses as demonstrated by the residual signal, which remains near or at zero throughout the simulation:

也可以看看GydF4y2Ba

万博1manbetxsimulink.msfcnruntimeblockGydF4y2Ba,,,,GydF4y2BamdlprocotionGydF4y2Ba,,,,GydF4y2Ba

Introduced in R2012b

Was this topic helpful?