📄 pid_hv_tune.m
字号:
function [Kp,Ti,Td,key,lb]=pid_hv_tune(key1,key2,vars)
key=0; Kp=[]; Ti=[]; Td=[]; lb=[];
K=vars(1); L=vars(2); T=vars(3);
switch key1
case 1
switch key2
case 1
if L/T<0.2
x=[0.2:0.1:2.0, 2.2:0.2:3.4];
a0=[0.68,0.70,0.72,0.74,0.76,0.79,0.81,0.84,0.87,0.90,0.93,0.96,0.99,1.02,1.06,1.09,1.13,1.17,1.20,1.28,1.36,1.45,1.53,1.62,1.71,1.81];
b0=[7.14,4.76,3.70,3.03,2.50,2.17,1.92,1.75,1.60,1.49,1.41,1.32,1.25,1.19,1.14,1.10,1.06,1.03,1.00,0.95,0.91,0.88,0.85,0.83,0.81,0.80];
a=interp1(x,a0,L/T,'spline');
b=interp1(x,b0,L/T,'spline');
Kp=a*T/(K*L); Ti=b*L;
key=3;lb=0.2
elseif 0.2<=L/T&L/T<3.5
x=[0.2:0.1:2.0, 2.2:0.2:3.4];
a0=[0.68,0.70,0.72,0.74,0.76,0.79,0.81,0.84,0.87,0.90,0.93,0.96,0.99,1.02,1.06,1.09,1.13,1.17,1.20,1.28,1.36,1.45,1.53,1.62,1.71,1.81];
b0=[7.14,4.76,3.70,3.03,2.50,2.17,1.92,1.75,1.60,1.49,1.41,1.32,1.25,1.19,1.14,1.10,1.06,1.03,1.00,0.95,0.91,0.88,0.85,0.83,0.81,0.80];
a=interp1(x,a0,L/T,'spline');
b=interp1(x,b0,L/T,'spline');
Kp=a*T/(K*L); Ti=b*L;
key=1;
else
a=0.5*L/T+0.1; b=L/(1.6*L-1.2*T);
Kp=a*T/(K*L); Ti=b*L;
key=1;
end
case 2
if L/T>=0.2
x=[0.2 0.3 0.5 0.7 1.0 1.5 2.0 3.0 5.0];
a0=[0.80 0.83 0.89 0.96 1.07 1.26 1.46 1.89 2.75];
b0=[7.14 5.00 3.23 2.44 1.85 1.41 1.18 0.95 0.81];
a=interp1(x,a0,L/T,'spline');
b=interp1(x,b0,L/T,'spline');
Kp=a*T/(K*L);Ti=b*L;
key=1;
else
Kp=T*(0.74+0.3*L/T)/(K*L);Ti=1.43*T;
key=1;
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -