PID控制滤波器的Matlab仿真

  • j2_323096
    了解作者
  • 220.4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-14 04:54
    上传日期
其中程序已经验证,可以实现Pid参数对滤波器的控制~~~~~~~~~~~~~~~
pidFliter.rar
  • pidFliter
  • hs_err_pid4420.log
    13.2KB
  • rinyout.jpg
    29.9KB
  • pidfliter.asv
    1.5KB
  • M-2-u.jpg
    62.8KB
  • u.jpg
    29.5KB
  • M-2-rinyout.jpg
    65.1KB
  • disturb.jpg
    134.8KB
  • pidfliter.m
    1.5KB
内容介绍
%采用低通滤波器的PID控制 clear all; clear all; ts=0.001; sys=tf(5.235e005,[1,87.35,1.047e004,0]); dsys=c2d(sys,ts,'z'); [num,den]=tfdata(dsys,'v'); u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; yy_1=0; error_1=0;error_2=0;ei=0; kp=0.20;ki=0.05; sys1=tf([1],[0.04,1]); dsys1=c2d(sys1,ts,'tustin'); [num1,den1]=tfdata(dsys1,'v'); f_1=0; M=2; %M可以等于1,2,3 for k=1:1:1000 time(k)=k*ts; rin(k)=20; %step signal %linear model yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+... num(3)*u_2+num(4)*u_3 if M==1 %no disturbance signal error(k)=rin(k)-yout(k); filty(k)=yout(k); end D(k)=5.0*rands(1); %disturbance signal yyout(k)=yout(k)+D(k); if M==2 %No filter filty(k)=yyout(k); error(k)=rin(k)-filty(k); end if M==3 %using low frequency filter filty(k)= -den1(2)*f_1+num1(1)*(yyout(k)+yy_1);% error(k)=rin(k)-filty(k); end %i separation if abs(error(k))<=0.8 ei=ei+error(k)*ts; else ei=0; end u(k)=kp*error(k)+ki*ei; if u(k)>=10 %restricting the output of controller u(k)=10; end if u(k)<=-10 u(k)=-10; end % return of PID parameters rin_1=rin(k); u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); f_1=filty(k); yy_1=yyout(k); error_2=error_1; error_1=error(k); end figure(1); plot(time,rin,'b',time,filty,'r'); xlabel('time(s)');ylabel('rin,yout'); figure(2); plot(time,u,'r'); xlabel('time(s)');ylabel('u'); figure(3); plot(time,D,'r'); xlabel('time(s)');ylabel('Disturbance signal');
评论
    相关推荐
    • matlab 课件
      matlab 功能很强大,本课件详细的介绍了matlab在科学计算中的应用。
    • Matlab教程
      MatlaB经典ppt,主要讲解了MatlaB的入门知识,图形编程以及仿真。
    • matlab入门
      matlab的入门教程,很值得仔细看看,对提高matlab能力有帮助
    • matlab编译器
      matlab编译为exe文件所需要的文件; 使用时解压,将解压后文件拖入至matlab命令行即可
    • matlab
      matlab的基础知识进行介绍
    • MatLab
      “#MatLab
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • MATLAB 论文
      基于MATLAB的论文撰写!可以为你指明一条写作MATLAB论文的道路!
    • matlab
      matlab经典课堂讲义
    • matlab
      matlab