🥭MATLAB(Octave)混电动力能耗评估

1. 处理电动和混动汽车能耗的后向和前向算法模型(simulink),以及图形函数、后处理函数等实现。 2. 构建储能元数据信息:电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。 3. 使用电流脉冲或要识别的等效电路模型类型配置阻抗分析。 4. 依据恒定电压阶段相关或不相关的恒定电流阶段等,分析电池的特征量。

🏈指点迷津 | Brief

🍪语言内容分比

🍇MATLAB电路分析

假设我们要绘制以下三个函数:

v1(t)=5cos(2t+45 deg. )v2(t)=2exp(t/2)v3(t)=10exp(t/2)cos(2t+45 deg. )\begin{aligned} & v_1(t)=5 \cos (2 t+45 \text { deg. }) \\ & v_2(t)=2 \exp (-t / 2) \\ & v_3(t)=10 \exp (-t / 2) \cos (2 t+45 \text { deg. }) \end{aligned}

以下是允许我们执行此操作的 MATLAB 命令序列。这不是一组唯一的命令。

 >> t=0:0.1:10;
 >> v1=5*cos(2*t+0.7854);
 >> taxis=0.000000001*t;
 >> plot(t,taxis,'w',t,v1,'r')
 >> grid
 >> hold on
 >> v2=2*exp(-t/2);
 >> plot (t,v2,'g')
 >> v3=10*exp(-t/2).*cos(2*t+0.7854);
 >> plot (t,v3,'b')
 >> title('Example 1 -- Plot of v1(t), v2(t) and v3(t)')
 >> xlabel ('Time in seconds')
 >> ylabel ('Voltage in volts')
 >> text (6,6,'v1(t)')
 >> text (4.25,-1.25,'v2(t)')
 >> text (1,1.75,'v3(t)')

在 MATLAB 中处理复数很容易。MATLAB 使用矩形表示。要输入复数,请在提示符下键入:

 EDU>>z = a +bj or a + bi

要找到 z 的大小和角度,请使用 abs()angle () 函数。

 Mag = abs(z) Angle = angle(z)

angle 函数以弧度表示角度。要转换为度数,您可以使用:

 angle_deg = angle(z)*180/pi

在 MATLAB 中输入:V = (5+9j)*(7+j)/(3-2j)

 Magn_V = abs(V)

要查找复数 z 的实部和虚部,请输入:

 real_z=real(z) imag_z=imag(z)

假设您有以下两个线性复杂方程,其中未知数为 I1 和 I2:

(600+1250j)I1+100j.I2=25100j.I1+(60150j)I2=0\begin{aligned} & (600+1250 j) I 1+100 j . I 2=25 \\ & 100 j . I 1+(60-150 j) \cdot I 2=0 \end{aligned}

这可以写成矩阵形式:A.I = B。要在 MATLAB 中解决这个问题,可以使用矩阵左除运算符:

 I = A\B

或者也可以使用以下命令:I = inv(A)*B

MATLAB代码如下:

 EDU»A=[600+1250j 100j;100j 60-150j];
 EDU»B=[25;0];
 EDU»I=A\B
 I =
 ​
 0.0074 - 0.0156i
 0.0007 - 0.0107i
 ​
 EDU»MAGN=abs(I)
 ​
 MAGN =
 ​
 0.0173
 0.0107
 ​
 EDU»ANGLE=angle(I)*180/pi
 ​
 ANGLE =
 ​
 -64.5230
 -86.3244

使用 abs() 运算符来查找复数的幅度,使用 angle() 运算符来查找角度(以弧度为单位)。为了得到以度为单位的结果,我们将角度乘以 180/pi,如上所示。

求下列形式的多项式的根:

A=amsm+am1sm1+am2sm2+a1s1+a0A=a_m s^m+a_{m-1} s^{m-1}+a_{m-2} s^{m-2}+\ldots a_1 s^1+a_0

定义多项式如下:A = [ am am-1 am-2 ... a1 a0];

例如:A=4s2+12s+1A=4 s^2+12 s+1

 >> A=[4 12 1];
 >> roots(A)
 ​
 ans =
 -2.9142
 -0.0858

A=5s2+3s+2A=5 s^2+3 s+2

 >> A=[5 3 2];
 >> roots(A)
 ​
 ans =
 -0.3000 + 0.5568i
 -0.3000 - 0.5568i

当传递函数指定为两个多项式的比率时,使用 Bode 命令。

H(s)=N(s)D(s)=amsm+am1sm1+a1s1+a0bnsn+bn1snm1+b1s1+b0H(s)=\frac{N(s)}{D(s)}=\frac{a_m s^m+a_{m-1} s^{m-1}+\ldots a_1 s^1+a_0}{b_n s^n+b_{n-1} s^{n m-1}+\ldots b_1 s^1+b_0}

在 MATLAB 中,指定 D 和 N:

 num = [am am-1 ... a1 ao] den = [bn bn-1 ... b1 bo]

要绘制传递函数(幅度和相位),请输入:bode (num, den)

例如:

H(s)=(0.5s+1)/(1E4s2+0.01s+1)H(s)=(0.5 s+1) /\left(1 E-4 s^2+0.01 s+1\right)
 num = [0.5 1];
 den = [1e-4 0.01 1] ;
 ​
 bode (num, den)

当给定极点和零点时绘制传递函数:

H(s)=K(s+s1)(s+s2)(1+as+bs2)/(s+s3)(s+s4)(1+cs+ds2)H(s)=K(s+s 1)(s+s 2)\left(1+as+bs^2\right) /(s+s 3)(s+s 4)\left(1+cs+ds^2\right)

例如:

H(s)=72x(s+2)/s(s+50)(s+250)(s+1000)(s2+2.4s+144)H(s)=72 x(s+2) / s(s+50)(s+250)(s+1000)\left(s^2+2.4 s+144\right)

首先找到分母为 s(s+50)(s+250)(s+1000) 对应的多项式的系数:

 rootsd1=[0; -50; -250; -1000 ];
 d1=poly(rootsd1);

Last updated

Was this helpful?