正文

我亲爱的看官,今天的主题是利用李雅普诺夫方法设计控制器,以进行车速跟踪。如果你要做课程设计,或者毕业设计中有相关内容,那么,你来对了哟。

仿真,无时无地(但电脑必备)不能进行。这里,各位参看余志生老师汽车理论第一章那条汽车行驶方程式,一切故事,从这里开始.....



(我们就在平地上进行跟车哈,正余弦分别为0和1)

将上式转化为状态空间的形式,并令状态变量为


,那么我们的加速度可以表示为


。状态空间表达如下:



这里,有些看官可能会不知道这个1.6319怎么来的,下面列一下:

1.6319=21.15/(3.6^2)。 因为我们的单位发生了变化

假设我们的目标车速是


,我们定义误差为



然后我们根据李雅普诺夫稳定性理论进行控制器的设计,进行车速跟踪:

针对我们的问题,简要概述一下:

李雅普诺夫稳定性理论认为,找到一个以包含误差e的正定的李雅普诺夫函数V,

并且能够满足该函数对时间的导数dV/dt是负定的:即当e不等于零时,V>0,dV/dt<0

恒成立,那么状态e最终将会收敛于零,也即渐进稳定。

这里我们取


,可知,当e不为零时,V恒大于零,满足正定条件。



由前述的状态方程,上式可以转化为:



我们要让dV/dt负定,一个非常直观的方法就是,我们如果令上式的括号内的部分等于


,


那么我们可以得到


,其中k为正数。


那么很明显,在e不为零的点,上式的导数恒小于零,即上式负定,则,最终我们的误差会收敛到零。

最终我们得到



而,进一步思考,我们所谓的车速跟踪,在当前的模型与问题下,是通过调节我们的驱动力矩来进行车速控制,于是,我们的目的开始明了,我们需要把这个未知的


用系统中的已知量进行表达:



同时施加该力矩,也即控制率到我们的系统中,仿真结果如下(跟踪车速为12km/h,图示单位为m/s)


python 求最小均方根误差 最小平方误差判别matlab代码_视频教程


其中同时改变k的值,可以影响稳定所需的时间,当前k=1.随着k值的增大,收敛所需时间变短,但控制率将增大,即我们的所需的发动机转矩也将增大。控制中也需要考虑能耗问题,因此实际中需要慎重选取合适的k值。

以下附上模型与参数:


python 求最小均方根误差 最小平方误差判别matlab代码_最小平方误差判别matlab代码_02


python 求最小均方根误差 最小平方误差判别matlab代码_最小平方误差判别matlab代码_03


m = 3880;
r = 0.367;
eta = 0.85;
f = 0.013;
g = 9.8;
CdA = 2.77;
i0 = 5.83;
ig = 5.56;
k = 1;
delta = 1.1;