欢迎来到天天文库
浏览记录
ID:57122837
大小:194.50 KB
页数:16页
时间:2020-08-01
《微机控制技术习题课课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《微机控制技术》习题课陈超波1、已知AD采集程序intread_data(),返回参数为采集数据。DA输出程序voidwrite_data(intdata_x),data_x为DA的输出数据。用C语言编写积分分离法PID位置型控制算法的程序?【解】其中:intin_dat,out_dat;intuk,ek,ek1,ek2,xk,kp,ki,kd,N,B;voidmain(){init();while(1){in_dat=cai_data();chul_pid();write_DATA(out_dat)delay();}}init(){ek=0;ek1=0;ek2=0;uk=
2、0;KP=?;KE=?;KD=?;xk=?;B=?;}chul_pid(){ek=xk-in_data;N=1;if(ek>B){N=0;}else{If(ek<-B){N=0;}}out_data=uk+kp(ek-ek1)+NKeK+KD(ek-2ek1+ek2);ek2=ek1;ek1=ek;}2、某控制器传递函数D(S)=10/S(S+1),设计数字控制器。离散方法为双线性变换法,采样时间为0.1秒。D(s)=U(s)/E(s)S=>2/T*(1-1/z)/(1+1/z)则:D(Z)=10/[2/T*(1-1/z)/(1+1/z)]*[2/T*(1-1/z)/(1+
3、1/z)+1]D(Z)=10*(1+1/z)*(1+1/z)/2/T*(1-1/z)*(2/T(1-1/z)+1+1/z)=10*(1+1/z)*(1+1/z)/20*(1-1/z)*(20-20*1/z+1+1/z)=10*(1+1/z)*(1+1/z)/20*(1-1/z)*(21-19*1/z)U(z)/E(z)=10*(1+1/z)*(1+1/z)/20*(1-1/z)*(21-19/z)U(z)*2*(1-1/z)*(21-19/z)=E(z)*(1+1/z)*(1+1/z)U(z)*(42-80/z+38/zz)=E(z)*(1+2*1/z+1/zz)42*U(
4、k)-80*U(K-1)+38*(UK-2)=E(K)+2*E(K-1)+E(K-2)U(K)=[E(K)+2*E(K-1)+E(K-2)+80*U(K-1)-38*(UK-2)]/423、已知校正系统的传递函数D(S)=(T2S+1)/(T1S+1),T1=0.01秒,T2=0.1秒,采样时间为0.1秒。利用双线性法求出D(Z)并画出实现系统的原理框图和程序框图。采样时间为0.1秒。五、编写程序。某温度箱框图如下:温度变送器输出信号为4-20毫安,对应温度为0-2000摄氏度。电炉系统时延为6.4秒,要求控制的温度为400摄氏度,系统阶跃响应曲线如下:其中θ=20秒,τ=
5、140秒;控制度选择为1.2。采用积分分离法PID控制。温度误差在+/-10度时加入积分项。其中:电流电压转化单元和AD转换单元电路如下,CS地址为80H,81H。DA转换单元如下,CS2地址为82H,83H由题可知:0~2000℃→4~20mA→1~10VAD574的转换精度为12位,即从0~4095则0℃对应1/10×4095,2000℃对应4095根据T=K×D+b可求得main(){unsignedintd;floatuk,;floatek,ek1,ek2;floatk,b,x;floatt,AUK;floatKP,KI,KD;kp=?;ki=?;kd=?;k=?;
6、b=?;uk=0;uk1=0;uk2=0;ek1=0;ek=0;x=400;while(1){d=in_ad();t=k*d+b;ek=x-t;AUK=KP*(ek-ek1)if(ek>-10&&ek<10){AUK=AUK+KI*EK;}AUK=KD*(EK-2*EK1+EK2)+AUK;UK=AUK+UK;EK2=EK1;EK1=EK0;out_da();delay();}}
此文档下载收益归作者所有