gpt4 book ai didi

precision - 积分延迟的脉冲信号的数值问题 (fixedDelay)

转载 作者:行者123 更新时间:2023-12-03 22:27:25 26 4
gpt4 key购买 nike

我注意到在 Modelica(使用 Wolfram System Modeler 4.3)中集成延迟固定时间量的脉冲输入的数值问题:

Model Diagram

model PulseTest "Test FixedDelay with Pulse Input";
Modelica.Blocks.Sources.Pulse pulse(
startTime = 1,
width = 100,
period = 1/32,
amplitude = 32,
nperiod = 1
);
Modelica.Blocks.Nonlinear.FixedDelay fixedDelay( delayTime = 5 );
Modelica.Blocks.Continuous.Integrator x; // integrator for the undelayed pulse
Modelica.Blocks.Continuous.Integrator y; // integrator for the delayed pulse
equation
connect( pulse.y, fixedDelay.u );
connect( fixedDelay.y, y.u );
connect( pulse.y, x.u );
end PulseTest;

对周期 = 1/a、幅度 = a 和宽度 = 100% 的脉冲进行积分应为 1.0。但是从图中可以看出,这不是我得到的延迟脉冲:

Plot of X and Y over time

只有未延迟的信号才能使用 DASSL 给出正确的值。数值积分误差已经出现在周期 = 1/a = 1/8 并且(自然地)随着 a 的增长而增长。

什么是最好的补救措施?

最佳答案

问题是,正如 Markus A 所写的那样,延迟不会将不连续性从输入传播到输出,因此模拟不会以与正常阶跃变化相同的方式处理延迟阶跃变化,即事件检测和事件处理。

从工具的角度平滑插值,延迟信号不仅是最简单的解决方案 - 如果延迟信号被反馈,还可以避免一系列事件。

使用任何可变步长求解器时,我看不到任何简单可靠的解决方法。

关于precision - 积分延迟的脉冲信号的数值问题 (fixedDelay),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com