📄 optpid.m
字号:
function [Gc,Kp,Ti,Td,H]=optPID(key,typ,vars)
k=vars(1); L=vars(2); T=vars(3); N=vars(4);
Td=[];
if length(vars)==5, iC=vars(5);
switch key
case 2
PID=[0.980,0.712,0.569,1.072,0.786,0.628;
0.892,0.921,0.951,0.560,0.559,0.583;
0.690,0.968,1.023,0.648,0.883,1.007;
0.155,0.247,0.179,0.114,0.158,0.167];
case 3
PID=[1.048,1.042,0.968,1.154,1.142,1.061;
0.897,0.897,0.904,0.567,0.579,0.583;
1.195,0.987,0.977,1.047,0.919,0.892;
0.368,0.238,0.253,0.220,0.172,0.165;
0.489,0.385,0.316,0.490,0.384,0.315;
0.888,0.906,0.892,0.708,0.839,0.832];
case 4
PID=[1.260,1.053,0.942,1.295,1.120,1.001;
0.887,0.930,0.933,0.619,0.625,0.624;
0.701,0.736,0.770,0.661,0.720,0.754;
0.147,0.126,0.130,0.110,0.114,0.116;
0.375,0.349,0.308,0.378,0.350,0.308;
0.886,0.907,0.897,0.756,0.811,0.813];
end
ii=0; if (L/T>1) ii=3; end; tt=L/T;
a1=PID(1,ii+iC); b1=-PID(2,ii+iC);
a2=PID(3,ii+iC); b2=-PID(4,ii+iC);
Kp=a1/k*tt^b1; Ti=T/(a2+b2*tt);
if key==3| key==4
a3=PID(5,ii+iC); b3=PID(6,ii+iC);
Td=a3*T*tt^b3;
end
else,
Kc=vars(5); Tc=vars(6); k=vars(7);
switch key
case 2,
Kp=0.361*Kc;Ti=0.083*(1.935*k+1)*Tc;
case 3,
Kp=0.509*Kc; Td=0.125*Tc;
Ti=0.051*(3.302*k+1)*Tc;
case 4,
Kp=(4.437*k-1.587)/(8.024*k-1.435)*Kc;
Ti=0.037*(5.89*k+1)*Tc; Td=0.112*Tc;
end
end
[Gc,H]=writepid(Kp,Ti,Td,N,key);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -