当前位置: 首页 > news >正文

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.001
 
Sample time: 0.001 seconds
Discrete-time PIDF controller in standard form

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

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

谢大家!!

相关文章:

  • 【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析
  • 嵌入式NuttX RTOS面试题及参考答案
  • Restormer: Efficient Transformer for High-Resolution Image Restoration
  • 力扣热题 100:贪心算法专题经典题解析
  • LabVIEW非线性拟合实现正弦波参数提取
  • 在MATLAB中实现PID控制仿真
  • 模型训练和推理
  • mysql8安装后没有自动生成登录密码
  • frameworks 之屏幕旋转
  • 【从零开始学习计算机科学】操作系统(五)处理器调度
  • JAVASE(五)
  • 垃圾收集算法与收集器
  • vue2:表单的动态校验和静态校验
  • 前端开发中的常见设计模式:全面解析与实践
  • Linux Shell 脚本编程极简入门指南
  • 服务器数据恢复—预防服务器故障,搞定服务器故障数据恢复
  • BT-Basic函数之首字母D
  • git commit messege 模板设置 (规范化管理git)
  • Python学习第十二天
  • 大模型在甲状腺癌诊疗全流程预测及方案制定中的应用研究
  • 鸿蒙概念股强势上涨,鸿蒙电脑本月正式发布,生态链即将补全
  • 上海虹桥高铁站拦门事件反转,谁在带偏网友?
  • 胡塞武装称以色列所有机场均为其打击目标
  • 观察|“离境退税”撬动上海“五一”假期入境消费
  • 长线游、县域游、主题游等持续升温,假期文旅市场供需两旺
  • 苏丹外交部:苏丹西部一城市约300名平民遭杀害