赞
踩
在博客<运动控制第一篇之直流电动机建模> 中,已经介绍了电机模型形式。但是在实际系统中,若电机添加负载或者其他应用中,电机的模型就会发生转变。仅仅通过电机厂家提供的参数建立模型在精度上是无法满足需求的。所以,我们要对电机进行系统辨识。
本文将忽略系统辨识的理论知识,直接介绍如何通过matlab实现电机参数辨识过程。
实验环境:
若电机的负载是一个普通的惯性环节,则我们可以将其和电机建立在一个模型中。在博客<运动控制第一篇之直流电动机建模> 中,我们已经知道电机的模型如下图所示。
将负载和电机看做为一个整体,则可以忽略负责的作用。那么,可以将上图转化为传递函数为:
M
(
s
)
=
K
T
l
T
m
s
+
T
m
s
+
1
M(s)=\frac{K}{T_lT_ms+T_ms+1}
M(s)=TlTms+Tms+1K
其中,
{
K
=
1
C
e
T
l
=
L
R
T
m
=
J
R
C
m
2
\left\{
所以,我们可以知道
T
l
T_l
Tl 是不会随着负载变化而变换的,且其一般很小。所以,一般可以直接根据电机参数计算得出。通过查询电机手册,可以获得
{
L
=
6.7
m
H
R
=
10.4
Ω
\left\{
所以,可以计算出电磁常数
T
l
=
L
R
=
0.00064423
s
T_l=\frac{L}{R}=0.00064423s
Tl=RL=0.00064423s
根据终值定理,开环电机的阶跃响应的终值为:
lim
t
→
+
∞
c
(
t
)
=
lim
s
→
0
s
⋅
1
s
⋅
M
(
s
)
=
K
{\lim_{t \to +\infty} {c(t)}}={\lim_{s\to 0}s \cdot \frac1 s \cdot M(s)}=K
t→+∞limc(t)=s→0lims⋅s1⋅M(s)=K
所以,在理想的电机模型中,
K
K
K 就是电机稳定速度与电压的斜率。因此,第一步,需要检测电机的稳定特性。
我采用的方法是,将电机由负额定电压逐渐增加到正额定电压。具体来说,就是将电机的占空比由-40%逐渐增加到40%,让电机在每个整数占空比稳定旋转1min,最后输出电机的稳定旋转的速度。得到的曲线如下图所示:
其中,横轴为占空比,纵轴为电机转速。
选取线性比较好的区域,拟合电机的特性线性曲线为:
则根据上文分析可知,电机的死区就是两条直线与坐标横轴的焦点,而K值就是两条直线的斜率。通过matlab拟合曲线,可以轻易求出电机的死区为[-8,8];K=46;
通常在电机系统中,
T
m
>
>
T
l
T_m>>T_l
Tm>>Tl。因此,我们可以将电机传递函数近似改写成:
M
(
s
)
=
K
T
l
T
m
s
+
T
m
s
+
1
=
K
T
l
T
m
s
+
(
T
m
+
T
l
)
s
+
1
=
K
(
T
l
s
+
1
)
(
T
m
s
+
1
)
M(s)=\frac{K}{T_lT_ms+T_ms+1}=\frac{K}{T_lT_ms+(T_m+T_l)s+1}=\frac{K}{(T_ls+1)(T_ms+1)}
M(s)=TlTms+Tms+1K=TlTms+(Tm+Tl)s+1K=(Tls+1)(Tms+1)K
因此,本系统近似为:
M
(
s
)
=
K
(
T
l
s
+
1
)
(
T
m
s
+
1
)
=
46
(
0.00064423
s
+
1
)
(
T
m
s
+
1
)
M(s)=\frac{K}{(T_ls+1)(T_ms+1)}=\frac{46}{(0.00064423s+1)(T_ms+1)}
M(s)=(Tls+1)(Tms+1)K=(0.00064423s+1)(Tms+1)46
然后,通过Matlab中的系统辨识工具(System Identification Tool),即可以完成机电惯性 T m T_m Tm的辨识。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。