200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 计算机控制作业来看 带PID控制器的最小拍系统设计

计算机控制作业来看 带PID控制器的最小拍系统设计

时间:2022-02-14 13:52:30

相关推荐

计算机控制作业来看 带PID控制器的最小拍系统设计

%PID Controllerclear all;close all;ts=1;sys=tf(5,[1,1,0])%构建时间函数dsys=c2d(sys,ts,'zoh')%离散化[z,p,k]=zpkdata(dsys);Gz=zpk(z,p,k,ts,'variable','z^-1')syms z;z=tf('z');Phiez=(z^-1)*(1+0.7125*z^-1)*(-1.3+0.825*z^-1);Phiz=1-Phiez;%得到Φ(z)Dz=Phiz/(Gz*Phiez);%得到数字控制器的脉冲传递函数zpk(Dz)[num,den]=tfdata(Dz,'v');%该离散模型的分子分母多项式系数. %%########输入初始化####### u_1=0.0;u_2=0.0;u_3=0.0;y_1=0.0;y_2=0.0;y_3=0.0;x=[0,0,0]';error_1=0;ts=1;%%##########开始模拟######for k=1:30time(k)=k*ts;S=4;%%输入型号形式%############阶跃########if S==1kp=2.5;ki=kp*T/10;kd=kp*0.03/T; rin(k)=1; %Step Signal%############方波########elseif S==2kp=30;ki=2;kd=2; rin(k)=sign(sin(2*2*pi*k*ts)); %Square Wave Signal%############正弦##########elseif S==3kp=50;ki=kp*T/20;kd=kp*0.15/T;%Sine Signalrin(k)=0.5*sin(2*2*pi*k*ts);elseif S==4kp=0.7;ki=1.2;kd=0.1;rin(k)=k; %斜坡信号elseif S==5kp=0.50;ki=8;kd=1;rin(k)=0.5*k*k; %抛物线信号end%##########计算输出##########u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PID Controller%Restricting the output of controller%###########线性模型##########yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_2+num(3)*u_3;%yout(k)=-den(1)*y_1-den(2)*y_2-den(3)*y_3+num(1)*u_1+num(2)*u_2+num(3)*u_3;error(k)=rin(k)-yout(k);%###########返回值########u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);%############计算pid########### x(1)=error(k); %Calculating P x(2)=(error(k)-error_1)/ts; %Calculating Dx(3)=x(3)+error(k)*ts; %Calculating Ierror_1=error(k);endfigure(1);plot(time,rin,'r',time-2.7,yout,'k');xlabel('time(s)'),ylabel('rin,yout');% axis[0,30,0,30];% axis[0,30,0,30];

因为做计算机控制作业,发现没啥资料,就发一下参考一波。

要是3,4,5班学弟学妹就更有意思了。

作者:不爱跑马的影迷不是好程序猿

喜欢的话请关注点赞👇 👇👇 👇

壹句: 是以有非常之人,然后有非常之事

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。