欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > MATLAB 控制系统设计与仿真 - 24

MATLAB 控制系统设计与仿真 - 24

2025/3/15 13:25:52 来源:https://blog.csdn.net/weixin_46185665/article/details/146173743  浏览:    关键词:MATLAB 控制系统设计与仿真 - 24

PID 控制器分析- 控制器的形式

连续控制器的结构:

G(s)=K_p+\frac{K_i}{s}+\frac{K_ds}{T_fs+1}

T_f为滤波时间常数,这类PID控制器在MATLAB系统控制工具箱称为并联PID控制器,可由MATLAB提供的pid函数直接输入,格式为:

G_c(s)=pid(K_p,K_i,K_d,Tf);

其他类型的控制器也可以由该函数直接输入,例如令K_i=0,我们可以得到PD控制器

例-1

MATLAB程序

clear all;clc;
num=6;
den=[1 5];
sys=tf(num,den);
step(sys);
hold on;
Gc=pid(50,200,200,20);
sys_cl=feedback(Gc*sys,1);
step(sys_cl);
legend('开环阶跃响应','闭环阶跃响应')

程序运行结果:

标准PID控制器

标准PID控制器的形式为:

G_c(s)=k_p\left \{ 1+\frac{1}{T_1s}+\frac{T_ds}{1+\frac{T_d}{N}s}\right \}

在一般实际中,N通常取10就可以取得很好的逼近微分效果。该控制器可由MATLAB函数

G_c=pidstd(K_p,T_i,T_d,N)直接输入

离散PID控制器

离散PID控制器的格式为:

u_k=K_pe_k+K_iT\sum_{m=0}^{k}e_m+\frac{K_d}{T}(e_k-e_{k-1})

对其进行z变换,可知离散PID控制器可以写成:

G_c(z)=K_p+\frac{K_iTz}{z-1}+\frac{T_d(z-1)}{Tz}

********************对于积分环节的z变换,做一下补充*************************************************

假设 y(k)=K_iT\sum_{m=0}^{k}e_m

y(k+1)=K_iT\sum_{m=0}^{k+1}e_m

y(k+1)=K_iT\sum_{m=0}^{k}e_m+K_iTe(k+1)

y(k+1)=y(k)+K_iTe(k+1)

对上式做Z变换:

Y(z)=\frac{K_iTz}{z-1}e(z)

********************************************************************************************************

对于离散系统的PID控制器,我们也可以通过pid和pidstd函数输入,但是我们要加上采样时间T。其调用格式为:

G_c(z)=pidstd(K_p,K_i,K_d,N,T)

例-2

MATLAB程序如下:

clear all;clc;
Gc=pidstd(10,20,30,10,0.001);
Gc

程序运行结果如下:

Gc =1       Ts                 1       Kp * (1 + ---- * ------ + Td * ---------------)Ti      z-1         (Td/N)+Ts/(z-1)with Kp = 10, Ti = 20, Td = 30, N = 10, Ts = 0.001Sample time: 0.001 seconds
Discrete-time PIDF controller in standard form

最后,欢迎大家有问题给我留言。

另外欢迎小伙伴们点赞转发加关注

谢大家!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词