🎯要点
- 处理电动和混动汽车能耗的后向和前向算法模型(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.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
=
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);