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

基于carsim的线控转向仿真(2)--齿条力观测

观测器更详细的介绍文章可以关注博主以下两篇文章

从小车倒立摆系统看系统建模控制LQR+LQE仿真_lqr平衡小车仿真模型-CSDN博客

好玩的直流电机调速实验、PID、极点配置、LQR、观测器;不讲大道理_观测器极点配置-CSDN博客

三个实例迅速掌握经典卡尔曼滤波用法_卡尔曼滤波 温度估计-CSDN博客

本篇文章中,博主使用matlab提供的kalman函数,进行观测器设计。

一、系统状态空间方程

在上一节我们搭建的目标角度跟踪模型中,只有角度控制的pid是属于控制器,其余都属于被控对象。我们的目标是得到齿条力(即转向阻力),输入的电机扭矩可以通过传感器采集换算得到,输出的齿条位移可以由前轮转角换算得到;

总结一下,齿条力模型

 可以看成两输入(电机力Fm=Tm/rp,齿条力Fz),一输出(齿条位置Xr)的一个模型,其中Tm,Xr已知,现在要观测得到Fz,这里我们使用simulink自带的卡尔曼滤波模块来进行观测。

系统微分方程:   

F_{m}-F_{z}=M_{r}\ddot{x_r}+B_{r}\dot{x_r}

选取\left [ \dot{x},x \right ]^T为状态量,建立状态空间方程如下:

\begin{pmatrix} \ddot{x_r}\\\dot{x_r} \end{pmatrix}= \begin{pmatrix} -B_r/M_r & 0\\ 1&0 \end{pmatrix} \begin{pmatrix} \dot{x_r}\\x_r \end{pmatrix} + \begin{pmatrix} 1/M_r&-1/M_r \\ 0&0 \end{pmatrix} \begin{pmatrix} F_m\\F_z \end{pmatrix}

x=\begin{pmatrix} 0 & 1 \end{pmatrix} \begin{pmatrix} \dot{x_r}\\x_r \end{pmatrix} + \begin{pmatrix} 0 & 0 \end{pmatrix} \begin{pmatrix} F_m\\F_z \end{pmatrix}

我们要观测的Fz却在输入位置,没法用卡尔曼观测器观测得到,需要把它挪到状态量的位置才可以,可以将Fz的微分认为0。

\dot{F_z}=0*F_{z}+1*\dot{F_{z}} \\ F_{z}=1*F_{z}+0*F_{z}

将这个矩阵与上个矩阵放一起,重新整理可以得到:

\begin{pmatrix} \ddot{x_r}\\\dot{x_r}\\\dot{F_{z}} \end{pmatrix}= \begin{pmatrix} -B_r/M_r & 0&-1/M_{r}\\ 1&0&0 \\0&0&0\end{pmatrix} \begin{pmatrix} \dot{x_r}\\x_r \\F_{z}\end{pmatrix} + \begin{pmatrix} 1/M_r&0 \\ 0&0 \\0&1\end{pmatrix} \begin{pmatrix} F_m\\\dot{F_{z}} \end{pmatrix}

x=\begin{pmatrix} 0 & 1&0 \end{pmatrix} \begin{pmatrix} \dot{x_r}\\x_r \\F_{z}\end{pmatrix} + \begin{pmatrix} 0 & 0 \end{pmatrix} \begin{pmatrix} F_m\\\dot{F_z} \end{pmatrix}

成功将Fz放到观测量。

二、验证状态空间方程的准确性

将状态空间方程与微分方程运行比较。

 

 两条曲线完美重叠,说明状态空间方程没推导错。

三、使用卡尔曼滤波模块进行估算

卡尔曼滤波模块的设置也非常简单,直接照抄上面推导出来的状态矩阵即可。

仿真效果如下:对齿条阻力的观测还是相当精准。

四、参考论文

1、线控转向系统理想传动比和前轮转角控制策略研究_殷凡青


http://www.mrgr.cn/news/9281.html

相关文章:

  • OpenCV详细介绍
  • 链表OJ题——环形链表2
  • STM32GPIO引脚八种工作模式
  • C/C++语言基础--字符串(包括字符串与字符数组、字符串与指针、字符串处理函数等),代码均可运行
  • SPSS和MATLAB实现【典型相关分析】
  • 如何通过 JavaScript 实现点击按钮下载
  • python如何进行debug
  • 服务启动方法LINUX
  • k8s跨节点后pod无法访问
  • Unity滚滚车轮计划 之 新输入系统控制2D角色移动动画(俯视)
  • 墨者学院Oracle靶场通关
  • 【STM32实物】基于STM32设计的计算器——程序源码设计文档实物图设计文档等(文末完整资料下载)
  • Linux系统编程:TCP,UDP协议特点,粘包,wireshark抓包
  • 如何简单判断某个port是否被防火墙block
  • python——requests
  • 【服务器】VirtualBox+Centos+Docker的安装
  • 2-71 基于matlab的小波分析在心电信号去噪中的应用
  • 爬虫的bs4、xpath、requests、selenium、scrapy的基本用法
  • 如何使用ssm实现基于Java技术的会员制度管理的商品营销系统的设计与实现+vue
  • java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present