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

深入探索增量型PID控制器的多种优化算法

带死区、抗积分饱和、梯形积分、变积分算法以及不完全微分算法的增量型PID控制器。

在自动控制领域,PID控制器无疑是应用最为广泛的控制算法之一。而增量型PID控制器更是因其独特的优势,在许多实时控制系统中大放异彩。今天咱们就来唠唠带死区、抗积分饱和、梯形积分、变积分算法以及不完全微分算法这些为增量型PID控制器“添砖加瓦”的优化算法。

一、增量型PID控制器基础

增量型PID控制器的控制输出是根据偏差的变化量来计算的,相比于位置型PID,它不需要累积历史偏差,计算量相对较小,在响应速度上有一定优势。其基本公式为:

# 假设当前时刻为k,上一时刻为k-1,上上时刻为k-2 # 给定值为setpoint,反馈值为feedback # Kp为比例系数,Ki为积分系数,Kd为微分系数 # 偏差 error_k = setpoint - feedback # 增量型PID控制律 u_k = Kp * (error_k - error_k_1) + Ki * error_k + Kd * (error_k - 2 * error_k_1 + error_k_2)

在这个公式里,Kp(errork - errork1)是比例部分,反映了偏差的变化率;Kierrork是积分部分,用于消除稳态误差;Kd(errork - 2errork1 + errork_2)是微分部分,能够预测偏差变化趋势,提前进行控制。

二、带死区的增量型PID控制器

在某些控制系统中,当偏差很小时,系统可能不需要进行精确控制,或者频繁调节反而会带来负面影响,这时候带死区的PID就派上用场了。

deadband = 0.5 # 设定死区范围 if abs(error_k) <= deadband: u_k = 0 else: u_k = Kp * (error_k - error_k_1) + Ki * error_k + Kd * (error_k - 2 * error_k_1 + error_k_2)

这里通过设定一个deadband,当偏差errork的绝对值小于等于这个死区范围时,控制输出uk直接设为0。这就避免了在偏差较小时不必要的控制动作,比如在一些温度控制场景中,当温度接近设定值时,在死区内不进行加热或制冷设备的调节,可有效延长设备寿命。

三、抗积分饱和的增量型PID控制器

积分饱和现象是指在系统存在较大偏差时,积分项会不断累积,导致控制量超出正常范围,使系统出现超调甚至振荡。抗积分饱和算法就是要解决这个问题。

# 设定控制量的上下限 u_max = 100 u_min = -100 # 先计算积分项 integral = integral + error_k if u_k_previous > u_max: if error_k > 0: integral = integral - error_k elif u_k_previous < u_min: if error_k < 0: integral = integral - error_k u_k = Kp * (error_k - error_k_1) + Ki * integral + Kd * (error_k - 2 * error_k_1 + error_k_2) u_k = max(u_min, min(u_max, u_k))

这里先计算积分项integral,然后根据上一时刻控制量ukprevious是否超出上下限来调整积分项。如果超出上限且当前偏差errork大于0,说明积分项累积过多,需要减去当前偏差,反之亦然。最后再将计算出的控制量uk限制在设定的上下限范围内,从而有效避免积分饱和问题。

四、梯形积分的增量型PID控制器

传统的PID积分采用矩形积分,而梯形积分可以提高积分的精度。

# 梯形积分 integral = integral + (error_k + error_k_1) / 2 u_k = Kp * (error_k - error_k_1) + Ki * integral + Kd * (error_k - 2 * error_k_1 + error_k_2)

与矩形积分相比,梯形积分利用当前偏差errork和上一时刻偏差errork_1的平均值来更新积分项integral。这样在积分过程中,对偏差的近似更加准确,尤其在偏差变化较大时,能使控制器的响应更加平滑和精确。

五、变积分算法的增量型PID控制器

变积分算法是根据偏差的大小来调整积分系数,使得在偏差大时,积分作用减弱,避免积分饱和;偏差小时,积分作用增强,消除稳态误差。

# 根据偏差大小动态调整积分系数 if abs(error_k) > big_error_threshold: Ki = small_Ki else: Ki = big_Ki u_k = Kp * (error_k - error_k_1) + Ki * error_k + Kd * (error_k - 2 * error_k_1 + error_k_2)

这里通过设定一个偏差阈值bigerrorthreshold,当偏差errork的绝对值大于该阈值时,采用较小的积分系数smallKi;反之,采用较大的积分系数big_Ki。这种自适应的调整方式让控制器在不同偏差情况下都能有较好的性能表现。

六、不完全微分算法的增量型PID控制器

传统的微分环节对噪声非常敏感,不完全微分算法则对此进行了改进。

# 不完全微分算法 alpha = 0.5 # 平滑系数 d_error_k = alpha * d_error_k_1 + (1 - alpha) * (error_k - error_k_1) u_k = Kp * (error_k - error_k_1) + Ki * error_k + Kd * d_error_k

通过引入一个平滑系数alpha,不完全微分算法对微分信号derrork进行平滑处理。它结合了上一时刻的微分信号derrork1和当前时刻偏差的变化量(errork - errork1),这样既保留了微分环节预测偏差变化趋势的功能,又降低了对噪声的敏感度,使系统更加稳定。

总之,这些优化算法从不同角度对增量型PID控制器进行了改进,让它在复杂多变的控制场景中能够更加游刃有余,为各种自动化控制系统的精准控制提供了有力支持。希望通过今天的分享,大家对增量型PID控制器及其优化算法有更深入的理解和认识,在实际项目中能灵活运用这些知识来打造更优秀的控制系统。

http://www.cnnetsun.cn/news/443627.html

相关文章:

  • 实例控制台设置自动重启避免GLM-4.6V-Flash-WEB服务中断
  • Docker镜像源替换为中国区节点显著提升GLM-4.6V-Flash-WEB拉取效率
  • 掌握这3个Dify调试工具隐藏功能,团队效率翻倍不是梦
  • Jupyter Notebook导出GLM-4.6V-Flash-WEB推理流程为PDF文档
  • Jupyter Notebook魔法命令调试GLM-4.6V-Flash-WEB性能瓶颈
  • Git Commit GPG签名保障GLM-4.6V-Flash-WEB贡献者身份真实
  • 智谱新模型GLM-4.6V-Flash-WEB实战:快速部署与网页推理操作手册
  • HTML5 Video标签结合GLM-4.6V-Flash-WEB实现实时视频帧分析
  • 最近在做一个关于电-气-热综合能源系统耦合优化调度的项目,感觉挺有意思的,所以想写点东西分享一下
  • Dify access_token配置最佳实践(资深架构师亲授配置秘诀)
  • Dify响应类型配置进阶之路,通往高可用系统的秘密武器
  • 【效率提升300%】:Dify响应类型自动化配置策略揭秘
  • “结构没搭完“你的RAG就废了!7层架构图带你从入门到大神,小白程序员也能秒懂大模型检索增强生成!
  • 波士顿动力Atlas实战测试落地!暴露四大问题,戳中全球人形机器人行业的共同痛点!
  • 手把手教你用 Spring Boot + Vue 搭建个人博客系统(性能优化与 SEO 篇)
  • HuggingFace镜像网站同步上线GLM-4.6V-Flash-WEB支持,下载提速3倍
  • 深度学习计算机毕设之基于人工智能CNN卷积神经网络对辣椒类别识别
  • 基于微信小程序的奶茶点单系统(毕设源码+文档)
  • Lovable Cloud 与 Supabase 强强联合:AI 应用构建工具的默认平台
  • 基于微信小程序的篮球场馆预订系统毕设源码+文档+讲解视频
  • docker快速部署jenkins
  • 微PE官网硬盘克隆功能备份GLM服务器系统
  • ComfyUI自定义CSS美化GLM-4.6V-Flash-WEB操作界面
  • 收藏!2025开年AI狂潮下,程序员的生存与转型:大模型是危机还是机遇?
  • JavaScript闭包保持GLM-4.6V-Flash-WEB上下文环境
  • 揭秘Dify处理超大Excel文件的底层逻辑:99%的人都忽略的关键技巧
  • 【计算机毕业设计案例】基于CNN卷积神经网络的11种花卉识别卷神经网络小程序-web和pyqt
  • 【Dify Excel大文件处理终极指南】:3步实现高效数据提取与性能优化
  • DisM++软件管理批量卸载无用程序释放GLM运行内存
  • Markdown目录生成让GLM技术文档结构更清晰