gpt4 book ai didi

modelica - 在 Modelica 中计算平均值和标准偏差

转载 作者:行者123 更新时间:2023-12-04 04:47:43 27 4
gpt4 key购买 nike

在 Modelica 中计算连续信号的平均值 (mean) 和标准偏差 (StdDev) 的最佳方法是什么?应计算固定时间段 T 的均值和 StdDev;即,从 t-T 到 t。

最佳答案

下面是该问题的离散解决方案。它在 Modelica 中被编码为一个块,具有 1 个连续输入和 2 个连续输出信号。使用 Modelica 内置函数示例完成离散化:

block MeanStdDevDiscr 
"Determines the mean value and standard deviation of a signal for a fixed time interval T."
extends Modelica.Blocks.Interfaces.BlockIcon;
import SI = Modelica.SIunits;

parameter SI.Time T = 0.1
"Time interval used for calculating mean value and standard deviation";
parameter Integer n = 10 "number of increments in T";

Modelica.Blocks.Interfaces.RealInput u "signal input"
annotation (Placement(transformation(extent={{-140,-20},{-100,20}})));
Modelica.Blocks.Interfaces.RealOutput[2] y
"y[1] = average value; y[2] = standard deviation"
annotation (Placement(transformation(extent={{100,-10},{120,10}})));

protected
parameter SI.Time dt = T/n "Precision of monitor";
Real[n] uArray;

initial equation
uArray = ones(n)*u;

equation
when sample(0, dt) then
uArray[1] = u;
for j in 2:n loop
uArray[j] = pre(uArray[j-1]);
end for;
end when;
y[1] = sum(uArray)/n; // mean value
y[2] = sqrt(sum((uArray .- y[1]).^2)/n); // standard deviation

annotation (Diagram(graphics));
end MeanStdDevDiscr;

关于modelica - 在 Modelica 中计算平均值和标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932103/

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