PID控制实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

fangqing12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档