概述
文章目录
- Matlab 仿真——直流电机速度控制(1)直流电机建模
- 1. 物理模型
- 2. 系统方程
- 2.1 转换方程表达
- 2.2 状态空间表达
- 3. 设计要求
- 4. Matlab表达
- 4.1 转换方程表达
- 4.2 状态空间表达
- 5. 引用
Matlab 仿真——直流电机速度控制(1)直流电机建模
该系列我们学习如何对直流电机进行速度控制,第一节我们先分析一个简化的电机模型,并推导它的转换方程和状态空间方程,然后定义我们要实现的速度控制需要达到的性能。
1. 物理模型
一个直流电机模型如下所示:
为了简化讨论,假设转子和转轴都是刚体,转子受到的磁场恒定,转子受到的摩擦为粘性摩擦,即受到的摩擦力与速度成正比。
假设该电机的物理参数为:
(J) 转子的转动惯量 0.01 kg.m^2
(b) 电机粘性摩擦常数 0.1 N.m.s
(Ke) 电动势常数 0.01 V/rad/sec
(Kt) 电机扭矩常数 0.01 N.m/Amp
(R ) 电阻 1 Ohm
(L) 电感 0.5 H
2. 系统方程
有了物理模型和参数之后,我们开始推导该电机的系统方程。一般情况下直流电机的扭力与电流成正比(磁场恒定),那么我们有:
T
=
K
t
i
T = K_{t} i
T=Kti
反电动势与转速成正比:
e
=
K
e
θ
˙
e = K_{e} dot{theta}
e=Keθ˙
不失一般性,我们令Kt=Ke,统统用K表示。根据牛顿第二定律和基尔霍夫电压定律得到:
J
θ
¨
+
b
θ
˙
=
K
i
Jddot{theta} + b dot{theta} = K i
Jθ¨+bθ˙=Ki
L
d
i
d
t
+
R
i
=
V
−
K
θ
˙
L frac{di}{dt} + Ri = V - Kdot{theta}
Ldtdi+Ri=V−Kθ˙
2.1 转换方程表达
对上述两式进行拉氏变换得到:
s
(
J
s
+
b
)
Θ
(
s
)
=
K
I
(
s
)
s(Js + b)Theta(s) = KI(s)
s(Js+b)Θ(s)=KI(s)
(
L
s
+
R
)
I
(
s
)
=
V
(
s
)
−
K
s
Θ
(
s
)
(Ls + R)I(s) = V(s) - KsTheta(s)
(Ls+R)I(s)=V(s)−KsΘ(s)
通过消除电流项得到:
P
(
s
)
=
Θ
˙
(
s
)
V
(
s
)
=
K
(
J
s
+
b
)
(
L
s
+
R
)
+
K
2
[
r
a
d
/
s
e
c
V
]
P(s) = frac {dot{Theta}(s)}{V(s)} = frac{K}{(Js + b)(Ls + R) + K^2} qquad [ frac{rad/sec}{V}]
P(s)=V(s)Θ˙(s)=(Js+b)(Ls+R)+K2K[Vrad/sec]
2.2 状态空间表达
我们选择转速和电流作为我们的状态变量得到z状态空间表达:
d
d
t
[
θ
˙
i
]
=
[
−
b
J
K
J
−
K
L
−
R
L
]
[
θ
˙
i
]
+
[
0
1
L
]
V
frac{d}{dt}left [begin{array}{c} dot{theta} \ \ i end{array} right] = left [begin{array}{cc} -frac{b}{J} & frac{K}{J} \ \ -frac{K}{L} & -frac{R}{L} end{array} right] left [begin{array}{c} dot{theta} \ \ i end{array} right] + left [begin{array}{c} 0 \ \ frac{1}{L} end{array} right] V
dtd⎣⎡θ˙ i⎦⎤=⎣⎡−Jb −LKJK−LR⎦⎤⎣⎡θ˙ i⎦⎤+⎣⎡0 L1⎦⎤V
y
=
[
1
0
]
[
θ
˙
i
]
y = [ begin{array}{cc}1 & 0end{array}] left [ begin{array}{c} dot{theta} \ \ i end{array} right]
y=[10]⎣⎡θ˙ i⎦⎤
3. 设计要求
现在我们确定电机的性能参数,并根据参数来设计控制器。首先我们希望它输入1V电压的时候稳定状态下保持0.1 rad/sec的转速,稳定时间2s,稳态误差不超过1%,并且受到阶跃输入干扰的时候超调小于5%。根据以上要求我们总结出以下需求:
- 稳定时间<2s
- 超调<5%
- 稳态误差<1%
4. Matlab表达
接下来我们在Matlab里面表达出该系统
4.1 转换方程表达
%motor parameter
J = 0.01;
b = 0.1;
K = 0.01;
R = 1;
L = 0.5;
%motor tf function
s = tf('s');
P_motor = K/((J*s+b)*(L*s+R)+K^2)
输出
4.2 状态空间表达
A = [-b/J K/J
-K/L -R/L];
B = [0
1/L];
C = [1 0];
D = 0;
motor_ss = ss(A,B,C,D)
输出
下一节我们用Matlab来分析这个系统。
5. 引用
https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=SystemModeling
最后
以上就是笨笨大神为你收集整理的Matlab 仿真——直流电机速度控制(1)直流电机建模Matlab 仿真——直流电机速度控制(1)直流电机建模的全部内容,希望文章能够帮你解决Matlab 仿真——直流电机速度控制(1)直流电机建模Matlab 仿真——直流电机速度控制(1)直流电机建模所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复