数字PID控制算法及Matlab仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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使用方法,编制位置式和增量式算法控制程序。