✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
⛄ 内容介绍
增量式PID控制较常规PID更具优势,但有关其参数整定的方法很少,针对这种问题,介绍了增量式PID算法的原理及特点,基于MATLAB平台,模拟扩充临界比例度法对增量式PID参数的整定方法,整定过程简单直观,控制效果明显改善,证实了该方法对增量式PID有较好的整定效果.
⛄ 完整代码
clear all;close all;clc
%% 获取离散化模型
t_s = 0.001; %采样时间
T_f = 1; %仿真时间
Step_simulate=T_f/t_s;
sys = tf([200],[1 50 1]);
%% 绘制传递函数的单位阶跃响应曲线
t=0:0.01:750;
figure(1);
c=step(sys,t);
plot(t,c);
%% 进行传递函数的离散化
dsys = c2d(sys,t_s,'z');
[num,den]=tfdata(dsys,'v'); %num为离散传递函数的分子系数矩阵,den为离散传递函数的分母系数矩阵
%% 设置增量式PID的校正参数
k_p=10;
k_i=0.12;
k_d=5;
%% 设置输入信号数学表达式
y_d = ones(1,Step_simulate); %输入信号为阶跃信号
%% 增量式PID控制器算法模块
y = zeros(1,Step_simulate); %初始化输出信号
y_feedback=0; %反馈回来的信号,y_feedback=y
error = 0; %信号差值
erro_1 = 0; %上一时刻信号差值
erro_2 = 0; %上上一时刻信号差值
y_1=0; %上一时刻的输出
y_2=0; %上一上一时刻的输出
pi_out=0; %pid控制器的输出,注意不是系统输出
pi_out_1=0; %上一时刻PID控制器的输出,注意不是系统输出
pi_out_2=0; %上一上一时刻PID控制器的输出,注意不是系统输出
pi_out = 0; %初始的PID控制输出值
delta_pi_out = 0; %初始的PID控制输出增量值
for k=1:1:Step_simulate
time(k)=k*t_s; %存储时间,用于后面画图
error=y_d(k)-y_feedback; %控制器误差
%增量式PID的算法表达式
delta_pi_out=k_p*(error-erro_1)+k_i*error+k_d*(error-2*erro_1+erro_2);
pi_out =pi_out+delta_pi_out ;
%增量式PID的算法表达式
%对PID控制器的输出进行限幅
if pi_out>=10
pi_out =10;
end
if pi_out<=-10
pi_out =-10;
end
%y_1 上一时刻的输出
%y_2 上两时刻的输出
y(k)=-den(2)*y_1-den(3)*y_2+num(2)* pi_out_1+num(3)*pi_out_2;%控制对象
y_feedback=y(k);
%更新系统输出状态
y_2=y_1;
y_1=y(k);
%更新pid输出状态
pi_out_2=pi_out_1;
pi_out_1=pi_out;
%更新信号差值状态
erro_2=erro_1;
erro_1=error;
end
%画图
figure(2);
subplot(2,1,1);
plot(time,y_d,'b*',time,y,'go');
xlabel('time');ylabel('幅值');legend('期望输出','实际输出');
subplot(2,1,2);
plot(time,y_d-y);
xlabel('time');ylabel('幅值');legend('误差');
⛄ 运行结果
⛄ 参考文献
[1] 杨龙. 基于位置式PID算法的压力控制设计及MATLAB仿真[J]. 电子技术与软件工程, 2018(24):1.
[2] 王俊伟, 张帅, 温荣. MATLAB的PID算法在温室大棚中的温湿度串级控制中的应用研究[J]. 价值工程, 2016, 35(5):2.文章来源:https://www.toymoban.com/news/detail-628814.html
[3] 曾豪勇, 周思柱, 易文君. 基于MATLAB的增量式PID参数整定[J]. 工业控制计算机, 2014, 000(006):69-70.文章来源地址https://www.toymoban.com/news/detail-628814.html
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料
到了这里,关于【PID】基于Matlab实现增量式PID算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!