Matlab模拟PID方法-推荐


增量式PID控制算法,具体算法公式见网上,此处不再科普,只是给出个模拟代码,可以调整系数观察输出的模拟曲线,达到直观的简单调整效果。比那个pid诗歌来的更直接。
function [out_pwm] = sim_inc_pid()

mea_value = [2,3,4,3,2,3,4,2,4,3,3,3,2,3,1,0,-1,-3,-50,-30,-3,-2,-3,-2,-1,-3,-2,-1,0,3, 50, 5 ,3,2,1,2,3,2,4,3,5];   % 模拟数据

target_value = 5;

errd = target_value - abs(mea_value)

out_pwm = zeros(1,length(errd)-2);

KP=5;
KI=2;    
KD=10;    

out_pwm(2) = 0;

for i= 3 : length(errd)
   
    out_pwm(i) = out_pwm(i-1) + KP * (errd(i) -errd(i-1)) + KI * errd(i) + KD * ( errd(i) - 2 * errd(i-1) + errd(i-2)) ; 
    
    if out_pwm(i)<0 
        out_pwm(i) = 0 ;
    end
    
    if out_pwm(i)> 600  out_pwm(i) = 600 ;
    end
    
end

hold on

plot(out_pwm)

end
点击数: 955   打印  添加到收藏   发布时间: 2017-09-15




上一篇:Matlab强制拟合函数过零方法
下一篇:滤波函数增强版





» 相关内容
  中位滤波算法-net版VB
  麦克风的负DB详细解释
  MD5加密的一段代码
  滤波函数增强版
  Matlab模拟PID方法-推荐
  Matlab强制拟合函数过零方法
  清空USB FX2LP FIFO缓冲方法
  Savgol萨维基购耳滤波方法-MAT..
  CRC8校验函数通用版VC
  VS2008中修改VC使用的目标.net..
  Verilog实现clk计数器的rst边..
  Chart1控件坐标轴范围设定和恢..
  一个二维码生成页面-简洁实用
  AD7656六通道16位逐次逼近型25..
  TTL和232/485电平不分导致串口..