基于Matlab的直流电机速度控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统仿真

课程设计报告

设计题目:基于Matlab的直流电机速度控制

专业:自动化

学生姓名:

班级学号:

指导教师:

开课日期2013年 7 月 1 日至2013年 7 月 13 日南京邮电大学自动化学院

一、课程设计题目

控制系统的执行机构常用直流电机来驱动,电路和原理示意图如下所示

其开环传递函数为

()()0001

.0)15.0)(1.001.0(01

.02

+++=+++=

s s K R Ls b Js K V

θ ,请用时域分析方法设计PID 控制器,使系统满足下列性能指标要求:当仿真输入是单位阶跃信号时,电机输出转速调整时间小于2秒,超调小于5%,稳态误差小于1%。

要求给出详细的设计步骤,matlab 源码及仿真曲线。

二、实验原理

本报告首先介绍了直流电动机的物理模型,并测量计算了它的具体参数。然后根据牛顿第二定律和回路电压法分别列写运动平衡方程式和电机电枢回路方程式,从而通过一些数学变换抽象出了以电压为输入、转速为输出、电流和转速为状态变量的数学模型。借助MATLAB 设计simulink 模块调整PID 模块的各项系数,使系统的阶跃响应达到了设计指标。

1、建立该系统的时域数学模型 由克希霍夫定律得:

V=R*i+L d

i d t

+e

直流电机转矩和电枢电流关系为 T=Kt*I

电枢旋转产生反电动势与旋转运动角速度的关系为 e=K e

d θd t

k e =k i =k

由牛顿定律,转子力矩平衡关系为T i=k i∗i

T=k i∗i l

J∗s∗θ+b∗θ=T i−T

其中,T:负载转矩,i l:负载电流

V(s)=R*I(s)+L*sI(s)+E(s)

拉式变换:E=Keθ(s)

Jsθ(s)+bθ(s)=K i I(s)−K t I l(s)

划去中间变量得:

θ(s) v(s)=K

LJs2+(Lb+RJ)s+Rb+k i k e

开环传递函数为:

G(s)=θ(s)

v(s)=1

0.5s2+6s+10.01

2、PID控制器的功能

比例环节:Kp增大等价于系统的开环增益增加,会引起系统响应速度加快,稳态误差减少,超调量增加。当Kp过大时,会使闭环系统不稳定;

积分环节:相当于增加系统积分环节个数,主要作用是消除系统的稳态误差。积分环节作用的强弱取决于积分时间常数Ti,Ti增大,系统超调量变小,响应速度变慢;

微分环节:主要作用是提高系统的响应速度,同时减少系统超调量,抵消系统惯性环节的相位滞后不良作用,使系统稳定性明显改善。Td偏大或偏小,都会使超调量增大,调整时间加长。由于该环节所产生的控制量与信号变化速率有关,故对于信号无变化或变化缓慢的系统微分环节不起作用。

三、设计步骤

方法1:

搭建simulink模块,利用经验调节法整定PID参数,使整个系统满足调节时间小于2秒,超调小于5%,稳态误差小于1%。

1、搭建的simulink模块图如下:

PID参数整定结构图

2、设定Kp=1,Ki=0,Kd=0.得到原系统的响应曲线如下:

初始响应曲线

3、设定Kp=80,Ki=0,Kd=0,得到的响应曲线的超调量为7.25%,稳态误差为11%,没能达到所要求的性能指标,继续进行积分环节的调整。

Kp=80,Ki=0,Kd=0响应曲线

4、设定Kp=80,Ki=60,Kd=0得到的响应曲线的调节时间为0.686s,超调量为14.4%,稳态误差为0.7%,调节时间和稳态误差达到性能指标,最后调节微分环节,使超调量达到要求。

Kp=80,Ki=60,Kd=0响应曲线

5、设定Kp=80,Ki=60,Kd=2得到响应曲线的调节时间为0.21s,超调量为4.4%,稳态误差为0.4%,所有性能指标都达到要求。

Kp=80,Ki=60,Kd=2响应曲线

方法2:

设系统状态 X=[θ,i ]'并建立以输入电压U 为输入,转速θ为输出的系统状态空间表达式为

实验代码如下: 编写程序如下: %Modelng DC motor

J=0.01;b=0.1;K=0.01;R=1;L=0.5; A=[-b/J K/J -K/L -R/L];

B=[0

[]0110=⎥⎥⎥

⎥⎥

⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=Ω

=⎥⎦

⎤⎢⎣⎡Ω==+=C L B L R L K J K J b A Y i X CX Y Bu AX X ,,

1/L];

C=[1 0];

D=0;

sys=ss(A,B,C,D);

sys=tf(sys)

%Step response of the open system

%================================

step(sys)

运行结果:

Transfer function:

2

------------------

s^2 + 12 s + 20.02

由阶跃响应曲线可见,对系统加电压,马达仅达到的最大转速,且达到这个速度需要3秒,这些都不满足期望的性能要求。

设计PID控制器校正系统性能

PID 控制器的数学模型 PID 控制器传递函数为

PID 设计的MATLAB 仿真程序 %Model of DC motor

J=0.01;b=0.1;K=0.01;R=1;L=0.5; A=[-b/J K/J;-K/L -R/L]; B=[0; 1/L]; C=[1 0]; D=0;

sys=ss(A,B,C,D); sys=tf(sys);

%Design PID Controller Kp=80;Ki=60;Kd=2;

sysc=tf([Kd,Kp,Ki],[1 0]); sysopen=sysc*sys;

%Check step response of closed loop system

sysclose=feedback(sysopen,1);

s

K s K s K s K s K K s G i p d d i

p c ++=++=2)(

相关文档
最新文档