Matlab 仿真——直流电机速度控制(2)系统分析

  • Post author:
  • Post category:其他




Matlab 仿真——直流电机速度控制(2)系统分析

上一节我们成功在matlab建立好了电机系统模型,这一节我们来分析这个系统的时域响应



0. 被控对象与设计要求

这里把设计需求和系统转换方程粘贴在这里:

设计需求(阶跃响应):

  • 稳定时间<2s
  • 超调<5%
  • 稳态误差<1%

转换方程:





s

(

J

s

+

b

)

Θ

(

s

)

=

K

I

(

s

)

s(Js + b)\Theta(s) = KI(s)






s


(


J


s




+








b


)


Θ


(


s


)




=








K


I


(


s


)











(

L

s

+

R

)

I

(

s

)

=

V

(

s

)

K

s

Θ

(

s

)

(Ls + R)I(s) = V(s) – Ks\Theta(s)






(


L


s




+








R


)


I


(


s


)




=








V


(


s


)













K


s


Θ


(


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


)






















=



















(


J


s




+




b


)


(


L


s




+




R


)




+





K










2





















K






















[













V














r


a


d


/


s


e


c




















]







1. 开环响应

让我们看看该系统的开环响应如何,是否满足我们对电机的要求。matlab自带了线性系统分析工具。

Matlab运行以下代码

%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)
%求系统P_motor的阶跃响应,时间为05秒,步长0.1s
linearSystemAnalyzer('step',P_motor,0:0.1:5);

输出

在这里插入图片描述

在窗口上右击选择要显示的数据,我们得到系统的稳定时间为2.07秒,终值为0.0999。稳定时间不满足我们的要求。

在这里插入图片描述



2. LTI 模型特征

我们选择该系统的零极点图来观察

在这里插入图片描述

在这里插入图片描述

发现该系统有两个实极点,一个在-2处, 一个在-10处。也

因为极点没有虚部,所以系统不存在震荡

。根据现代控制系统的知识,我们推测-2处的极点主导了系统的响应。为了验证这个想法,我们找到一个单极点的系统进行比较

rP_motor = 0.1/(0.5*s+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)
rP_motor = 0.1/(0.5*s+1);
%求系统P_motor的阶跃响应,时间为05秒,步长0.1s
linearSystemAnalyzer('step',P_motor,0:0.1:5);

在弹出的窗口里面我们导入新的系统阶跃响应

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以发现系统阶跃响应很接近,这印证了我们的猜想。



3. 其他输入信号的响应

除了阶跃响应,有时我们也想看看系统输入为其他输入信号时的情况。你可以直接导入你自己定义好的输入信号,或者用Matlab为你准备好的信号模板定制输入信号。接下来我们演示如何用模板信号。

  1. 右击,选择Plot Types——Linear Simulation

    在这里插入图片描述
  2. 定义仿真时间,步长,然后点击设计信号

    在这里插入图片描述
  3. 填写信号参数,插入,然后点击仿真

    在这里插入图片描述
  4. 接着你就能看到新的输入型号的输出结果了

    在这里插入图片描述



4. 引用

https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemModeling



版权声明:本文为zhelijun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。