汽车横向运动学建模学习笔记

单车模型建模

车辆横向运动的运动学建模

在这里插入图片描述
其中X, Y表示车辆的位置, ψ \psi ψ表示车辆当前的heading 角, β \beta β表示车辆的滑移角,V表示当前的速度, δ f , δ r \delta_f, \delta_r δf,δr分别表示前轮和后轮的转向角度,为了简化模型, β \beta β δ r \delta_r δr一般当作0来处理,事实证明当汽车行驶速度比较小的时候,这个假设是合理的.

车辆的航向角 γ = ψ + β \gamma = \psi + \beta γ=ψ+β

对三角形OCA利用正弦定理可得: s i n ( δ f − β ) l f = s i n ( π 2 − δ f ) R \frac{sin(\delta_f-\beta)}{l_f} = \frac {sin({\frac{\pi}{2}-\delta_f)}}{R} lfsin(δfβ)=Rsin(2πδf)
对三角形OCB利用正弦定理可得: s i n ( β − δ r ) l r = s i n ( π 2 + δ r ) R \frac{sin(\beta-\delta_r)}{l_r} = \frac{sin(\frac{\pi}{2}+\delta_r)}{R} lrsin(βδr)=Rsin(2π+δr)
由上式展开可得: s i n ( δ f ) c o s ( β ) − s i n ( β ) c o s ( δ f ) l f = c o s ( δ f ) R \frac{sin(\delta_f)cos(\beta)-sin(\beta)cos(\delta_f)}{l_f}=\frac{cos(\delta_f)}{R} lfsin(δf)cos(β)sin(β)cos(δf)=Rcos(δf)
s i n ( β ) c o s ( δ r ) − c o s ( β ) s i n ( δ r ) l r = − c o s ( δ r ) R \frac{sin(\beta)cos(\delta_r)-cos(\beta)sin(\delta_r)}{l_r}=-\frac{cos(\delta_r)}{R} lrsin(β)cos(δr)cos(β)sin(δr)=Rcos(δr)
将两式整理可得: ( t a n ( δ f ) − t a n ( δ r ) ) c o s ( β ) = l f + l r R (tan(\delta_f)-tan(\delta_r))cos(\beta)=\frac{l_f+l_r}{R} (tan(δf)tan(δr))cos(β)=Rlf+lr
β = t a n − 1 ( l f t a n δ r + l r t a n δ f l f + l r ) \beta = tan^{-1}(\frac{{l_f}tan\delta_r+l_r{tan\delta_f}}{l_f+l_r}) β=tan1(lf+lrlftanδr+lrtanδf)
因为车辆速度比较慢,所以转向半径变化比较慢,所以车辆方向变化率等于车辆的角速度,即 ψ ˊ = V R \acute{\psi}=\frac{V}{R} ψˊ=RV
ψ ˊ = V c o s ( β ) ( t a n ( δ f ) − t a n ( δ r ) ) l f + l r \acute{\psi}=\frac{Vcos(\beta)(tan(\delta_f)-tan(\delta_r))}{l_f+l_r} ψˊ=lf+lrVcos(β)(tan(δf)tan(δr))
在X和Y方向的的方程分别为:
X ˊ = V c o s ( ψ + β ) \acute{X}=Vcos(\psi+\beta) Xˊ=Vcos(ψ+β)
Y ˊ = V s i n ( ψ + β ) \acute{Y}=Vsin(\psi+\beta) Yˊ=Vsin(ψ+β)
在这个模型里面有三个输入: δ f , δ r , V \delta_f,\delta_r,V δf,δr,V.速度V是一个外部变量,可以从纵向模型中得到,滑移角 β \beta β可以由前面的式子求得

阿克曼转向几何

在这里插入图片描述
L = l f + l r L=l_f+l_r L=lf+lr,由上面的式子简化可得: ψ ˊ V = 1 R = δ L \frac{\acute{\psi}}{V}=\frac{1}{R}=\frac{\delta}{L} Vψˊ=R1=Lδ,第一步是由角速度乘以半径得到速度算得,第二步是简化上面的式子得到,由于L与R相差横多,所以 δ \delta δ比较小,此时有 t a n ( δ ) = δ tan(\delta)=\delta tan(δ)=δ,最后推得 δ = L R \delta=\frac{L}{R} δ=RL
由于内轮和外轮是不同的,所以得到下式: δ o = L R − l w 2 \delta_o=\frac{L}{R-\frac{l_w}{2}} δo=R2lwL
δ i = L R − l w 2 \delta_i=\frac{L}{R-\frac{l_w}{2}} δi=R2lwL
δ = δ o + δ i 2 = L R \delta=\frac{\delta_o+\delta_i}{2}=\frac{L}{R} δ=2δo+δi=RL
最后推得: δ i − δ o = L ∗ l w R 2 = δ 2 ∗ l w L \delta_i-\delta_o=\frac{L*l_w}{R^2}=\frac{{\delta^2}*l_w}{L} δiδo=R2Llw=Lδ2lw

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB是一个数值计算软件,可用于建立和模拟各种数学模型,包括汽车运动学模型汽车的线性二自由度运动学模型主要描述了汽车在水平平面上的运动,其中包括了车辆的纵向运动横向运动。 在MATLAB中,可以使用向量和矩阵的运算来实现汽车的线性二自由度运动学模型。以下是一个简单的例子: 假设我们要建立一个简化的汽车运动学模型,其中纵向运动由加速度a控制,横向运动由转向δ控制。我们可以使用如下的方程描述汽车运动: 纵向运动方程: v = u + at 横向运动方程: θ = δ * t 其中,v是车辆的纵向速度,u是初始速度,t是时间,θ是车辆的横向位移,δ是车辆的转向。 我们可以在MATLAB中编写一个简单的程序来实现这个汽车运动学模型: ```MATLAB % 定义车辆的初始速度和时间 u = 0; % 初始速度为0 t = linspace(0, 10, 100); % 时间从0到10,共100个时间点 % 定义车辆的加速度和转向 a = 2; % 加速度为2 delta = deg2rad(30); % 转向为30度 % 计算车辆的纵向速度和横向位移 v = u + a*t; % 纵向速度随时间变化 theta = delta*t; % 横向位移随时间变化 % 绘制车辆的纵向速度和横向位移 subplot(2, 1, 1); plot(t, v); xlabel('时间'); ylabel('纵向速度'); title('汽车纵向运动'); subplot(2, 1, 2); plot(t, theta); xlabel('时间'); ylabel('横向位移'); title('汽车横向运动'); ``` 以上的程序将绘制出车辆的纵向速度随时间变化的曲线和车辆的横向位移随时间变化的曲线。这个模型是一个简化的线性二自由度运动学模型,实际的汽车运动学模型可能更加复杂,包括更多的参数和约束条件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值