用matlab绘制电能图

用matlab绘制电能图,matlab,Matlab,我试图用matlab绘制一个电路的能量(W)。方程式如下: 绘制电压、电流和功率没有那么难(我想我写的代码是正确的,如果你认为它错了,请告诉我!): 现在的问题是,我无法找到一种在matlab中绘制能量图的方法。我认为Δt(Delta t)应该用diff(t)函数来定义,总能量应该是这样的: 平均功率Pavr通过其中T是周期来计算 所以问题是,我如何绘制总瞬时能量作为相位差的函数,在这个范围内,我认为有必要为每个相位值计算一个for loop 我还想画出同一时期的平均功率 谢谢。能量

我试图用matlab绘制一个电路的能量(W)。方程式如下:

绘制电压、电流和功率没有那么难(我想我写的代码是正确的,如果你认为它错了,请告诉我!):

现在的问题是,我无法找到一种在matlab中绘制能量图的方法。我认为
Δt(Delta t)
应该用
diff(t)
函数来定义,总能量应该是这样的:

平均功率
Pavr
通过其中T是周期来计算

所以问题是,我如何绘制总瞬时能量作为相位差的函数,在这个范围内,我认为有必要为每个相位值计算一个
for loop

我还想画出同一时期的平均功率


谢谢。

能量是通过对一定时间段内的功率进行积分来计算的。当你在这里处理离散值时,你必须用一个和来近似积分。在你的例子中,瞬时能量作为时间的函数是

Winst=(t2-t1)/N*cumsum(Psrc)

cumsum
给出向量的所有元素的累计和
Psrc
(t2-t1)/N
是时间间隔

计算能量作为φ的函数,你必须确定你想考虑的时间段。首先计算给定φ的能量,然后在固定时间间隔t1…t2上再次积分:

phi = -pi/2:phi_step:0
Wphi = zeros(1, length(phi));
for k = 1:length(phi)
  Vsrc = Vmax * sin(omega * t);
  Isrc = Imax * sin((omega * t) + phi(k));
  Psrc = Vsrc .* Isrc;
  Wphi(k) = (t2 - t1) / N * sum(Psrc);
end

plot( phi, Wphi);
平均功率只是
Psrc
的平均值:


Pavg=sum(Psrc)/length(Psrc)

瞬时能量是什么意思?你认为能量W是t或φ0的函数吗?瞬时能量的意思是,在t时刻,我指的是一个连续体图。对于W,我想要它的图在-pi/2和0之间,所以我猜它是φ0的函数。谢谢。@Sean87很抱歉我的答案中的编辑混乱,现在应该是正确的。非常感谢。我仍然不知道如何定义
phi
phi0
。如果它像
phi=0
phi0=-pi/2
?@Sean87我将
phi
解释为一个变量,它可以有
-pi/2
和0之间的任何值,并且是电压和电流之间的相位差。phi0是这个值范围之外的一个特殊值。cumsum显示了一个阶跃图,现在Wphi只在绘图窗口中显示一个点…我猜t把它搞砸了(在欧米茄方程中)。你有一张有编辑代码的图表吗?
phi = -pi/2:phi_step:0
Wphi = zeros(1, length(phi));
for k = 1:length(phi)
  Vsrc = Vmax * sin(omega * t);
  Isrc = Imax * sin((omega * t) + phi(k));
  Psrc = Vsrc .* Isrc;
  Wphi(k) = (t2 - t1) / N * sum(Psrc);
end

plot( phi, Wphi);