- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二?数字?pid?控制
计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续?pid
控制算法不能直接使用,需要采用离散化方法。在计算机?pid?控制中,使用的是数字?pid?控
制器。
一、位置式?pid?控制算法
按模拟?pid?控制算法,以一系列的采样时刻点?kt?代表连续时间?t,以矩形法数值积分
近似代替积分,以一阶后向差分近似代替微分,可得离散?pid?位置式表达式:
?tu(k)?kp?e(k)??ti?
k?e(j)?j?0k?td(e(k)?e(k?1))??t?e(k)?e(k?1)
t??kpe(k)?ki?e(j)t?kd
j?0
式中,ki?kp
ti,u?为控制,kd?kptd,e?为误差信号(即?pid?控制器的输入)
信号(即控制器的输出)。
在仿真过程中,可根据实际情况,对控制器的输出进行限幅。
二、连续系统的数字?pid?控制仿真
连续系统的数字?pid?控制可实现?d/a?及?a/d?的功能,符合数字实时控制的真实情况,
计算机及?dsp?的实时?pid?控制都属于这种情况。
1.ex3?设被控对象为一个电机模型传递函数?g(s)?1,式中?2js?bs
j=0.0067,b=0.1。输入信号为?0.5sin(2?t),采用?pd?控制,其中
kp?20,kd?0.5。采用?ode45?方法求解连续被控对象方程。?d2ydyy(s)1?,则?u,另
y1?y,y2?y?2?因为?g(s)?,所以?j2?bdtu(s)js?bsdt
??yy??12,因此连续对象微分方程函数?ex3f.m?如下??y?2??(b/j)y?(1/j)*u?2?
function?dy?=?ex3f(t,y,flag,para)
u=para;
j=0.0067;b=0.1;
dy=zeros(2,1);
dy(1)?=?y(2);
dy(2)?=?-(b/j)*y(2)?+?(1/j)*u;
控制主程序?ex3.m
clear?all;
close?all;
ts=0.001; %采样周期
xk=zeros(2,1);%被控对象经?a/d?转换器的输出信号?y?的初值
e_1=0;%误差?e(k-1)初值
u_1=0;%控制信号?u(k-1)初值
for?k=1:1:2000?%k?为采样步数
time(k)?=?k*ts;?%time?中存放着各采样时刻
rin(k)=0.50*sin(1*2*pi*k*ts);?%计算输入信号的采样值
para=u_1; %?d/a
tspan=[0?ts];
[tt,xx]=ode45(ex3f,tspan,xk,[],para);?%ode45?解系统微分方程
%xx?有两列,第一列为?tt?时刻对应的?y,第二列为?tt?时刻对应的?y?导数
xk?=?xx(end,:); %?a/d,提取?xx?中最后一行的值,即当前?y?和?y?导数
yout(k)=xk(1);?%xk(1)即为当前系统输出采样值?y(k)
e(k)=rin(k)-yout(k);%计算当前误差
de(k)=(e(k)-e_1)/ts;?%计算?u(k)中微分项输出
u(k)=20.0*e(k)+0.50*de(k);%计算当前?u(k)的输出
%控制信号限幅
if?u(k)gt;10.0
u(k)=10.0;
end
if?u(k)lt;-10.0
u(k)=-10.0;
end
%更新?u(k-1)和?e(k-1)
u_1=u(k);
e_1=e(k);
end
figure(1);
plot(time,rin,r,time,yout,b);%输入输出信号图
xlabel(time(s)),ylabel(rin,yout);
figure(2);
plot(time,rin-yout,r);
xlabel(time(s)),ylabel(error);%误差图
程序运行结果显示表?1?所示。
表?1?程序运行结果
分析:输出跟随输入,pd?控制中,微分控制可以改善动态特性,调节时间缩短,允许加
大比例控制,使稳态误差减小,提高了控制精度.
2.ex4?被控对象是一个三阶传递函数?523500,采用
simulink32s?87.35s?10470s
与?m?文件相结合的形式,利用?ode45?方法求解连续对象方程,主程序由?simulink?模
块实现,控制器由?m?文件实现。输入信号为一个采样周期?1ms?的正弦信号。采用?pid?方法设
计控制器,其中?kp?1.5,ki?2,kd?0.05。
误差初始化由时钟功能实现,从而在?m?文件中实现了误差的积分和微分。?控制主程
序:ex4.mdl
控制子程序:ex4f.m
function?[u]=ex4f(u1,u
文档评论(0)