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

📄 pidsim.m

📁 Pid自整定程序 输入 num: 控制对象传函分子向量 den 控制对象传函分母向量 time:仿真时间 interval:仿真时间间隔
💻 M
字号:
%==========================================================================
% 函数作用: 工业对象PID控制器选择及仿真
% 输入参数: key 控制类型, num 传递函数分子多项式 den 传函分母多项式
% 输出参数:
% 传递函数类:G0(原对象传函),Gc(控制器传函),G(单位负反馈总传函)
% 控制器参数:Kp(比例系数)Ti(积分时间) Td(微分时间)
% 广义对象参数:K(增益) T(惯性时间) L(滞后时间)G(s)=K*exp(-L*s)/(1+T*s) 
% 阶跃仿真结果:t(仿真时间) y0(对象没有控制作用阶跃输出) yc(加入控制后阶跃输出)
% 函数原形 [G0,Gc,G,Kp,Ti,Td,K,T,L,t,y0,yc] = pidsim(key,num,den)
%==========================================================================
function [G0,Gc,G,Kp,Ti,Td,K,T,L,t,y0,yc]=pidsim(key,num,den,time,interval)
% 首先获取原系统
G0 = tf(num,den);
%调用getmod()得到广义对象参数
[K,L,T] = getfod(G0);
%调用getpid()得到pid自整定结果
vars(1) = K;
vars(2) = L;
vars(3) = T;
vars(4) = 10;
[Gc,Kp,Ti,Td] = getpid(key,vars);
%仿真结果参数
G   = feedback(G0*Gc,1);
G1 = feedback(G0,1);
t = 0:interval:time;
y0 = step(G1,t);
yc = step(G,t);
plot(t,y0,t,yc,'Linewidth',3);
grid on;
xlabel('仿真时间(sec)');
ylabel('系统输出(阶跃响应)');
legend('y0-t(控制前) ','yc-t(控制后)');
%print(gcf,'-djpeg','C:\test4');
end


⌨️ 快捷键说明

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