答应为实验室的同学做一次简单的关于串级PID的介绍,主要从感性认识串级PID的结构与作用切入,因此笔者尽量避免引入公式及其推导,因为这些推导在各类控制类书籍与相关论文中均有介绍,我就不再班门弄斧了。

本文假设读者已有单级PID控制的基础,对于PID的原理不做描述。


假设我们需要解决这样一个问题:

控制小车从当走到红色标签位置,设小车实时位置为x0(t)

如果我们使用单级PID,运动框图应该如下图所示:

误差e来自小车当前位置与目标位置的差值,即 e = x1 - x0;

误差e经过PID算法得到输出小车给定速度v;

小车给定速度v经过建立的电机小车模型传递函数(实际上是一个积分器,对速度积分即可得到位移),得到小车的当前位置x0;

选取一组合适的PID参数,我们就可以很好的实现这个任务。根据不同的要求,我们可以找到不同的PID参数以实现快速收敛控制,或者无超调控制。

但是现在考虑这样一个情况:

小车所在的路面与水平面存在一个非零的夹角θ:

现在如果我们还拿之前的PID参数去解决这个问题,我们可能就会发现小车的运行情况没有之前那么理想了,可能会出现但不限于收敛速度变慢无超调控制的PID参数出现超调小车在目的地附近振荡等情况。

这是为什么呢,我们仔细看一下之前框图里的执行环节Motors-Car,把它打开看一下:

我们发现,真正的积分器环节是Car,而积分器环节Car的真正输入是v';

v恒等于v'吗?换言之,我叫小车电机以v的速度运行,他会立刻响应并保持在这一速度吗?答案显然是否定的:

v'与v不完全一致,这就是原有的单级PID控制算法出现问题的原因,我们实际供给电机的是电压,一定的电压对应一定的转速v,然而电机转速v不是关于电压的单值函数电机转速v受到很多条件的影响,鉴于电机模型复杂且对于不同种类的电机模型也不尽相似,我们只讨论其中的另一个主要变量:负载转矩。当小车启动制动,走上坡道都会造成负载转矩的变化,从而进一步影响电机转速v

如何解决?我们可以对电机Motors环节做一个转速闭环:

这样就可以改善这个问题(注意是改善,不是解决!)

有了这个闭环,就可以让电机的实际转速v'快速的跟踪给定速度v,至于有多快,还是要看电机模型和PID参数,但是一定比之前开环控制的效果要好。

我们将这个改良的执行环节 Improved Motors-Car 替换原先单级PID运动框图中的执行环节Motors-Car,就可以得到这样一个串级PID的结构框图了:

如此操作,在倾斜的坡道上,原来的参数也能较好的适应了。我们来看这个结构框图,里面有两个反馈箭头,也就形成了两个闭环,一个环在内,一个环在外。

其中转速闭环称为串级PID的内环位置闭环称为串级PID的外环,现在去想象一下小车实际运行的情况,是不是能比较好的理解课本上 内环先稳定,外环后稳定的原因了?


笔者希望这篇博文能够起到抛砖引玉的作用,让各位读者在之后系统学习串级PID的推导时更好的理解串级PID的思想。如果您觉得这篇博文有帮助,请您点下右上角的点赞,谢谢!

【串级PID】浅谈串级PID作用及意义——快速理解串级PID结构优势(附图)相关推荐

  1. 浅谈blackfin537处理器中sport口时分复用的理解

    浅谈blackfin537处理器中sport口时分复用的理解 基于自动缓冲DMA模式下的Sport口的多通道操作   农民伯伯 zhangtaolaosan3@126.com 1, 基础知识 在给出例 ...

  2. 浅谈Attention机制的作用

    浅谈注意力机制的作用 前言 什么是注意力机制 空间注意力 对于时间步的注意力机制 1.数据集的制作 2.建立注意力模型 3.建立整体神经网络 4.完整代码 5.实验效果 通道注意力机制 前言 Atte ...

  3. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构

    浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...

  4. python去水印如何制作mask_浅谈图像处理中掩膜(mask)的意义

    刚开始涉及到图像处理的时候,在opencv等库中总会看到mask这么一个参数,非常的不理解,在查询一系列资料之后,写下它们,以供翻阅. 什么是掩膜(mask) 数字图像处理中的掩膜的概念是借鉴于PCB ...

  5. 浅谈HTTP协议的作用过程

    浅谈http协议的作用过程 引言 正文 一.HTTP定义 二.HTTP完整的请求过程 域名解析 与服务器建立连接 发送http请求给服务器 服务器返回数据给客户端 客户端与服务器端断开通信 结束语 引 ...

  6. java的向下转型_浅谈Java向下转型的意义

    一开始学习 Java 时不重视向下转型.一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不到用向下转型. 其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向 ...

  7. 浅谈计算机数据库技术的应用,浅谈计算机数据库技术的应用意义.doc

    浅谈计算机数据库技术的应用意义.doc 浅谈计算机数据库技术的应用意义 [摘 要]随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络 ...

  8. 浅谈对主成分分析(PCA)算法的理解

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  9. 浅谈我对DDD领域驱动设计的理解

    从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品 ...

最新文章

  1. logback property 默认值_看完这篇文章还不会给spring boot配置logback,请你吃瓜
  2. mysql 根据字段映射
  3. SAP Spartacus cms service取完page信息后的回调callback
  4. 系统滚动条实现的NUD控件Unusable版
  5. vue 获取元素高度
  6. 理解 Delphi 的类(十) - 深入方法[2] - 参数分割
  7. 【Hive】日期函数
  8. 大数据将植物学研究带入新境界
  9. Java性能优化全攻略
  10. 基于FlexRay总线的汽车冗余线控转向系统的可靠性(FEMA)分析
  11. 常见的一些反爬虫策略破解方式-Java网络爬虫系统性学习与实战系列(11)
  12. 数据库实验五-数据库设计实验
  13. flask 数据库迁移migration
  14. JS学习之路系列总结四象阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
  15. 怎么简单快速的将多个中文文件转换成英文的名称
  16. 伪造微信截图工具(改)
  17. python课程介绍-Python简介
  18. 安装Cartopy报错 Proj4 version 0.0.0 is installed, but cartopy requir
  19. l流程图平行四边形_关于写作那些事之快速上手Mermaid流程图
  20. The located assembly’s manifest definition does not match the assembly reference

热门文章

  1. CSS 清楚浮动总结
  2. ngRx 官方示例分析 - 2. Action 管理
  3. android字体带下划线
  4. 论文笔记2-如何写一篇SCI论文
  5. 白光干涉仪可以用于测量化妆品用的云母材料?
  6. STM32Cube STM32L053配置GPIO达到最低功耗详解含测量实际电流值
  7. SyntaxError: invalid syntax(遇到问题)(已解决)
  8. Laya 实操二:原始宽高+反转+九宫格+Handler
  9. 斐波拉契数列的三种实现方法
  10. n叉树的遍历递归实现