🎯要点
- 处理电动和混动汽车能耗的后向和前向算法模型(simulink),以及图形函数、后处理函数等实现。
- 构建储能元数据信息:电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。
- 使用电流脉冲或要识别的等效电路模型类型配置阻抗分析。
- 依据恒定电压阶段相关或不相关的恒定电流阶段等,分析电池的特征量。
🍪语言内容分比
🍇MATLAB电路分析
假设我们要绘制以下三个函数:
v 1 ( t ) = 5 cos ( 2 t + 45 deg. ) v 2 ( t ) = 2 exp ( − t / 2 ) v 3 ( t ) = 10 exp ( − t / 2 ) cos ( 2 t + 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} v1(t)=5cos(2t+45 deg. )v2(t)=2exp(−t/2)v3(t)=10exp(−t/2)cos(2t+45 deg. )
以下是允许我们执行此操作的 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 + 1250 j ) I 1 + 100 j . I 2 = 25 100 j . I 1 + ( 60 − 150 j ) ⋅ I 2 = 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} (600+1250j)I1+100j.I2=25100j.I1+(60−150j)⋅I2=0
这可以写成矩阵形式: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.0107iEDU»MAGN=abs(I)MAGN =0.0173
0.0107EDU»ANGLE=angle(I)*180/piANGLE =-64.5230
-86.3244
使用 abs() 运算符来查找复数的幅度,使用 angle() 运算符来查找角度(以弧度为单位)。为了得到以度为单位的结果,我们将角度乘以 180/pi,如上所示。
求下列形式的多项式的根:
A = a m s m + a m − 1 s m − 1 + a m − 2 s m − 2 + … a 1 s 1 + a 0 A=a_m s^m+a_{m-1} s^{m-1}+a_{m-2} s^{m-2}+\ldots a_1 s^1+a_0 A=amsm+am−1sm−1+am−2sm−2+…a1s1+a0
定义多项式如下:A = [ am am-1 am-2 ... a1 a0]
;
例如: A = 4 s 2 + 12 s + 1 A=4 s^2+12 s+1 A=4s2+12s+1
>> A=[4 12 1];
>> roots(A)ans =
-2.9142
-0.0858
A = 5 s 2 + 3 s + 2 A=5 s^2+3 s+2 A=5s2+3s+2
>> A=[5 3 2];
>> roots(A)ans =
-0.3000 + 0.5568i
-0.3000 - 0.5568i
当传递函数指定为两个多项式的比率时,使用 Bode 命令。
H ( s ) = N ( s ) D ( s ) = a m s m + a m − 1 s m − 1 + … a 1 s 1 + a 0 b n s n + b n − 1 s n m − 1 + … b 1 s 1 + b 0 H(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} H(s)=D(s)N(s)=bnsn+bn−1snm−1+…b1s1+b0amsm+am−1sm−1+…a1s1+a0
在 MATLAB 中,指定 D 和 N:
num = [am am-1 ... a1 ao] den = [bn bn-1 ... b1 bo]
要绘制传递函数(幅度和相位),请输入:bode (num, den)
例如:
H ( s ) = ( 0.5 s + 1 ) / ( 1 E − 4 s 2 + 0.01 s + 1 ) H(s)=(0.5 s+1) /\left(1 E-4 s^2+0.01 s+1\right) H(s)=(0.5s+1)/(1E−4s2+0.01s+1)
num = [0.5 1];
den = [1e-4 0.01 1] ;bode (num, den)
当给定极点和零点时绘制传递函数:
H ( s ) = K ( s + s 1 ) ( s + s 2 ) ( 1 + a s + b s 2 ) / ( s + s 3 ) ( s + s 4 ) ( 1 + c s + d s 2 ) 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)=K(s+s1)(s+s2)(1+as+bs2)/(s+s3)(s+s4)(1+cs+ds2)
例如:
H ( s ) = 72 x ( s + 2 ) / s ( s + 50 ) ( s + 250 ) ( s + 1000 ) ( s 2 + 2.4 s + 144 ) H(s)=72 x(s+2) / s(s+50)(s+250)(s+1000)\left(s^2+2.4 s+144\right) H(s)=72x(s+2)/s(s+50)(s+250)(s+1000)(s2+2.4s+144)
首先找到分母为 s(s+50)(s+250)(s+1000)
对应的多项式的系数:
rootsd1=[0; -50; -250; -1000 ];
d1=poly(rootsd1);