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
点击数: 823   打印  添加到收藏   发布时间: 2017-09-15




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





» 相关内容
  VS2008中修改VC使用的目标.net..
  Verilog实现clk计数器的rst边..
  Chart1控件坐标轴范围设定和恢..
  一个二维码生成页面-简洁实用
  AD7656六通道16位逐次逼近型25..
  TTL和232/485电平不分导致串口..
  .net程序中给picturebox增加滚..
  Slave FIFO时TD_init函数常用..
  Android手机App内嵌入web交互..
  薏米仁的功效补气益脾除湿
  vb.net如何杀死目标进程win7-x..
  Try_Catch_Throw的使用方法
  .Net多线程更新UI或窗体控件内..
  单电源光电二极管接法-等效零..
  运放+达林顿管的恒流电路工作..