inmin01.m

来自「使用最小积分整定计算PID系数的例程」· M 代码 · 共 57 行

M
57
字号
function [Gc,Kp,Ti,Td]= inmin01(PID,vars)
% 使用积分最小准则计算PID参数
% usage :[Gc,Kp,Ti,Td]= inmin01(PID,vars);
% 其中PID = 1 2 3 分别对应三种调节方式 vars为一阶惯性环境
% 模型的K T \tau 参数

% Gc 返回矫正器传函 

K = vars(1); T = vars(2); tau = vars(3); iC = vars(4);
Kp = []; Ti = []; Td = [];
if PID ==1,
    ABtab = [ 0.902,1.414,0.904;
            -0.985,-0.917,-1.084];
elseif PID == 2,
    ABtab =[0/984,1.305,0.859;
        -0.986, -0.959,-0.977;
        0.608,0.492,0.674;
        -0.707,-0.739,-0.680];
elseif PID == 3,
    ABtab =[ 1.435,1.495,1.375;
        -0.921,-0.945,-0.947;
        0.878,1.101,0.842;
        -0.749,-0.771,-0.738;
        0.482,0.560,0.381;
        1.137,1.006,0.995];
end
ii = 0;
tt = tau /T;
if PID == 1,
    a1 = ABtab(1,ii+iC);
    b1 = ABtab(2,ii+iC);
    Kp = (a1*(tt^b1))/K;
elseif PID ==2,
    a1 = ABtab(1,ii+iC);b1 = ABtab(2,ii+iC);
    a2 = ABtab(3,ii+iC);b2 = ABtab(4,ii+iC);
    Kp = (a1*(tt^b1))/K;
    Ti = T/(a2*(tt^b2));
elseif PID ==3,
    a1 = ABtab(1,ii+iC);b1 = ABtab(2,ii+iC);
    a2 = ABtab(3,ii+iC);b2 = ABtab(4,ii+iC);
    a3 = ABtab(5,ii+iC);b3 = ABtab(6,ii+iC);
    Kp = (a1*(tt^b1))/K;
    Ti = T/(a2*(tt^b2));
    Td = T*a3*(tt^b3);
end
if PID ==1
    Gc = Kp;
elseif PID ==2
    nn = [Kp*Ti Kp];
    dd = [Ti 0];
    Gc = tf(nn,dd);
elseif PID ==3
    nn = [Kp*Ti*Td Kp*Ti Kp];
    dd = [Ti 0];
    Gc = tf(nn,dd);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?