数字PID控制算法及Matlab仿真

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

数字PID 控制算法及Matlab 仿真

一.实验目的:

1.学习数字PID 算法的基本原理。

2.学习数字PID 调节器参数调节方法。

二.实验属性及设备:

验证性实验,使用电脑及相关专业软件。

三.实验原理:

1.概述

首先建立数字PID 直流电机控制模型,然后用Matlab 的LTI 状态分析工具箱进行仿真,并绘制转速及控制电压变化图形。

图:

k

k k y r e -=2.位置式数字PID 算法公式

010j )(u e e K e K e K u k k D k

k I k P k +-⨯+⨯+⨯=-=∑3.增量式数字PID 算法公式

)

2()(211---+-⨯+⨯+-⨯=∆k k k D k I k k P k e e e K e K e e K u k

k k u u u ∆+=-14.Matlab LTI 工具箱函数(作为了解内容)

例:一台150kW 直流电动机,额定电压220V ,额定转速1000r/min ,额定电流700A ,R a =0.05Ω,L d =2mH ,假设负载及电动机转动总惯量GD 2=125kg ·m 2,则:

)min/185.01000

05.0*700220r V n R I U C N a N N e ⋅=-=-=A

m N C C e T /767.155.9⋅==s R L T a a a 04.005

.01023=⨯==-s C C R GD T T e a m 051.0767

.1185.037505.01253752=⨯⨯⨯==mA kg C C e M ⋅==18.003

.1传递函数为

490

2526521051.000204.041.51/1)()(222++=++=++=s s s s s T s T T C s u s y m m a e

利用Matlab 建立传递函数方法为:

sys=tf(270.5,[1,40,50])

当采样间隔为ts=0.01s 时,则其z 变换(离散)传递函数为:

dsys=c2d(sys,ts,'z')

Matlab 输出为(Transfer function):

0.1217z +0.112

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

z^2-1.736z +0.7788

Sampling time:0.01

获得分子和分母的函数为:

[num,den]=tfdata(dsys,'v')

如果电机输入电压状态为u k ,输出转速状态为y k 。则

2

121)3()2()3()2(----⨯+⨯+⨯-⨯-=k k k k k u num u num y den y den y 5.Matlab 绘图:

plot(时间数组,y 数组,'颜色及标记')

表:plot 函数标示符色彩

说明标记说明r

红色.为点。默认为连续线g

绿色b

蓝色k 黑色四.实验内容:

1.位置数字PID 算法程序

clear all;

close all;

ts=0.01;%采样时间=0.001s

sys=tf(2652,[1,25,490]);%建立被控对象传递函数

dsys=c2d(sys,ts,'z');%把传递函数离散化

[num,den]=tfdata(dsys,'v');%离散化后提取分子、分母

e_1=0%上一偏差

Ee=0;%偏差累计

u_1=0.0;%上一状态电压

u_2=0.0;

y_1=0;%上一状态输出

y_2=0;

kp=;%PID 参数

ki=;%;

kd=;%;

for k=1:100

time(k)=k*ts;%时间参数

r(k)=500;%给定值

y(k)=-1*den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;

e(k)=r(k)-y(k);%偏差

u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1);

if u(k)>220

u(k)=220;

end

if u(k)<=0

u(k)=0;

end

Ee=Ee+e(k);

u_2=u_1;

u_1=u(k);

y_2=y_1;

y_1=y(k);

e_2=e_1;

e_1=e(k);

end

hold on;

plot(time,r,'r',time,y,'b',time,u,'r');%

[kp,ki,kd]

2.增量数字PID算法程序

依据上述方法自己编写增量式PID算法程序。

3.程序调试好后,分别改变KP、KI和KD参数值,看输出图形有何变化,理解PID控制中比例、积分和微分对控制系统的作用。

图:

4.程序中可加入如下语句

if k<50

r(k)=400;

else

r(k)=800;

end

然后观察连续调速时图形变化的情况。

图:

五.实验要求:

复习理解数字PID控制算法,及matlab使用方法,编制位置式和增量式算法控制程序。

相关文档
最新文档