直流电机PID闭环数字控制系统器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广西大学实验报告纸
:指导老师:成绩:
学院:专业:班级
实验容:直流电机PID闭环数字控制器设计2014年
其他组员:
实验时间:2014年10月28号
实验方式:课外在MA TLAB平台上完成实验。
实验目的:
1、掌握线性系统状态空间标准型、解及其模型转换。
实验设备与软件:
1、MATLAB数值分析软件
实验原理:
1、求矩阵特征值
[V J]=eig(A), cv= eig(A)
2、求运动的方法
(1)利用Laplace/Z逆变换----适合于连续/离散线性系统;
(2)用连续(离散)状态转移矩阵表示系统解析解----适合于线性定常系统;
(3)状态方程的数值积分方法----适合于连续的线性和非线性系统;
(4)利用Cotrol ToolBox中的离散化求解函数----适合于LTI系统;
(5)利用Simulink环境求取响应----适于所有系统求取响应。
1、PID调节原理
比例调节作用:按比例反应系统的偏差产生调节作用。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统不稳定。
积分调节作用:消除稳态误差。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强;反之,Ti大则积分作用弱
微分调节作用:微分作用反映系统偏差信号的变化率,产生超前的控制作用。在偏差还没有形成之前,已被微分调节作用消除,改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用不能单独使用。
按偏差的PID 是过程控制中应用最广泛的一种控制规则,该调解器是一种线性调节器,。PID 的控制原理表达式为:
图1 PID 控制原理图
2、PID 算法的数字实现 (1)标准PID 算法:
在输出不振荡时,增大比例增益,减小积分时间常数,增大微分时间常数。因本实验采用的是一种离散时间的离散控制系统,因此为了用计算机实现PID 控制必须将其离散化,故可用数字形式的差分方程来代替
(1)
式中积分系数i p i T K K T =
微分系数d
d p T K K T
=,其中T --采样周期;()u n --第n 次采样时计算机输出;()e n --第n 次采样时的偏差值;(1)e n ---第n-1次采样时的偏差值.
可将上式转化成增量的形式:
(2)
p d
i 1
()()()()t
de t u t K e t e t dt T T dt ⎛⎫
=+
+ ⎪⎝
⎭
⎰
()
p i d 0
()()()()(1)n
j u n K e n K e j K e n e n ==++--∑()()
p i d ()()(1)()(1)()()2(1)(2)u n u n u n K e n e n K e n K e n e n e n ∆=--=--++--+-
(2)积分分离PID 控制算法
与上述标准算法比,该算法引进积分分离法,既保持了积分的作用,又减小了超调量,使控制性能得到较大的改善。令积分分离法中的积分分离阈值为0E ,则
(3)
(3)不完全微分PID 算法
微分作用容易引起高频干扰,因此通常在典型PID 后串接一个低通滤波器来抑制高频干扰,微分作用能在各个周期按照偏差变化趋势均匀的输出,真正起到微分的作用,改善系统性能。这样得到的PID 算法成为不完全微分PID 算法,表达式为:
(4) 式中
3、直流电机闭环调速系统原理
0i p 0i
0,()()e n E K T
K e n E T ⎧>⎪
'=⎨≤⎪⎩,()p i d 0()()()()(1)n
j u n K e n K e j K e n e n ='=++--∑ ()(1)(1)()
u n au n a u n '=-+-()d p 0i ()()()()(1)n j T T u n K e n e j e n e n T T =⎛⎫'=++-- ⎪
⎪⎝⎭∑f f )a T T T =+
图2 直流电机闭环调速系统原理
(4)被模拟对象模型描述
该闭环调速实验中,直流电机对象可通过实验测得其空载时的标称传递函数如下:
(5)
实验过程与分析
依据电机模型公式(5),在simulink 中搭建直流电机闭环调速的仿真模型,分析PID 对对象的影响,并选择一组较好的PID 参数为在实验操作提供可行依据,搭建的模型如下:
其中PID 模块的封装为:
(1)实验程序 标准PID 程序:
0.08482.7()0.31
s
W s e
s -=
+PID
比比
_
比比比比比/min 比
比比比比比比比比
比比比比比比比
1K 2
K 3
K ZOH
int pid(int P,int I,int D,int E)
{
int KI,KD,KP,U;
KP=P;
KI=5*KP/I; //求出积分系数KI
KD=D*P/5; //求出微分系数Kp
II=II+E; //求出积分
U=KP*E+KD*(E-E0)+KI*II;
E0=E;
return U;
}
积分分离PID程序:
int pid(int P,int I,int D,int E)
{
int KI,KD,KP,U,fa;
KP=P;
KI=5*KP/I; //求出积分系数KI
KD=D*KP/5; //求出微分系数Kp
II=II+E; //求出积分
if(E<0)
fa=-E;
else
fa=0;
if(fa>10) //积分KI不参加运算