车辆控制-稳态误差分析-前馈
文章目录
- 概述
- 前馈
- 拉普拉斯变换
- 稳态跟踪误差
- 前馈转向角
- 稳态转向角
- 总结
概述
由于状态反馈下的闭环横向控制系统仍然存在稳态误差,本文主要分析稳态误差产生的原因,并尝试使用前馈项将稳态误差减小为0。
前馈
根据状态反馈下的状态空间模型
x˙=(A−B1K)x+B2ψ˙des(1)\dot{x} = (A - B_1K)x + B_2\dot{\psi}_{des} \tag{1} x˙=(A−B1K)x+B2ψ˙des(1)
由于B2ψ˙desB_2\dot{\psi}_{des}B2ψ˙des项的存在,当车辆在圆弧路面上行驶,即使矩阵(A−B1K)(A - B_1K)(A−B1K)稳定,跟踪误差也无法达到0。下面探讨在弧线上时,添加到状态反馈中的前馈项是否对零状态误差有效。
假设转向控制由状态反馈加上一个尝试修正道路曲率的前馈项。
δ=−Kx+δff(2)\delta = -Kx + \delta_{ff} \tag{2} δ=−Kx+δff(2)
闭环控制系统如下:
x˙=(A−B1K)x+B1δff+B2ψ˙des(3)\dot{x} = (A - B_1K)x + B_1\delta_{ff} + B_2\dot{\psi}_{des} \tag{3} x˙=(A−B1K)x+B1δff+B2ψ˙des(3)
拉普拉斯变换
对等式(3)使用拉普拉斯变换(Laplace Transforms),详见拉普拉斯变换-常微分方程,并假设初始状态为0,结果如下:
X(s)=[sI−(A−B1K)]−1{B1L(δff)+B2L(ψdes˙)}(4)X(s) = [sI-(A - B_1K)]^{-1}\{B_1L(\delta_{ff})+B_2L(\dot{\psi_{des}}) \} \tag{4} X(s)=[sI−(A−B1K)]−1{B1L(δff)+B2L(ψdes˙)}(4)
其中L(δff)L(\delta_{ff})L(δff)和L(ψdes˙)L(\dot{\psi_{des}})L(ψdes˙)是δff\delta_{ff}δff和ψdes˙\dot{\psi_{des}}ψdes˙相应的拉普拉斯变换。
- 如果车辆以恒定速度VxV_xVx行驶,且道路的曲率半径为RRR,则目标偏航角速度恒定为
ψ˙des=VxR(5)\dot{\psi}_{des} = \frac{V_x}{R} \tag{5} ψ˙des=RVx(5)
根据等式(5),对应的拉普拉斯变换可以表述为
L(ψ˙des)=VxRs(6)L(\dot{\psi}_{des}) = \frac{V_x}{Rs} \tag{6} L(ψ˙des)=RsVx(6) - 同理,如果前馈项δff\delta_{ff}δff恒定,则对应的拉普拉斯变换为
L(δff)=δffs(7)L(\delta_{ff}) = \frac{\delta_{ff}}{s} \tag{7} L(δff)=sδff(7)
将等式(6)和(7)带入等式(4)中得
X(s)=[sI−(A−B1K)]−1(B1δffs+B2VxRs)(8)X(s) = [sI-(A - B_1K)]^{-1}(B_1\frac{\delta_{ff}}{s}+ B_2\frac{V_x}{Rs}) \tag{8} X(s)=[sI−(A−B1K)]−1(B1sδff+B2RsVx)(8)
稳态跟踪误差
稳态跟踪误差可以表示为x(t)x(t)x(t)中,t→∞t \to\inftyt→∞时的数值,根据终值定理得
xss=limt→∞x(t)=lims→0sX(s)(9)x_{ss} = \lim_{t\to\infty}x(t)=\lim_{s\to0}sX(s) \tag{9} xss=t→∞limx(t)=s→0limsX(s)(9)
将等式(8)带入等式(9)得
xss=lims→0sX(s)=lims→0[sI−(A−B1K)]−1(B1δff+B2VxR)=−(A−B1K)−1(B1δff+B2VxR)(10)x_{ss} =\lim_{s\to0}sX(s) \qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad\\ =\lim_{s\to0}[sI-(A - B_1K)]^{-1}(B_1\delta_{ff}+B_2\frac{V_x}{R})\\ =-(A - B_1K)^{-1}(B_1\delta_{ff}+B_2\frac{V_x}{R})\qquad\quad\tag{10} xss=s→0limsX(s)=s→0lim[sI−(A−B1K)]−1(B1δff+B2RVx)=−(A−B1K)−1(B1δff+B2RVx)(10)
使用符号工具箱对等式(10)进行化简,这里使用Python的Sympy软件库进行化简得
xss=[(2CαfCαrRδfflf+2CαfCαrRδfflr+2CαfCαrk3lflr+2CαfCαrk3lr2−2CαfCαrlf2−4CαfCαrlflr−2CαfCαrlr2−CαfVx2k3lfm+CαfVx2lfm−CαrVx2lrm)2CαfCαrRk1(lf+lr)012CαrR(lf+lr)(−2Cαrlflr−2Cαrlr2+Vx2lfm)0](11)x_{ss} = \left[\begin{matrix}\dfrac{\left(2 C_{\alpha f} C_{\alpha r} R \delta_{ff} l_{f} + 2 C_{\alpha f} C_{\alpha r} R \delta_{ff} l_{r} + 2 C_{\alpha f} C_{\alpha r} k_{3} l_{f} l_{r} + 2 C_{\alpha f} C_{\alpha r} k_{3} l_{r}^{2} - 2 C_{\alpha f} C_{\alpha r} l_{f}^{2} - 4 C_{\alpha f} C_{\alpha r} l_{f} l_{r} - 2 C_{\alpha f} C_{\alpha r} l_{r}^{2} - C_{\alpha f} V_{x}^{2} k_{3} l_{f} m + C_{\alpha f} V_{x}^{2} l_{f} m - C_{\alpha r} V_{x}^{2} l_{r} m\right)}{2 C_{\alpha f} C_{\alpha r} R k_{1} \left(l_{f} + l_{r}\right)}\\0\\\dfrac{1}{2 C_{\alpha r} R \left(l_{f} + l_{r}\right)} \left(- 2 C_{\alpha r} l_{f} l_{r} - 2 C_{\alpha r} l_{r}^{2} + V_{x}^{2} l_{f} m\right)\\0\end{matrix}\right] \tag{11} xss=⎣⎢⎢⎢⎢⎢⎢⎢⎡2CαfCαrRk1(lf+lr)(2CαfCαrRδfflf+2CαfCαrRδfflr+2CαfCαrk3lflr+2CαfCαrk3lr2−2CαfCαrlf2−4CαfCαrlflr−2CαfCαrlr2−CαfVx2k3lfm+CαfVx2lfm−CαrVx2lrm)02CαrR(lf+lr)1(−2Cαrlflr−2Cαrlr2+Vx2lfm)0⎦⎥⎥⎥⎥⎥⎥⎥⎤(11)
由等式(11)知,稳定状态下的横向误差eye_yey为
ey_ss=2CαfCαrRδff(lf+lr)+2CαfCαr(k3lflr+k3lr2−lf2−2lflr−lr2)−Vx2m(Cαfk3lf−Cαflf+Cαrlr)2CαfCαrRk1(lf+lr)(12)e_{y\_ss}= \frac{2 C_{\alpha f} C_{\alpha r} R \delta_{ff} (l_{f} + l_{r}) + 2 C_{\alpha f} C_{\alpha r}( k_{3} l_{f} l_{r} + k_{3} l_{r}^{2} - l_{f}^{2} - 2 l_{f} l_{r} - l_{r}^{2}) - V_{x}^{2}m(C_{\alpha f} k_{3} l_{f} - C_{\alpha f} l_{f} + C_{\alpha r} l_{r} )}{2 C_{\alpha f} C_{\alpha r} R k_{1} \left(l_{f} + l_{r}\right)} \tag{12} ey_ss=2CαfCαrRk1(lf+lr)2CαfCαrRδff(lf+lr)+2CαfCαr(k3lflr+k3lr2−lf2−2lflr−lr2)−Vx2m(Cαfk3lf−Cαflf+Cαrlr)(12)
等式(12)提取δff\delta_{ff}δff项,并化简得
ey_ss=δffk1−(lf+lr)−k3lrRk1−Vx2m2Rk1(lf+lr)(k3lfCαr−lfCαr+lrCαf)(13)e_{y\_ss}= \frac{\delta_{ff}}{k_1} - \frac{ (l_{f}+l_{r})-k_{3}l_{r}}{R k_{1}} - \frac{V_{x}^{2}m}{2 R k_{1} \left(l_{f} + l_{r}\right)}(\frac{k_3l_f}{C_{\alpha r}} -\frac{l_f}{C_{\alpha r}} + \frac{l_r}{C_{\alpha f}}) \tag{13} ey_ss=k1δff−Rk1(lf+lr)−k3lr−2Rk1(lf+lr)Vx2m(Cαrk3lf−Cαrlf+Cαflr)(13)
同理,稳定下的偏航角误差eψe_{\psi}eψ为
eψ_ss=−2Cαrlflr−2Cαrlr2+Vx2lfm2CαrR(lf+lr)(14)e_{\psi\_ss} = \frac{- 2 C_{\alpha r} l_{f} l_{r} - 2 C_{\alpha r} l_{r}^{2} + V_{x}^{2} l_{f} m}{2 C_{\alpha r} R \left(l_{f} + l_{r}\right)} \tag{14} eψ_ss=2CαrR(lf+lr)−2Cαrlflr−2Cαrlr2+Vx2lfm(14)
等式(14)化简得
eψ_ss=−lrR+lf2Cαr(lf+lr)mVx2R(15)e_{\psi\_ss} = -\frac{l_r}{R} + \frac{ l_{f} }{2 C_{\alpha r} \left(l_{f} + l_{r}\right)}\frac{ mV_{x}^{2}}{R} \tag{15} eψ_ss=−Rlr+2Cαr(lf+lr)lfRmVx2(15)
由等式(13)可知,当选择合适的δff\delta_{ff}δff时,可以使横向误差eye_yey为0。但是δff\delta_{ff}δff并不能影响稳定状态下的偏航误差。偏航角误差的状态稳定项,无论前馈转向角如何选择也无法别修正。
前馈转向角
当前馈转向角选择如下时,稳定状态下的横向误差ey_sse_{y\_ss}ey_ss可为0。
δff=(lf+lr)−k3lrR+mVx22R(lf+lr)(k3lfCαr−lfCαr+lrCαf)(16)\delta_{ff} = \frac{ (l_{f}+l_{r})-k_{3}l_{r}}{R} + \frac{mV_{x}^{2}}{2 R \left(l_{f} + l_{r}\right)}(\frac{k_3l_f}{C_{\alpha r}} -\frac{l_f}{C_{\alpha r}} + \frac{l_r}{C_{\alpha f}}) \tag{16} δff=R(lf+lr)−k3lr+2R(lf+lr)mVx2(Cαrk3lf−Cαrlf+Cαflr)(16)
由于L=lf+lrL=l_f + l_rL=lf+lr知,等式(16)可化简为
δff=LR−k3lrR+mVx22RL(k3lfCαr−lfCαr+lrCαf)(17)\delta_{ff} = \frac{ L}{R} - \frac{ k_{3}l_{r}}{R} + \frac{mV_{x}^{2}}{2 R L}(\frac{k_3l_f}{C_{\alpha r}} -\frac{l_f}{C_{\alpha r}} + \frac{l_r}{C_{\alpha f}}) \tag{17} δff=RL−Rk3lr+2RLmVx2(Cαrk3lf−Cαrlf+Cαflr)(17)
进一步观察等式(17)得
δff=LR+k3(−lrR+lf2CαrLmVx2R)+Vx2R(mlr2CαfL−mlf2CαrL)(18)\delta_{ff} = \frac{ L}{R} + k_{3}(-\frac{ l_{r}}{R} +\frac{l_f}{2C_{\alpha r}L}\frac{m{V_{x}}^{2}}{ R })+ \frac{{V_{x}}^{2}}{R }( \frac{ml_r}{2 C_{\alpha f}L} -\frac{ml_f}{2 C_{\alpha r}L}) \tag{18} δff=RL+k3(−Rlr+2CαrLlfRmVx2)+RVx2(2CαfLmlr−2CαrLmlf)(18)
- 其中 KV=mlr2CαfL−mlf2CαrLK_V = \dfrac{ml_r}{2 C_{\alpha f}L} -\dfrac{ml_f}{2 C_{\alpha r}L}KV=2CαfLmlr−2CαrLmlf表示转向不足增益,ay=Vx2Ra_y = \dfrac{{V_x}^2}{R}ay=RVx2表示车俩行驶过程中产生的向心加速度。
- 另外使用mf=mlrLm_f = m\dfrac{l_r}{L}mf=mLlr表示前轴所承受的部分车的质量,mr=mlfLm_r= m\dfrac{l_f}{L}mr=mLlf表示后轴所承受的部分车的质量,转向不足增益系数KVK_VKV可以表示为KV=mf2Cαf−mr2CαrK_V=\dfrac{m_f}{2C_{\alpha f}}-\dfrac{m_r}{2C_{\alpha r}}KV=2Cαfmf−2Cαrmr。
结合等式(15),等式(18)最终可以表示为
δff=LR+k3eψ_ss+KVay(19)\delta_{ff} =\frac{ L}{R} +k_{3}e_{\psi\_ss}+ K_Va_y \tag{19}δff=RL+k3eψ_ss+KVay(19)
稳态转向角
根据稳定状态下的转向角为
δss=δff−Kxss(20)\delta_{ss} = \delta_{ff} - Kx_{ss} \tag{20} δss=δff−Kxss(20)
由于稳定状态下xssx_{ss}xss中,只有eψ_sse_{\psi\_ss}eψ_ss不为0,故
Kxss=[k1k2k3k4][00eψ_ss0]=k3eψ_ss(21)Kx_{ss} = \begin{bmatrix} k1 & k2 & k3 & k4 \end{bmatrix} \begin{bmatrix} 0\\ 0\\ e_{\psi\_ss}\\ 0 \end{bmatrix}=k_3e_{\psi\_ss} \tag{21} Kxss=[k1k2k3k4]⎣⎢⎢⎡00eψ_ss0⎦⎥⎥⎤=k3eψ_ss(21)
故将等式(21)和(19)带入(20)得
δss=LR+KVay(22)\delta_{ss} = \frac{ L}{R} + K_Va_y \tag{22}δss=RL+KVay(22)
总结
通过上述分析得,选取合适的前馈转向角δff\delta_{ff}δff可以使横向位置误差eye_yey达到0。但是稳定状态下的偏航角始终等于eψ_ss=−lrR+lf2Cαr(lf+lr)mVx2Re_{\psi\_ss}=-\dfrac{l_r}{R} + \dfrac{ l_{f} }{2 C_{\alpha r} \left(l_{f} + l_{r}\right)}\dfrac{ mV_{x}^{2}}{R}eψ_ss=−Rlr+2Cαr(lf+lr)lfRmVx2,且无法通过前馈转向角改变。
车辆控制-稳态误差分析-前馈相关推荐
- 自动驾驶车辆控制测评标准
自动驾驶中,车辆控制是基础,以什么指标来测评就显的很关键,以下是Apollo 车辆控制评测分析指标,可以在此基础上做裁剪,来满足自己自动驾驶车辆控制的需求. 序号 参数 名称 说明 平均控制性能相关参 ...
- 苹果无人车四个最新专利:手势控制变道、车辆导流、路况感知及车辆控制
Root 编译自 Appleinsider 量子位 出品 | 公众号 QbitAI 近日,美国专利局对外公开了苹果最新的四项无人车专利. 第一个专利是手势控制系统(Gesture based cont ...
- 自动驾驶车辆控制(车辆运动学模型)
本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用. 文章目录 1. 两个车辆运动学模型 1.1 三个坐标系 1.2符号定义 1.3车辆运动学模型 1.4车辆动力 ...
- Agv、Rgv 车辆控制调度系统开发第二篇
系列文章目录 Agv.Rgv 车辆控制调度系统开发第二篇(理论片) 文章目录 系列文章目录 前言 一.什么是调度系统? 问题 二.问题分析 1.寻找路线 2.避碰算法 3.移车算法 4.解锁算法 总结 ...
- Agv、Rgv 车辆控制调度系统开发第八篇-错误纠正
Agv.Rgv 车辆控制调度系统开发第八篇-错误纠正 前言 开始写博客到现在也有一年多了,这一年多分析了调度的很多东西,我也全网搜索过,网上真正分享调度知识的基本没有,虽然我也没有把核心的代码展示出来 ...
- Apache Shiro的运行流程和权限控制方式分析
Apache Shiro的运行流程和权限控制方式分析 Shiro的架构有3个主要的概念: Subject SecurityManager Realms 下面的关系图是关于这些组件是如何交互的高级概述. ...
- Linux实验三父子进程每隔3秒,实验三进程的创建和简单控制(学生分析.doc
实验三进程的创建和简单控制(学生分析 实验 进程的创建和简单控制 实验目的: 掌握进程的概念和进程的状态,对进程有感性的认识: 掌握进程创建方法: 认识进程的并发执行,了解进程族之间各种标识及其存在的 ...
- matlab语言 列车平稳性指标,铁道车辆平稳性分析报告.docx
.... 铁道车辆平稳性分析 车辆平稳性评价指标 1.1 sperling平稳性指标 欧洲铁路联盟以及前社会主义国家铁路合作组织均采用平稳性指数来评定车辆的运行 品质.等人在大量单一频率振动的实验基础 ...
- 掌握基于switch语句的流程控制测试分析 1221
掌握基于switch语句的流程控制测试分析 1221 01 02
- Agv、Rgv 车辆控制调度系统开发知识点篇
拖欠更新说明 因为最近工作比较忙,把更新的事给忘了,看到好多人的催更,然后紧急补上一篇大家先了解下知识点 创建目录结构 上一次讲到,做调度系统需要的几个目录 1.寻路 2.避碰 3.解锁 4.任务调度 ...
最新文章
- Docker常用命令汇总
- c#dev tabcontrol 与嵌套gridcontrol 总结
- Comet---“服务器推”技术实现
- 【图像处理】——创建一个新的图片
- 深度学习案例之基于 CNN 的 MNIST 手写数字识别
- 看mysql版本信息_查看mysql 的版本信息
- 跨境电商系统的一个架构演进
- 想将有色彩的视频进行去色处理就这样做
- cad插入块_足够让你牛逼的CAD动态块教程
- 【区块链2.0实战学习笔记】————11、搭建以太坊私有链
- Android-DRM详解
- 详解FindBugs的各项检测器
- 使用 Python 进行面部特征检测和面部过滤器
- java中的tomcatserverlet
- CV【2】:卷积与Conv2d
- 常见排序算法原理及实现——第二部分(归并排序、快速排序、堆排序)
- MySQL 完全备份 + 增量备份+完全恢复
- linux下阅读MHT文件
- 【读点论文】PP-ShiTu: A Practical Lightweight Image Recognition System,百度推出的强大人工智能产品
- Linux--装好之后要做的几件事(转)
热门文章
- Photoshopnbsp;CS4基础视频教程:通道与…
- matlab求常微分方程组,matlab常微分方程组求解
- 联想g485服务器未能登陆,Lenovo G485 USB3.0驱动程序安装不上的解决方法
- [莓控]BlackBerry7290用户指南(简体中文)
- 【Sinclair/记录】Rainmeter在电脑桌面添加GIF
- 终于能在Linux下用firefox使用支付宝了!!!
- 高通骁龙各代处理器解析
- 中国石油大学《近代炼油技术》第二阶段在线作业
- 2020-12-25
- 使用gui来初始化参数matlab,MATLAB GUI参数传递方式