直流电机PID闭环数字控制器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档