智能车浅谈——控制规律篇
文章目录
- 前言
- 计算机控制系统
- 常用控制规律
- PID控制
- 比例(P)控制器
- 比例积分(PI)控制器
- 比例积分微分(PID)控制
- 位置式PID
- 增量式PID
- 数字PID控制算法的改进
- PID参数整定
- 小结
- 串级控制
- 模糊控制
- 智能车系列文章汇总
前言
之前已经记录了一些有关智能车硬件、方向控制、电机控制以及图像方面的内容,说了好几次在后面会出一篇有关PID的文章,今天填一下自己挖下的坑,本篇文章主要记录一些与智能车有关的算法,参考书籍是《计算机控制技术与应用》(第二版)。
计算机控制系统
老套路,还是先引入部分理论知识。计算机控制技术包含着两部分内容:一是计算机控制的理论基础;二是实现技术,主要包括通道接口技术和系统实现技术。1
单片机作为一种微型计算机采用的是数字信号,而智能车在运行过程中的大多数物理量都是模拟量的形式,因此二者直接必须采用模/数(A/D)转换器和数/模(D/A)转换器,已实现两种信号的相互转换,在整个控制系统中单片机根据给定输入信号、反馈信号和系统的数学模型进行信号处理,实现其控制策略,通过执行机构控制被控对象,达到预期控制目标。其典型结构如下图所示:
有关整个智能车系统的各个组成部分,之前的方向控制和电机控制已经介绍过了,在此主要是记录一些常用的控制规律、过程通道以及抗干扰技术。
常用控制规律
PID控制
在了解PID控制之前,我们需要弄清楚为什么要用PID控制?
举例来说,电热水壶大家肯定都用过,每次想喝水就会用它把水烧开,在这里烧开是我们的期望值,当水温达到100度时水壶判断水已经烧开了会自动跳闸,跳闸后水温会逐渐降低,并不会一直保持在100度,这种情况就是一个开环的控制,系统可以使被控量达到我们的期望值,但是无法一直让被控量保持在期望效果;如果我们想让水温一直恒定在指定温度,就需要使用到PID,通过合理地PID控制就可以保持水温一直处于我们期望的温度。接下来我们来了解一下PID到底是个啥。
这里先补充一点自动控制原理的相关概念:
如图所示,自动控制系统中期望值或者说给定量是1(单位阶跃信号),而输出量的波形如下图橙色曲线所示,这里有几个相关的指标名称需要大家做个了解,分别是超调量和调节时间,超调量从一定角度反映了系统的稳定性能,一般我们希望超调量越小越好,调节时间ts,它是指输出曲线进入并一直保持在5%误差带内所用的时间,对于一般的系统我们都希望这个调节时间越短越好。
PID控制包括比例(P)、积分(I)、微分(D)3种控制规律,由这三种控制规律可以组合成P控制器、PI控制器、PD控制器、PID控制器等。需要注意的是它们都是线性控制器,工作原理都是根据给定量r(t)与实际输出量c(t)之差[e(t) = r(t) - c(t) ]形成控制量,进而去控制被控对象,是对象输出趋于给定。
比例(P)控制器
比例控制的原理是将偏差e(t) = r(t) - c(t) 乘以一个比例系数Kp,计算结果作为控制量输出到被控对象上,实现闭环控制。
其控制规律如下:
u(t)=Kp×e(t)
当Kp=0.297 Ki = Kd = 0时,
当Kp=0.1 Ki = Kd = 0时,
当Kp=0.4 Ki = Kd = 0时,(收敛振荡)
当Kp=0.472 Ki = Kd = 0时,(等幅振荡)
当Kp=0.5 Ki = Kd = 0时,(发散振荡)
对比上面几个给定量与输出量可以看出,比例控制在合理范围内能使系统输出维持在一个稳定的范围,例如
当Kp=0.1 Ki = Kd = 0时,系统输出大致稳定在0.5左右,
当Kp=0.297 Ki = Kd = 0时,系统输出大致稳定在0.75左右,
显然这里的输出和实际期望1之间存在一定的差值,这个差值被称为静态误差,静差的产生是由于比例控制器本身是靠偏差工作的,若偏差消失[e(t)=0],控制器作用也就消失[u(t)=Kp×0=0]。对比Kp取值的不同可以发现,Kp取值越大这个静差就会越小,但是当Kp超过一定范围后(如上图Kp>0.4时)系统的性能会被破坏,会引起被控量的振荡导致系统不稳定。
因此在系统控制中很少单独使用比例控制器进行控制。为了更加形象的表示比例控制系数的作用,这里借用卓大的劈ID一文中的gif来展示一下。
比例积分(PI)控制器
为了消除比例控制的静差,可以采取在比例控制的基础上增加积分控制,形成比例积分控制器,其控制规律如下:
其中Ti为积分时间常数,下图表示的是PI控制器对于阶跃信号的时间相应,比例部分好理解,就是一个倍数关系,而积分部分,由于是阶跃信号,相当于e(t)是个恒定值A,在高数中,对一个数积分后是一个一次方程Ax+b的形式也就是下图中斜线;可以看出PI控制器的输出分为了两部分,一部分是比例作用,与偏差成正比;另一部分是偏差的积累,即积分作用。只要e(t)不为零,积分部分就会一直累计,从而影响控制量u(t),以此减少偏差,直到偏差变为零,系统进入稳态。
当Kp=0.297, Ki = 0,Kd = 0时,
当Kp=0.297, Ki = 0.001,Kd = 0时,
当Kp=0.297, Ki = 0.002,Kd = 0时,
当Kp=0.297, Ki = 0.005,Kd = 0时,
此时的Ki=Kp/Ti
对比上面各组结果可以发现积分作用的加入可以有效地消除系统静差,积分时间常数Ti的大小决定了积分速度的快慢和积分作用的强弱,增大Ti,积分作用减弱,积分速度变慢,消除静差的时间拉长,但可以减小系统的超调,提高系统的稳定性,反之所有效果相反。
比例环节的输出只取决于输入偏差量的现状,而积分环节的输出包含了输入偏差量的全部历史。这种消除静差的PI控制器一般用于电机的速度控制,主要是为了保证小车在遇到坡道以及其他干扰时能够保持期望速度运行,没有闭环控制的小车在遇见障碍干扰时会有明显的减速,现象在笔者的视频里面有。
比例积分微分(PID)控制
积分作用的加入,虽然可以很好地解决静差的问题,但代价是降低了系统的响应速度,系统达到稳态的时间(调节时间)变长了,对于一些对调节时间要求较高的系统来说就不适用,类似于舵机控制,如果调节时间太长会出现明显的舵机打角延迟,为了解决这一问题,就需要引入就有超前特性的微分D(高数中的求导,求变化率)控制,这样就组成了PID控制器。
当Kp=0.297, Ki = 0.0085,Kd = 0时,系统振荡不稳定
当Kp=0.297, Ki = 0.0085,Kd = 1时,调节时间ts=700ms;
当Kp=0.297, Ki = 0.0085,Kd = 3时,ts=180;
对比可以发现D的加入可以有效地缩短调节时间ts,使得系统更快的到达稳态。
这个大佬们开源的项目可以帮助感性认识调参——传送门。
位置式PID
令T为采样周期,以一系列采样时刻点kT代替连续时间t,用和式代替积分,以增量代替微分,则可得到以下控制规律:
位置式PID控制算法的程序框图如下:
从表达式中可以看出积分部分是一直在累加,这个过程可能会导致积分饱和,影响整个系统的控制效果。
增量式PID
除了位置式的PID还有一种增量式的PID,其控制规律如下:
从表达式中可以看出增量式PID是利用当前误差和过去两拍的误差来做计算,整个计算量比位置式要小且不会受到以往太多参数的干扰。
有关位置式PID与增量式PID的选取、优缺点及代码参考这篇博文,传送门。
数字PID控制算法的改进
应对不同的实际系统,我们还需要针对系统的特点对PID进行改进,例如对于控制精度要求不高,但对系统的平稳性要求较高的系统,可以采用带有死区的PID控制方式。类似做了特殊处理的还有积分分离式PID、不完全微分的PID、微分先行的PID等,这里不再一一介绍,感兴趣的同学去查看我上传的PPT介绍。
PID参数整定
有关PID的参数整定,分为两大类方法,一类是理论设计法,此法需要知道系统的数学模型,对于智能车来说实现起来有难度;另一类是实验确定法,实验法中又包括有试凑法、扩充临界比例法、扩充响应曲线法等。
智能车调参中常用的是试凑法和扩充临界比例法,采取先调比例,后调积分最后加微分的方式,有关参数整定的具体步骤介绍的PPT我已经上传到资源需要的同学自行下载(不方便在CSDN下载的也可以私信博主)。
小结
PID中三个参数对系统的影响各有不同,主要介绍如下图所示。另外前文中使用的simulink仿真模型也已经放到资源里了,需要的同学可以自行领取。
串级控制
串级控制的结构框图如下图所示,串级控制系统在结构上有两个闭环,一个在内被称作副回路,在控制过程中起到“粗调”的作用;一个环在外面,起到“细调”作用被称为主回路。考虑到篇幅问题有关串级控制的详细介绍也请大家自行查阅,在此不做介绍了,在比赛中,一般是直立车会采用这种串级PID控制的方式,使用串级控制可以很好地改善系统的控制质量。
模糊控制
模糊控制是智能控制的主要方式之一,其特点是不需要建立对象的数学模型,依赖规则库进行控制;控制规律采用自然语言,能够很好地利用人的经验。
模糊控制器由模糊化、知识库、模糊推理机、清晰化四部分组成,模糊控制的使用类似于我们日常生活中形容一个人身高的高、中、低年龄的老、中、青,这些都没有一个明确的界限,是根据自己的经验进行判断的,大致思路就是计算出当前误差在每个模糊集合里面的隶属度,根据隶属度来确定输出。这种控制技术被公认为简单而且有效。对于模糊控制,想要深入了解的同学还是自行了解吧,这里推荐两篇博文——传送门1,传送门2不会模糊控制的同学,用好分段PID也能跑出不错的成绩。
智能车系列文章汇总
智能车浅谈——硬件篇
智能车浅谈——方向控制篇
智能车浅谈——电机控制篇
智能车浅谈——图像篇
智能车浅谈——控制规律篇
智能车浅谈——过程通道篇
智能车浅谈——抗干扰技术硬件篇
智能车浅谈——抗干扰技术软件篇
计算机控制技术与应用 刘国荣,梁景凯主编 .——2版.北京:机械工业出版社,2008.1 ↩︎
智能车浅谈——控制规律篇相关推荐
- 智能车浅谈——过程通道篇
文章目录 前言 过程通道 模拟量输入通道 模拟量输出通道 开关量输入/输出通道 小结 模拟信号的调理 信号放大电路 滤波限幅电路 开关量信号调理 信号转换电路 滤波电路 保护电路 触点消抖 光耦隔离 ...
- 智能车浅谈——方向控制篇
文章目录 前言 自动控制理论 人工控制系统 自动控制 方向控制 典型环节对应 典型环节分析 给定环节与给定量 比较环节与偏差量 控制环节与控制量 执行机构 舵机 PWM技术 舵机中值及限幅 转向控制 ...
- 智能车浅谈——电机控制篇
文章目录 前言 运动控制系统 被控对象 执行机构 控制器 反馈环节 M法测速: T法测速 小结 直流调速系统 桥式可逆PWM变换器 (1)正向运行 (2)反向运行 总结 智能车系列文章汇总 前言 之前 ...
- 智能车浅谈——手把手让车跑起来(电磁篇)
文章目录 前言 材料准备 备赛组 车模 硬件 练习组 车模 硬件方案 整车原理 赛道信息获取及转向原理 工字电感 运放模块 转向原理 元素判断 电机及舵机控制原理 代码实现 效果欣赏 总结 17届完赛 ...
- 智能车浅谈——硬件篇
目录 初识小车 硬件系统 1.电源系统 线性电源 开关电源 2.人机交互系统 3.MCU最小系统 4.传感器系统 摄像头 电感 编码器 5.驱动系统 机械结构 17届完赛代码 智能车系列文章汇总 前言 ...
- 智能车浅谈——抗干扰技术硬件篇
文章目录 前言 干扰 什么是干扰 干扰窜入的主要途径 干扰的分类 硬件抗干扰技术 控制系统的电源保护技术 输入/输出传输线的抗干扰措施 I/O接口的抗干扰措施 接地技术 总结 智能车系列文章汇总 前言 ...
- 智能车浅谈——抗干扰技术软件篇
文章目录 软件抗干扰技术 数字信号的抗干扰措施 数字输入信号软件抗干扰措施 数字输出信号软件抗干扰措施 数字滤波 算术平均值滤波 中值滤波 滑动平均滤波 归一化 差比和 CPU及程序的抗干扰措施 复位 ...
- 智能车浅谈——图像篇
文章目录 前言 认识图像 基本含义 图像类型 数字图像 彩色图像 灰度图像 黑白图像 小结 图像处理 图像压缩 二值化 固定阈值法 大津法 图像降噪(腐蚀) 寻边线 总结 17届完赛代码 17届完赛代 ...
- 智能车浅谈 电磁组——环岛处理
前言 本文为第十七届全国大学生智能车电磁四轮部分经验分享,转载于智能车电磁组--环岛处理,文中如有不妥之处欢迎批评指正. 智能车电磁组--环岛处理 智能车电磁组--环岛处理 一.电感排布 二.圆环思路 ...
最新文章
- R语言ggplot2可视化散点图、并以与y=0为界绘制基于散点包围的多边形(ploygon)、对于y=0坐标轴的上方和下方的多边形分别使用不同的颜色进行填充
- h5 数字变化_前端/h5 D3.js实现根据数据动态更新图形/类似进度实时变化效果
- C和C++结构体的区别
- FreeBSD 下的 MySQL 备份方案
- 第一百八十四节,jQuery-UI,验证注册表单
- 想搞定大厂面试官?4面阿里拿到P7Offer通用流行框架大全
- 201521123009 《Java程序设计》第1周学习总结
- Kafka 配置参数汇总及相关说明
- MySQL蜜罐在护网中提取攻击者微信ID
- python:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 网页完美内嵌多媒体,支持IE,Mozilla、Firefox、NetScape、Opera
- 交友项目【查询黑名单人员,移除黑名单人员】功能实现
- CTFSHOW WEB 1-100
- 【JS代码提高--003】:JavaScript 生成间于最小值和最大值之间的随机数
- iOS应用跳转(包括iPhone原有应用跳转和第三方应用跳转)
- java e_java中E表示什么意思
- 项目场景-------滚动条横向竖向同步滚动
- PTA 1032 挖掘机技术哪家强(c语言)
- ThinkPHP实现数据的创建
- 李开复最新刷屏演讲:人工智能最难取代这13种工作,也最容易威胁人性与爱!