概述
PID控制系统阶跃响应图-参数整定过程,matlab代码真实可用
点个赞呗
clear all
clc
close all
PID=[0.5,0.05,0.2; %1
0.6,0.05,0; %2
0.6,0,0.2; %3
0.3,0.05,0.2; %4
];%初始化PID参数
for pid=1:1:4
ts=0.002; %采样时间=0.005s
sys=tf(0.998,[0.021,1]); %建立被控对象传递函数
dsys=c2d(sys,ts,'z'); %离散化
[num,den]=tfdata(dsys,'v');
e_1=0; %前一时刻的偏差
Ee=0; %累积偏差
u_1=0.0; %前一时刻的控制量
y_1=0; %前一时刻的输出
%PID参数
kp=PID(pid,1);
ki=PID(pid,2);
kd=PID(pid,3);
u=zeros(1,1000);
time=zeros(1,1000);
for k=1:1:1000
time(k)=k*ts; %时间参数
r(k)=30; %给定量
y(k)=-1*den(2)*y_1+num(2)*u_1+num(1)*u(k);
e(k)=r(k)-y(k); %偏差
u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1);
Ee=Ee+e(k);
u_1=u(k);
y_1=y(k);
e_1=e(k);
end
hold on;
p2=plot(time,y,'LineWidth',5);xlim([0,0.3]);ylim([0,35])
xlabel('时间t/s','FontSize',9,'FontWeight','bold','FontName','宋体');
ylabel('输出量','FontSize',9,'FontName','宋体','FontWeight','bold');
end
grid on
p1=plot(time,r,'-.','LineWidth',5);xlim([0,0.25]);ylim([0,35])
legend('1','2','3','4','设定值')
legend('Kp=0.5,Ti=0.05,Td=0.2','Kp=0.6,Ti=0.05,Td=0','Kp=0.6,Ti=0,Td=0.2','Kp=0.3,Ti=0.05,Td=0.2','设定值')
% title('PID控制系统阶跃响应图-参数整定过程')
PID是控制中常用的算法,非常好用!
点个赞呗
最后
以上就是想人陪雨为你收集整理的PID控制系统阶跃响应图-参数整定过程,matlab代码真实可用的全部内容,希望文章能够帮你解决PID控制系统阶跃响应图-参数整定过程,matlab代码真实可用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复