⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pid_ah_tune.m

📁 控制系统计算机辅助设计——MATLAB语言与应用(源代码)
💻 M
字号:
function [Kp,Ti,Td,key,lb]=pid_ah_tune(key1,key2,vars) 
key=0; Kp=[]; Ti=[]; Td=[]; lb=[];
K=vars(1); L=vars(2); T=vars(3);id=vars(4);
switch key1
    case 1
        switch key2
            case 1
                switch id
                    case 1
                        Kp=0.63*T/(K*L);Ti=3.2*L;
                        key=1;
                    case 2
                        Kp=0.7*T/(K*L);Ti=2.3*L;
                        key=1;
                end
            case 7
                t=L/(L+T);
                switch id
                    case 1
                         Kp=0.29*T*exp(3.7*t^2-2.7*t)/(K*L);Ti=8.9*L*exp(3.0*t^2-6.6*t);
                         if 0.14<=L/T&L/T<=5.5
                             key=1;
                         elseif L/T>5.5
                             key=2;lb=5.5;
                         else
                             key=3;lb=0.14;
                         end
                    case 2
                         Kp=0.78*exp(5.7*t^2-4.1*t)*T/(K*L);Ti=8.9*L*exp(3.0*t^2-6.6*t);
                         if 0.14<=L/T&L/T<=5.5
                             key=1;
                         elseif L/T>5.5
                             key=2;lb=5.5;
                         else
                             key=3;lb=0.14;
                         end
                    case 3
                        Kp=0.4*T/(K*L);Ti=0.7*T;
                        if 0.1<=L/T&L/T<=2
                            key=1;
                        elseif L/T>2
                             key=2;lb=2;
                        else
                             key=3;lb=0.1;
                        end
                end
        end
    case 2
        switch key2
            case 1
                Kp=0.94*T/(K*L);Ti=2*L;Td=0.5*L;
                key=1;
            case 7
                t=L/(L+T);
                    switch id
                        case 1
                            Kp=3.8*T*exp(7.3*t^2-8.4*t)/(K*L);Ti=5.2*L*exp(-1.4*t^2-2.5*t);Td=0.89*L*exp(-4.1*t^2-0.37*t);
                        case 2
                            Kp=8.4*T*exp(9.8*t^2-9.6*t)/(K*L);Ti=3.2*L*exp(-0.93*t^2-1.5*t);Td=0.86*L*exp(-0.44*t^2-1.9*t);
                    end
                 if 0.14<=L/T&L/T<=5.5
                      key=1;
                 elseif L/T>5.5
                      key=2;lb=5.5;
                 else
                      key=3;lb=0.14;
                 end
          end
end

    

⌨️ 快捷键说明

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