MATLAB测试一阶惯性滞后系统、PID参数采用Simulink整定结果

注意:
注释代码是基于采样周期ts=20s形式… ;频域到时域变化请参考 MATLAB编程测试传递函数的响应曲线(系统辨识第一篇)。
https://blog.csdn.net/weixin_37928884/article/details/127799637

% 传递函数:一阶惯性加滞后
%                   1
%   exp(-80*s) * --------
%                60 s + 1

clear;close all;clc;
% 采样周期ts与tdelay有关、修改ts观察tdelay变化
ts=20;
sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts,'zoh');
[num,den]=tfdata(dsys,'v');

% u_1=0;
% u_2=0;
% u_3=0;
% u_4=0;
% u_5=0;
% 设定初值u,由于滞后,故y的输出在刚开始有输入的滞后时间内为零
tdelay = dsys.InputDelay + 1;
for m=1:tdelay
    u_(m)=0;
end

%-----------------计算PID使用-----------------%
y_1=0;
y_2=0;
y_3=0;
error_1=0;
error_2=0;
%-----------------计算PID使用-----------------%
ei=0;

for k=1:1:2000/ts
    time(k)=k*ts;
    rin(k)=1.0;%Step Signal
%     yout(k)=-den(2)*y_1+num(2)*u_5;
    yout(k)=

你可能感兴趣的:(建模,算法,matlab)