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