- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二数字pid控制器仿真
实验二 数字PID控制
实验目的
学习数字PID算法的基本原理;
掌握利用Matlab软件进行PID算法仿真的基本方法。
二、实验原理及内容
1、实验原理
计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续PID控制算法不能直接使用,需要采用离散化方法。在计算机PID控制中,使用的是数字PID控制器。
按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,可得离散PID位置式表达式:
式中,,e为误差信号(即PID控制器的输入),u为控制信号(即控制器的输出)。
同样,可采用离散PID增量式,对应表达式如下:
实验内容
已知某计算机控制系统如图1所示。采样周期为T=0.1s,分别采用不同的调节器进行MATLAB控制仿真。
若只采用比例控制,即D(z)=Kp,分别令Kp=1;Kp=2;Kp=5计算稳态误差、超调量及调节时间,并记录阶跃响应曲线。
采用PI控制,即,令Kp=1,调整Ki数值观察稳态误差、超调量及调节时间变化过程,记录阶跃响应曲线。
采用PID控制,即,令Kp=1,Ki=1;调整Kd 的数值,观察稳态误差、超调量及调节时间,记录阶跃响应曲线。
三、实验要求
1、根据附录例子完成实验内容。
2、思考如何采用m函数实现增量式位置PID控制算法。
附录:
Simulink仿真
数字PID的MATLAB仿真被控过程的原理方框图,见图2所示。图1系统对应系统广义z变换传递函数为:
图2 数字PID的MATLAB仿真原理方框图
m函数仿真参考:
假设有一直流电机模型对象,传递函数为:
利用Matlab建立传递函数方法为:
sys=tf(2652,[1,25,490])
当采样间隔为ts=0.01s时,则其z变换(离散)传递函数为:
dsys=c2d(sys,ts,z)
Matlab输出为(Transfer function):
0.1217 z + 0.112
----------------------
z^2 - 1.736 z + 0.7788
获得分子和分母的函数为:
[num,den]=tfdata(dsys,v)
如果电机输入电压状态为uk,输出转速状态为yk。则
可得完整参考程序如下:
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);
D(z)
R(s)
Y(s)
E(z)
U(z)
T
T
T
T=0.1s
图1 带数字PID调节器的计算机控制系统
文档评论(0)