笔记96:前馈控制 + 航向误差

1. 回顾


对于一个 \dot{x}=Ax+Bu 系统而言,结构可以画作:

如果采用 u=-Kx 这样的控制策略,结构可以画作:(这就是LQR控制)

使用LQR控制器,可以通过公式 \dot{x}=Ax+Bu 和 u=-Kx 构建一个完美的负反馈系统;

a

a

但是有上一个博客可知,我们的误差型车辆横向动力学方程,有三项,而非两项,这就意味着使用LQR控制器是不够控制我们的这个系统的,因为LQR只对前两项起调节作用;

误差型车辆横向动力学模型

我们的目的:

  • 系统稳定,即 \dot{x}=0

  • 稳态误差为0 ,即 x=0

解释:如果只用【LQR + 反馈】来控制该系统

  • 无法实现两者同时为0,因为稳态误差是由小尾巴 C\dot{\theta _r} 带来的,如果只是 LQR 的话那么可以指定 K 矩阵满足 A=B_1K 即可使得系统 \dot{x}=Ax+B\delta 稳定且稳态误差为0,但是不管 K 如何取值都无法满足系统 \dot{x}=Ax+B\delta +C\dot{\theta _r} 稳定且稳态误差为0;

a

a

本博客主讲:解决LQR中的小尾巴


a

a

a

a

a

2. 引入前馈控制 -- 解决第三项


Step1:

a

a

Step2:现在系统已经稳定了,接下来我们的目的是令稳态误差也为0:

a

a

Step3:令横向误差 e_d 为0

a

a

Step4:令(假)航向误差 e_\varphi 为0

  • e_\varphi 的公式中只有 V_x 的值是受我们控制的,但是如果通过指定 V_x 的值使得稳态误差为0,那么不就意味着车辆只能以一个恒定的速度行驶了,这是不现实的
  • 我们这样想,本身航向误差其实是 \varphi +\beta -\theta _r,我们追求的目标其实是这个公式为0,所以 e_\varphi 不为0反倒是正确的,因为 e_\varphi 被定义为 \varphi-\theta _r,所以我们需要的是 e_\varphi=-\beta

综上:\dot{\theta _r}=k\dot{s}\approx kv_x

则有:

这里出现了一个 may,应该是整个车身受到的侧向力 F,但是这个 F/Cr 就什么都不是了,Cr 只是后轮的侧偏刚度,整车收到的侧向力 / 后轮的侧偏刚度,这啥都不是,所以需要继续化简,所幸这里的给我们提供了化简思路;

则有:e_\varphi=-\beta 符合我们期待的结果(因为 e_\varphi 并不是真正的航向误差)

因此对于下面这个公式,只需要管第一项就可以了,因为后面三项都达到了我们期待的标准

即:

a

a

总结:

  • 计算 K:通过 LQR 中的 Riccati 方程获得

  • 计算 \delta _f:通过下面的公式计算


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值