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

📄 pid.m

📁 增量式PID算法的matlab仿真程序
💻 M
字号:
%delay:3拍,速度PID加入考虑上拍速度环节,上一拍速度的影响体现在系数K上
clc;
clear;
SetPoint = 100;
StartPoint = 0;
Kp = 0.1;
Ki = 0.4;
Kd = 0.5;
K = 0.4;
v = 0;
e = 0;
e_1 = 0;
e_2 = 0;
e_3 = 0;
e_4 = 0;
e_5 = 0;
CurrentPoint(1) = 0;
SimTimes = 1000;
i=1;
figure(1);
while (i<=SimTimes)
    SetPoint(i) = 100*cos(i/100);
    e = SetPoint(i) - CurrentPoint(i);
    ev(i) = e;
    d = Kp*(e_3-e_4)+Ki*e_3+Kd*(e_3-2*e_4+e_5)+K*v;%add delay
    %d = Kp*(e-e_1)+Ki*e+Kd*(e-2*e_1+e_2);
    if d>5
        d=5;
    end;
    if d<-5
        d=-5;
    end;
    v = d;
    CurrentPoint(i+1) = CurrentPoint(i) + d;
    e_1 = e;
    e_2 = e_1;
    e_3 = e_2;
    e_4 = e_3;
    e_5 = e_4;
    i = i+1; 
end
i=1;
 while(i<=SimTimes)
   subplot(121)
   plot(i,SetPoint(i),'r.',i,CurrentPoint(i),'b.');
   hold on;
   subplot(122)
   plot(i,ev(i),'g.');
   hold on;
   i = i+1;
 end;

⌨️ 快捷键说明

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