在m文件中编写PID控制算法
已知被控对象传递函数为:sys=tf([4.27],[1 0 0]); kp=50; ki=1.5; kd=10; 在simulink下如何搭建进行仿真?我只会m文件来仿真,以下是.m文件: clear all; close all; ts=0.01;%采样时间 sys=tf([4.27],[1 0 0]);%构造时滞系统传递函数模型 dsys=c2d(sys,ts, z );%连续系统离散化,用z变换 [num,den]=tfdata(dsys, v );%求零极点矩阵 u_1=0.0;u_2=0.0;%输入输出等相关变量初始化 y_1=0.0;y_2=0.0;y_3=0.0; x=[0,0,0] ; error_1=0; error_2=0; for k=1:1:400 time(k)=k*ts; %400个采样点 rin(k)=1;%Step Signal kp=50; ki=1.5; kd=10; u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID 限制器输出 %Restricting the output of controller %对限制器件的输出进行限幅限制 if u(k)>=10 u(k)=10; end if u(k)=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end uu(k)=u(k)+x0(k); theta(k)=-den(2)*theta_1-den(3)*theta_2+num(1)*uu(k)+num(2)*uu_1+num(3)*uu_2; e=rin(k)-theta(k);%e表示误差 u_2=u_1;u_1=u(k); uu_2=uu_1;uu_1=uu(k); theta_2=theta_1;theta_1=theta(k); s(1)=e-e_1; s(2)=e-2*e_1+e_2; s(3)=e; e_2=e_1;e_1=e; end hold on; plot(time,theta, r ,time,rin, b )