Я отметил численные проблемы, связанные с интегрированием импульсного входа, который задерживается на фиксированное время в Modelica (с помощью Wolfram System Modeler 4.3):
![Model Diagram](https://i.stack.imgur.com/wUSYS.png)
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.Но, как видно из графика, это не то, что я получаю для задержанного импульса:
Только сигнал без задержки дает правильное значение, используяDASSL.Ошибка численного интегрирования появится уже для period = 1 / a = 1/8 и (естественно) будет расти по мере роста a .
Какое лучшее лекарство?