PID控制的讨论.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PID控制的讨论

PID控制的讨论 一、实验目的及内容 对一系统加入PID控制、A/D、D/A等环节,用matlab进行仿真,并更改A/D、D/A的精度,得到响应曲线的变化。 实验方案 1)一阶系统的传递函数为 化为差分方程为 设k=1,T=5 2)变量的说明 设H为模拟量转换的上限,L为模拟量转换的下限,kp、ki、kd为PID的参数,r为给定值,e为PID的输入量,u为PID的输出量,y为系统的输出,y0为系统的初始状态,u1为D/A接收到的数字量,u2为D/A输出的模拟量,du为偏移量。 3)定点数的说明 kp、ki、kd(ki和kd中已含仿真时间dt)是用16位二进制数来表示,用12位数表示误差值e,相乘的结果用32位二进制数来表示,以定点数的形式可表示为0xXX.XXXXXX。而小数点后三位的XXX是12位D/A需要采集的数字量,若0xXXXXXXXX大于2^24,则令其等于0xFFFFFF,若小于0,则令其等于0x000000。最后右移12位,就能得到终值。 部分主要源代码如下: for i=1:lp1 e=r0-y0; xp=e/dta; xi=xi+ts*e/dta/ti; xd=td/dta*(e-e0)/ts; u=xp+xi+xd; u1=u+r1; if u10 u1=0; end if u14096 u1=4096; end u2=(u1-r1)/4096*(H-L)+L; e0=e; for j=1:lp2 y=y+dt*(-y+k*u2)/T; t=t+1; Y(t)=y+r2; R(t)=r; tt(t)=t*dt; O(t)=u1; P(t)=u; end y0=(y+r2-L)/(H-L)*4096; End for j=1:lp2 y=y+dt*(-y+k*u3)/T; y1=int32((y+y0-L)/(H-L)*jd); n=n+1; % Y(n)=y+y0; t(n)=n*dt; if y1jd-1 y1=jd; end if y10 y1=0; end Yad(n)=double(y1)/jd; ad1(n)=u2; Xi1(n)=xi; end end D/A的输出精度的改变对响应曲线的影响 改变精度的方法:由于PID的参数仍为16位定点数,PID的输出为8位的整数部分和N位的取值部分和12位的小数尾部,所以限幅后将结果右移12位,即可得到需要采集的N位数。做实验时仅需更改精度变量jd就能改变转换精度。源代码如下: D/A的输出精度为10位 b)D/A的输出精度为8位 c)D/A的输出精度为6位 d)D/A的输出精度为4位 输入值与给定值的正负变化情况 1.u=300,r=200 2.u= 100,r=200 两位式:当u0.5 y=1.0 当u0.5 y=0.0 精度为12位 精度为10位 精度为8位 精度为6位 精度为4位

文档评论(0)

youshen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档