资源描述:
《打印机皮带驱动系统的建模与仿真.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、打印机皮带驱动系统的建模与仿真自研-11北方工业大学2011.12.12NorthChinaUniversityofTechnology一.打印机皮带驱动系统的状态空间方程在计算机外围设备中,常用的低价位喷墨式或针式打印机都配有皮带驱动器。它用于驱动打印头沿打印页面横向移动。下图给出了一个装有直流电机的皮带驱动式打印机的例子。其光传感器用来测定打印头的位置,皮带张力的变化用于调节皮带的实际弹性状态。下图为打印机皮带驱动器的基本模型。模型中记皮带弹性系数为k,滑轮半径为r,电机轴转角为θ,右滑轮的转角为θp,打印头质量为m打印头的位移为y(t)。光传感器用来测量y(t),光传感器的输出电压
2、为v1,且v1=k1y。控制器输出电压为v2,对系统进行速度反馈,注意到y=rθp,可知皮带张力T1,T2分别为二.系统分析1.能控性与能观性通过MATLAB仿真:Qk=1.0e+004*0-0.00010.003700-0.0300-0.01000.2500-6.2410Qc=1.0000000-1.00000.0150-200.9000-0.1200-0.3750两个矩阵都满秩,说明系统状态既能控又能观测。2.稳定性通过MATLAB仿真r=-25.00180.0009+14.1755i0.0009-14.1755i可知解的特征值为:0.0090+14.4724i,0.0090-14
3、.4724i,-25.0180。三个特征值中存在两个正实部根,一个负根,这说明打印机皮带驱动器系统,即被控系统是不稳定的。2.原打印机皮带驱动系统在阶跃响应下的MATLAB仿真分析%原系统的阶跃响应A=[0-10.015;20000;-60-8-25];B=[0;0;-100];C=[1,0,0];D=0;sys0=ss(A,B,C,D);t=0:0.01:5;[y,t,x]=step(sys0,t);subplot(3,1,1);plot(t,x(:,1));gridxlabel('t(s)');ylabel('x(t)');title('z');subplot(3,1,2);plot
4、(t,x(:,2));grid;xlabel('t(s)');ylabel('x(t)');title('z的微分');subplot(3,1,3);plot(t,x(:,3));gridxlabel('t(s)');ylabel('x(t)');title('theta')显示结果:显示结果:三.状态反馈和全维状态观测器的设计3.1极点配置的设计方法打印机皮带驱动系统是一个不稳定的系统,控制器的目的是使打印机皮带驱动系统,即使打印机皮带在外力作用下其位移以较小的误差跟随输入变化。由于系统的动态响应主要是由他的极点位置决定的,同时容易证明打印机皮带驱动系统是一个能控而且能观的系统。因此
5、本实验通过极点配置状态反馈控制器和全维状态观测器来使系统保持稳定.3.2利用MATLAB求极点配置状态反馈KMATLAB程序如下:%极点配置状态反馈a1=-0.2+1*j;a2=-0.2-1*j;a3=-1;A=[0-10.015;20000;-60-8-25];B=[0;0;-100];disp('TheRankofControllabilityMatrix')rc=rank(ctrb(A,B))P=[a1a2a3];K=acker(A,B,P)显示结果:TheRankofControllabilityMatrixrc=3K=132.97331.00990.2360反馈矩阵3.3利用M
6、ATLAB求全维状态观测器LMATLAB程序如下:%全维状态观测器A=[0-10.015;20000;-60-8-25];B=[0;0;-100];C=[100];disp('TheRankofObstrabilatyMatrix')r0=rank(obsv(A,C))A1=A';B1=C';C1=B';P=[-2+2*sqrt(3)*j-2-2*sqrt(3)*j-5];K=acker(A1,B1,P);L=K'显示结果:TheRankofObstrabilatyMatrixr0=3L=1.0e+004*-0.00160.01972.8794反馈矩阵四.对带有全维状态观测器的状态反馈的
7、打印机皮带驱动系统的MATLAB测试MATLAB程序如下:A=[0-10.015;20000;-60-8-25];B=[0;0;-100];C=[1,0,0];D=0;[num,den]=ss2tf(A,B,C,D,1);figure(1);rlocus(num,den);%绘制根轨迹title('极点配置前根轨迹');grid;%求零极点和静态增益[ZPK]=tf2zp(num,den)figure(2);step(num,den