Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Modelica 变量作为信号而不是函数的时间导数_Modelica_Derivative_Dymola - Fatal编程技术网

Modelica 变量作为信号而不是函数的时间导数

Modelica 变量作为信号而不是函数的时间导数,modelica,derivative,dymola,Modelica,Derivative,Dymola,在Modelica中,我有一个变量x,它依赖于(a,b,c)。对于给定的模拟时间,其绘图(x,time)看起来平滑且连续。我想要得到这条曲线的斜率,而不必显式地微分der(x),因为我得到了关于a,b或c的偏导数的误差。这可能吗?换句话说,我想要最终输出的斜率,而不必区分它背后的内容。您不能在Modelica本身中执行类似操作,因为您无法访问积分器、以前的时间或类似内容。通过使用采样,可以在Modelica代码中获得近似值,但这会略微改变模拟结果,并可能成为性能瓶颈: M型 实时信号=时间; 实

在Modelica中,我有一个变量x,它依赖于(a,b,c)。对于给定的模拟时间,其绘图(x,time)看起来平滑且连续。我想要得到这条曲线的斜率,而不必显式地微分der(x),因为我得到了关于a,b或c的偏导数的误差。这可能吗?换句话说,我想要最终输出的斜率,而不必区分它背后的内容。

您不能在Modelica本身中执行类似操作,因为您无法访问积分器、以前的时间或类似内容。通过使用采样,可以在Modelica代码中获得近似值,但这会略微改变模拟结果,并可能成为性能瓶颈:

M型
实时信号=时间;
实际近似值(起始值=0);
离散实x(起始值=0);
离散实数t(起始=0);
方程式
当样本为(0.1,0.1)时
x=信号;
t=时间;
近似值=(x-pre(x))/(t-pre(t));
结束时;
M端;

简单地使用后处理更容易。在倍频程、matlab或类似软件中加载结果文件,并绘制近似导数:
plot(time(2:length(time)),diff(y)。/diff(time))

您无法在Modelica本身中执行类似操作,因为您无法访问积分器、上一次或类似操作。通过使用采样,可以在Modelica代码中获得近似值,但这会略微改变模拟结果,并可能成为性能瓶颈:

M型
实时信号=时间;
实际近似值(起始值=0);
离散实x(起始值=0);
离散实数t(起始=0);
方程式
当样本为(0.1,0.1)时
x=信号;
t=时间;
近似值=(x-pre(x))/(t-pre(t));
结束时;
M端;

简单地使用后处理更容易。在倍频程、matlab或类似软件中加载结果文件,并绘制近似导数:
绘图(时间(2:长度(时间)),差值(y)。/diff(时间))

Modelica.Blocks.Continuous.Derivative x_点(开始=1)这提供了导数的近似值。我将x作为输入,并将x_点.y作为导数,没有问题。

Modelica.Blocks.Continuous.derivative x_点(start=1)这提供了导数的近似值。我把X作为输入,得到Xydot.y作为导数,没有问题。

考虑添加一些断线,并使用编辑器的<代码>代码< /COD>格式化选项使其更可读。考虑添加一些断线,并使用编辑器的<代码>代码< /COD>格式选项,使其更可读。谢谢您的帮助。回答,实际上我需要实时的斜率值。我使用了
Modelica.Blocks.Continuous.Derivative x_点(start=1)。我以x作为输入,以
x_dot.y
作为导数,没有问题。谢谢你的回答,实际上我需要实时的斜率值。我使用了
Modelica.Blocks.Continuous.Derivative x_点(start=1)。我给x作为输入,得到
x_dot.y
作为导数,没有问题。