主要内容

车辆动力学系统建模

该实例说明了车辆动力学的非线性灰箱建模方法。许多车辆的新功能(如电子稳定程序(ESP)、间接轮胎压力监测系统(TPMS)、路面-轮胎摩擦监测系统等)都依赖于车辆动力学模型。所谓自行车车辆模型是车辆动力学文献中经常使用的一种比较简单的模型结构。在这个例子中,我们将从这个模型结构开始,并尝试估计轮胎的纵向和横向刚度。实际建模工作最初是由Erik Narby在瑞典NIRA Dynamics AB的MSc工作中进行的。

车辆动力学建模

下图说明了需要考虑的车辆建模情况。

图1:车辆动力学系统的示意图。

利用牛顿运动定律和一些基本几何关系,飞行器绕重心(COG)测量的纵向速度v_x(t)、横向速度v_y(t)和横摆角速度r(t)可由以下三个微分方程描述:

d - v_x (t) = v_y (t) * r (t) + 1 / m * ((F_x, FL (t) + F_x FR (t)) * cos(δ(t)) dt - (F_y, FL (t) + F_y FR (t)) *罪(δ(t)) + F_x RL (t) + F_x, RR (t) - C_A * v_x (t) ^ 2) d——v_y (t) = -v_x (t) * r (t) + 1 / m * ((F_x, FL (t) + F_x FR (t)) *罪(δ(t)) dt + (F_y, FL (t) + F_y FR (t)) * cos(δ(t)) + F_y, RL (t) + F_y, RR (t)) d - r (t) = 1 / J * (* ((F_x, FL (t) + F_x FR (t)) * sin(δ(t)) dt +(F_y FL (t) + F_y FR (t)) * cos(δ(t))) - b * (F_y, RL (t) + F_y, RR (t)))

下标x表示力F作用于纵向,y作用于横向。轮胎的缩写分别为FL、FR、RL和RR: Front Left、Front Right、Rear Left和Rear Right。描述纵向加速度的第一个方程还包含空气阻力项,空气阻力项被假定为纵向车辆速度v_x(t)的二次函数。delta(t)(输入)为转向角,J为转动惯量,a、b分别为重心到前后轴的距离。

假设轮胎力可以通过以下线性近似来建模:

F_x,我(t) = cx * s_i F_y (t),我(t) =提出* alpha_i (t)因为我= {FL、FR、RL RR}

式中C_x、C_y分别为轮胎纵向刚度和横向刚度。这里我们假设这些刚度参数是相同的所有4个轮胎。S_i (t)是所谓的轮胎I的(纵向)滑移,而alpha_i(t)是轮胎滑移角。对于前轮驱动的车辆(此处考虑),滑移s_FL(t)和s_FR(t)是通过假设后轮没有滑移(即s_RL(t) = s_RR(t) = 0),从单个车轮速度(测量)推导出来的。因此滑移是我们模型结构的输入。对于前轮,轮胎滑移角alpha_Fj(t)可近似为(当v_x(t) > 0)

alpha_Fj (t) =δ(t) -反正切((v_y (t) +一个* r (t)) / v_x (t)) ~三角洲(t) - (v_y (t) +一个* r (t)) / v_x (t)j = {L, R}

对于后轮,轮胎滑移角alpha_Rj(t)同样的推导和计算为

alpha_Rj (t) = -反正切(v_y (t) - b * r (t)) / v_x (t)) ~ - (v_y (t) - b * r (t)) / v_x (t)j = {L, R}

当J = 1/((0.5*(a+b))^2*m)时,我们可以建立描述车辆动力学的状态空间结构。介绍了状态:

x1(t) = v_x(t)纵向速度[m/s]。x2(t) = v_y(t)横向速度[m/s]。x3(t) = r(t)偏航率[rad/s]。

五个被测量或导出的输入信号

u1(t) = s_FL(t)左前胎打滑[比]。u2(t) = s_FR(t)前右轮胎打滑[比]。u3(t) = s_RL(t)左后轮胎打滑[ratio]。u4(t) = s_RR(t)后右轮胎打滑[ratio]。u5(t) = delta(t)转向角[rad]。

模型参数:

m车辆质量[kg]。a前轴到轮齿的距离[m]。b后轴到轮齿的距离[m]。Cx纵向轮胎刚度[N]。Cy横向轮胎刚度[N/rad]。CA空气阻力系数[1/m]。

系统输出为车辆纵向速度y1(t) = x1(t),车辆横向加速度(通过加速度计测量):

y2 (t) =得+ (t) = 1 / m * ((F_x, FL (t) + F_x FR (t)) *罪(δ(t)) + (F_y, FL (t) + F_y FR (t)) * cos(δ(t)) + F_y, RL (t) + F_y, RR (t))

偏航率y3(t) = r(t)(由陀螺测量)。

综上所述,我们得到如下状态空间模型结构:

d - x1 (t) = x2 (t) * x3 (t) + 1 / m * (Cx * (u1 (t) + u2 (t)) * cos (u5 (t)) dt - 2 * Cy * (u5 (t) - (x2 (t) +一个* x3 (t)) / x1 (t)) *罪(u5 (t)) +残雪* (u3 (t) + u4 (t)) - CA * x1 (t) ^ 2)
d - x2 (t) = x1 (t) * x3 (t) + 1 / m * (Cx * (u1 (t) + u2 (t)) * sin (u5 (t)) dt + 2 * Cy * (u5 (t) - (x2 (t) +一个* x3 (t)) / x1 (t)) * cos (u5 (t)) + 2 * Cy * * x3 (b (t) x2 (t) / x1 (t))
d - x3 (t) = 1 / ((0.5 * (a + b)) ^ 2) *米)* (* (Cx * (u1 (t) + u2 (t) * sin (u5 (t)) dt + 2 * Cy * (u5 (t) - (x2 (t) +一个* x3 (t)) / x1 (t)) * cos (u5 (t))) - 2 * b * Cy * * x3 (b (t) x2 (t) / x1 (t))
日元(t) = x1 (t) y2 (t) = 1 / m * (Cx * (u1 (t) + u2 (t)) * sin (u5 (t)) + 2 * Cy * (u5 (t) - (x2 (t) +一个* x3 (t)) / x1 (t)) * cos (u5 (t)) + 2 * Cy * * x3 (b (t) x2 (t) / x1 (t)) y3 (t) = x3 (t)

IDNLGREY车辆模型

作为车辆识别实验的基础,我们首先需要创建一个IDNLGREY模型文件来描述这些车辆方程。这里我们依赖于C-MEX建模,并创建了一个vehicle_c.c模型文件,其中NY被设置为3。vehicle_c.c、compute_dx和compute_y的状态和输出更新函数有点复杂,包括几个标准的c定义的数学函数,如cos(.)和sin(.)以及pow(.),用于计算其参数的能力。

状态更新函数compute_dx返回dx(参数1),并使用3个输入参数:状态向量x,输入向量u,以及编码在p中的6个标量参数(模板C-MEX模型文件中的t和auxvar已被删除):

/ *状态方程。void compute_dx(double *dx, double *x, double *u, double **p){/*获取模型参数。*/ *m, *a, *b, *Cx, *Cy, *CA;m = p [0];/ *车辆质量。*/ a = p;/*前轴到轮毂的距离。*/ b = p;/*后轴到齿轮箱的距离。* Cx = p[3]; /* Longitudinal tire stiffness. */ Cy = p[4]; /* Lateral tire stiffness. */ CA = p[5]; /* Air resistance coefficient. */
/* x[0]:车辆纵向速度。*/ /* x[1]:车辆横向速度。*/ /* x[2]:偏航率。* / dx [0] = [1] * x [2] + 1 / m [0] * (Cx [0] * (u [0] + [1]) * cos (u [4]) 2 * Cy [0] * (u[4]——(x [1] + [0] * x [2]) / x[0]) *罪(u[4]) +残雪[0]* (u [2] + [3]) ca[0] *战俘(x [0], 2));dx [1] = - x [0] * x [2] + 1 / m [0] * (Cx [0] * (u[0] +[1]) *罪(u [4]) + 2 * Cy [0] * (u[4]——(x [1] + [0] * x [2]) / x [0]) * cos (u [4]) + 2 * Cy [0] * (b [0] * x [2] - x [1]) / x [0]);dx[2] = 1 /(战俘((([0]+ b [0]) / 2), 2) * m [0]) * ([0] * (Cx [0] * (u[0] +[1]) *罪(u [4]) + 2 * Cy [0] * (u[4]——(x [1] + [0] * x [2]) / x [0]) * cos (u [4])) 2 * b [0] * Cy [0] * (b [0] * x [2] - x [1]) / x [0]);}

输出更新函数compute_y返回y(参数1)并使用3个输入参数:状态向量x、输入向量u和6个参数中的5个(不需要空气阻力CA)编码在p中:

/ *输出方程。void compute_y(double *y, double *x, double *u, double **p){/*获取模型参数。*/ double *m = p[0];/ *车辆质量。*/ a = p;/*前轴到轮毂的距离。*/ double *b = p;/*后轴到齿轮箱的距离。*/ double *Cx = p[3];/*纵向轮胎刚度。 */ double *Cy = p[4]; /* Lateral tire stiffness. */
/* y[0]:车辆纵向速度。*/ /* y[1]:车辆横向加速度。*/ /* y[2]:偏航率。*/ y = x;y [1] = 1 / m [0] * (Cx [0] * (u[0] +[1]) *罪(u [4]) + 2 * Cy [0] * (u[4]——(x [1] + [0] * x [2]) / x [0]) * cos (u [4]) + 2 * Cy [0] * (b [0] * x [2] - x [1]) / x [0]);y [2] = x [2];}

有了适当的模型结构文件,下一步是创建反映建模情况的IDNLGREY对象。为了方便记账,我们还指定了输入和输出的名称和单位。

文件名=“vehicle_c”描述模型结构的文件。订单= [3 5 3];%模型订单[ny nx nu]。参数= [1700;1.5;1.5;1.5 e5;4 e4;0.5);%初始参数。InitialStates = [1;0;0);%初始状态的初始值。t = 0;%的时间连续系统。nlgr = idnlgrey(FileName, Order, Parameters, InitialStates, Ts,...“名字”“自行车车模式”“TimeUnit”“年代”);nlgr。InputName = {“左前轮胎打滑”...% u(1)。“右前轮胎打滑”...% u(2)。“左后轮胎打滑”...% u(3)。“右后轮胎打滑”...% u(4)。转向角的};...% u(5)。nlgr。InputUnit = {“比”“比”“比”“比”rad的};nlgr。OutputName = {“长。速度的...% y (1);纵向车辆速度的纬度。accel。”...% y (2);车辆横向加速度“偏航率”};...%(3)。nlgr。OutputUnit = {“米/秒”“米/秒^ 2”“rad / s”};

(初始)状态和模型参数的名称和单位是通过setit指定的。我们还使用这个命令来指定第一个初始状态(纵向速度)应该是严格正的,以使模型有效,并指定所有模型参数应该是严格正的。当执行初始状态和/或模型参数估计时,将遵循这些约束条件。

nlgr = setinit (nlgr,“名字”, {“纵向车辆速度”...% x(1)。“横向车辆速度”...% x(2)。“偏航率”});...% x(3)。nlgr = setinit (nlgr,“单位”, {“米/秒”“米/秒”“rad / s”});nlgr.InitialStates(1)。最小=每股收益(0);%纵向速度> 0为模型有效。nlgr = setpar (nlgr,“名字”, {“车辆质量”...% m。‘前轴到轮齿的距离’...%的‘后轴到齿轮箱的距离’...% b。轮胎纵向刚度的...%残雪。“横向轮胎刚度”...% Cy。“空气阻力系数”});...% CA。nlgr = setpar (nlgr,“单位”, {“公斤”“米”“米”“N”“N / rad”“1 / m”});nlgr = setpar (nlgr,“最低”, num2cell (eps (0) * (6,1)));%所有参数> 0!

该模型结构的六个参数中的四个可以很容易地通过所述车辆的数据表获得:

a = 1.5 m b = 1.5 m CA = 0.5或0.7 1/m(见下文)

因此,我们不会估计这些参数:

nlgr.Parameters(1)。固定= true;nlgr.Parameters(2)。固定= true;nlgr.Parameters(3)。固定= true;nlgr.Parameters(6)。固定= true;

在此基础上,通过PRESENT获得输入的IDNLGREY模型结构的文本摘要,如下所示。

礼物(nlgr);
nlgr =由'vehicle_c'定义的连续时间非线性灰箱模型(MEX-file): dx/dt = F(t, u(t), x(t), p1,…y(t) = H(t, u(t), x(t), p1,…,p6) + e(t) with 5 input(s), 3 state(s), 3 output(s), and 2 free parameter(s) (out of 6). Inputs: u(1) Slip on front left tire(t) [ratio] u(2) Slip on front right tire(t) [ratio] u(3) Slip on rear left tire(t) [ratio] u(4) Slip on rear right tire(t) [ratio] u(5) Steering angle(t) [rad] States: Initial value x(1) Longitudinal vehicle velocity(t) [m/s] xinit@exp1 1 (fixed) in ]0, Inf] x(2) Lateral vehicle velocity(t) [m/s] xinit@exp1 0 (fixed) in [-Inf, Inf] x(3) Yaw rate(t) [rad/s] xinit@exp1 0 (fixed) in [-Inf, Inf] Outputs: y(1) Long. velocity(t) [m/s] y(2) Lat. accel.(t) [m/s^2] y(3) Yaw rate(t) [rad/s] Parameters: Value p1 Vehicle mass [kg] 1700 (fixed) in ]0, Inf] p2 Distance from front axle to COG [m] 1.5 (fixed) in ]0, Inf] p3 Distance from rear axle to COG [m] 1.5 (fixed) in ]0, Inf] p4 Longitudinal tire stiffness [N] 150000 (estimated) in ]0, Inf] p5 Lateral tire stiffness [N/rad] 40000 (estimated) in ]0, Inf] p6 Air resistance coefficient [1/m] 0.5 (fixed) in ]0, Inf] Name: Bicycle vehicle model Status: Created by direct construction or transformation. Not estimated. More information in model's "Report" property.

输入输出数据

此时,我们将加载可用的输入-输出数据。这个文件包含了三个不同实验的数据:

A.高刚度轮胎的模拟数据[y1 u1]。B.低刚度轮胎的模拟数据[y2u2]。C. Volvo V70 [y3u3]的测量数据。

在所有情况下,采样时间Ts = 0.1秒。

负载(fullfile (matlabroot“工具箱”“识别”“iddemos”“数据”“vehicledata”));

A.使用模拟的高轮胎刚度数据进行系统识别

在我们的首次车辆识别实验中,我们考虑了模拟的高轮胎刚度数据。首先创建模型结构nlgr和IDDATA对象z1的副本,反映这种特殊的建模情况。5个输入信号存储在u1中,3个输出信号存储在y1中。前轮的滑移输入(由车轮速度信号产生)被选择为具有恒定偏移的正弦曲线;偏航率也是正弦曲线,但振幅和频率不同。在现实中,这是一个有点人为的情况,因为很少有人在横向如此多地刺激车辆。

nlgr1 = nlgr;nlgr1。Name =“高轮胎刚度自行车车型”;Z1 = iddata(y1, u1, 0.1,)“名字”“模拟高轮胎刚度车辆数据”);z1。InputName = nlgr1.InputName;z1。InputUnit = nlgr1.InputUnit;z1。OutputName = nlgr1.OutputName;z1。OutputUnit = nlgr1.OutputUnit;z1。Tstart = 0; z1.TimeUnit =“年代”

输入和输出显示在两个图形中。

h_gcf = gcf;集(h_gcf,“DefaultLegendLocation”“东南”);h_gcf。Position = [100 100 795 634];我= 1:z1。ν次要情节(z1。ν,1,);情节(z1。SamplingInstants z1.InputData (:, i));标题([“输入#”num2str(我)“:”z1.InputName{我}]);包含('');轴结束包含([z1。域“(”z1。TimeUnit“)”]);

图2:输入到车辆系统与高轮胎刚度。

我= 1:z1。纽约次要情节(z1。纽约,1,我);情节(z1。SamplingInstants z1.OutputData (:, i));标题([“输出#”num2str(我)“:”z1.OutputName{我}]);包含('');轴结束包含([z1。域“(”z1。TimeUnit“)”]);

图3:从具有高轮胎刚度的车辆系统输出。

下一步是研究初始模型的性能,为此我们执行一个仿真。注意,初始状态被固定为一个非零值,作为模型结构中使用的第一状态(纵向车辆速度)的分母。在绘图窗口中显示了真实和模拟输出(初始模型)之间的比较。

[], compareOptions()“InitialCondition”“模型”));

图4:轮胎高刚度初始车辆模型的真实输出与仿真输出对比。

为了提高模型的拟合度,对轮胎的两个刚度参数Cx和Cy进行了估计,并利用估计的模型进行了新的仿真。

Nlgr1 = nlgreyest(z1, Nlgr1);

图窗口显示了真实输出和模拟输出(使用估计模型)之间的比较。

z1, nlgr1, [], compareOptions(“InitialCondition”“模型”));

图5:轮胎高刚度估计车辆模型的真实输出与仿真输出比较。

估计模型的仿真性能较好。估计的刚度参数也接近Simulink®中用于生成真实输出数据的参数:金宝app

disp (“真正的估计”);流('纵向刚度:%6.0f %6.0f\n'2 e5 nlgr1.Parameters (4) value);流('横向刚度:%6.0f %6.0f\n'5 e4, nlgr1.Parameters (5) value);
估算纵向刚度:200000 198517横向刚度:50000 53752

B.使用模拟的低轮胎刚度数据进行系统识别

在第二个实验中,我们重复了第一个实验中的建模,但现在使用的是模拟的低轮胎刚度数据。

nlgr2 = nlgr;nlgr2。Name =“轮胎刚度低的自行车车型”;Z2 = iddata(y2, u2, 0.1,)“名字”“模拟低轮胎刚度车辆数据”);z2。InputName = nlgr2.InputName;z2。InputUnit = nlgr2.InputUnit;z2。OutputName = nlgr2.OutputName;z2。OutputUnit = nlgr2.OutputUnit;z2。Tstart = 0; z2.TimeUnit =“年代”

输入和输出显示在两个图形中。

clf我= 1:z2。ν次要情节(z2。ν,1,);情节(z2。SamplingInstants z2.InputData (:, i));标题([“输入#”num2str(我)“:”z2.InputName{我}]);包含('');轴结束包含([z2。域“(”z2。TimeUnit“)”]);

图6:输入到车辆系统与低轮胎刚度。

clf我= 1:z2。纽约次要情节(z2。纽约,1,我);情节(z2。SamplingInstants z2.OutputData (:, i));标题([“输出#”num2str(我)“:”z2.OutputName{我}]);包含('');轴结束包含([z2。域“(”z2。TimeUnit“)”]);

图7:轮胎刚度低的车辆系统的输出。

接下来,我们研究了初始模型的性能(与初始高轮胎刚度模型具有相同的参数)。在绘图窗口中显示了真实和模拟输出(初始模型)之间的比较。

[],比较选项z2, nlgr2, []“InitialCondition”“模型”));

图8:轮胎刚度较低的初始车辆模型的真实输出与仿真输出对比。

然后估计这两个刚度参数。

Nlgr2 = nlgreyest(z2, Nlgr2);

图窗口显示了真实输出和模拟输出(使用估计模型)之间的比较。

z2, nlgr2, [], compareOptions()“InitialCondition”“模型”));

图9:轮胎刚度较低的估计车辆模型的真实输出与仿真输出比较。

估计模型的仿真性能再次很好。即使在高轮胎刚度的情况下使用相同的参数起点,估计的刚度参数在这里也接近于在Simulink中用于生成真实输出数据的参数:金宝app

disp (“真正的估计”);流('纵向刚度:%6.0f %6.0f\n'1 e5 nlgr2.Parameters (4) value);流('横向刚度:%6.0f %6.0f\n'2.5 e4 nlgr2.Parameters (5) value);
估算纵向刚度:100000 99573横向刚度:25000 26117

C.使用测量的沃尔沃V70数据进行系统识别

在最后的实验中,我们考虑了在沃尔沃V70上收集的数据。如上所述,我们复制通用的车辆模型对象nlgr,并创建一个包含测量数据的新IDDATA对象。在这里,我们还将空气阻力系数从0.50提高到0.70,以更好地反映沃尔沃V70的情况。

nlgr3 = nlgr;nlgr3。Name =“沃尔沃V70车型”;nlgr3.Parameters(6)。值= 0.70;%对Volvo数据使用另一个初始CA。Z3 = iddata(y3, u3, 0.1,)“名字”“沃尔沃V70数据”);z3。InputName = nlgr3.InputName;z3。InputUnit = nlgr3.InputUnit;z3。OutputName = nlgr3.OutputName;z3。OutputUnit = nlgr3.OutputUnit;z3。Tstart = 0; z3.TimeUnit =“年代”

输入和输出显示在两个图形中。可以看出,实测数据的噪声比较大。

clf我= 1:z3。ν次要情节(z3。ν,1,);情节(z3。SamplingInstants z3.InputData (:, i));标题([“输入#”num2str(我)“:”z3.InputName{我}]);包含('');轴结束包含([z3。域“(”z3。TimeUnit“)”]);

图10:测量来自沃尔沃V70汽车的输入。

clf我= 1:z3。纽约次要情节(z3。纽约,1,我);情节(z3。SamplingInstants z3.OutputData (:, i));标题([“输出#”num2str(我)“:”z3.OutputName{我}]);包含('');轴结束包含([z3。域“(”z3。TimeUnit“)”]);

图11:测量从沃尔沃V70汽车的输出。

接下来,我们研究初始模型的性能与初始状态的估计。在绘图窗口中显示了真实和模拟输出(初始模型)之间的比较。

nlgr3 = setinit (nlgr3,“价值”, {18.7;0;0});%初始状态的初始值。clf比较(z3、nlgr3);

图12:沃尔沃V70初始车型实测输出与仿真输出对比

然后使用Levenberg-Marquardt搜索方法估计轮胎刚度参数Cx和Cy,然后使用估计模型进行新的仿真。此外,我们在这里估计了纵向速度的初始值,而横向速度和偏航率的初始值保持不变。

nlgr3 = setinit (nlgr3,“固定”,{假;真正的;真正的});nlgr3 = nlgreyest(z3, nlgr3, nlgreyestOptions())“SearchMethod”“lm”));

图窗口显示了真实输出和模拟输出(使用估计模型)之间的比较。

比较(z3、nlgr3);

图13:首次估算的沃尔沃V70车型实测输出与仿真输出对比

最终沃尔沃V70模型的刚度参数估计是合理的,但这里不知道它们的实际值是多少。

disp (“估计”);流(“纵向刚度:% 6.0 f \ n”, nlgr3.Parameters (4) value);流('横向刚度:%6.0f\n', nlgr3.Parameters (5) value);
估计纵向刚度:108873横向刚度:29964

通过PRESENT可以获得关于沃尔沃V70车型的进一步信息。有趣的是,在这里注意到,与估计的侧向轮胎刚度相关的不确定性相当高(而且显著高于纵向轮胎刚度)。这种不确定性的部分原因是在试驾过程中横向加速度变化很小。

礼物(nlgr3);
nlgr3 = 'vehicle_c'定义的连续时间非线性灰箱模型(MEX-file): dx/dt = F(t, u(t), x(t), p1,…y(t) = H(t, u(t), x(t), p1,…,p6) + e(t) with 5 input(s), 3 state(s), 3 output(s), and 2 free parameter(s) (out of 6). Inputs: u(1) Slip on front left tire(t) [ratio] u(2) Slip on front right tire(t) [ratio] u(3) Slip on rear left tire(t) [ratio] u(4) Slip on rear right tire(t) [ratio] u(5) Steering angle(t) [rad] States: Initial value x(1) Longitudinal vehicle velocity(t) [m/s] xinit@exp1 17.6049 (estimated) in ]0, Inf] x(2) Lateral vehicle velocity(t) [m/s] xinit@exp1 0 (fixed) in [-Inf, Inf] x(3) Yaw rate(t) [rad/s] xinit@exp1 0 (fixed) in [-Inf, Inf] Outputs: y(1) Long. velocity(t) [m/s] y(2) Lat. accel.(t) [m/s^2] y(3) Yaw rate(t) [rad/s] Parameters: ValueStandard Deviation p1 Vehicle mass [kg] 1700 0 (fixed) in ]0, Inf] p2 Distance from front axle to COG [m] 1.5 0 (fixed) in ]0, Inf] p3 Distance from rear axle to COG [m] 1.5 0 (fixed) in ]0, Inf] p4 Longitudinal tire stiffness [N] 108873 26.8501 (estimated) in ]0, Inf] p5 Lateral tire stiffness [N/rad] 29963.5 217.877 (estimated) in ]0, Inf] p6 Air resistance coefficient [1/m] 0.7 0 (fixed) in ]0, Inf] Name: Volvo V70 vehicle model Status: Termination condition: Maximum number of iterations reached.. Number of iterations: 20, Number of function evaluations: 41 Estimated using Solver: ode45; Search: lm on time domain data "Volvo V70 data". Fit to estimation data: [-374.2;29.74;34.46]% FPE: 2.362e-07, MSE: 0.3106 More information in model's "Report" property.

结束语

在实际应用中,轮胎刚度参数的估计是一个相当复杂的问题。首先,上述模型结构中引入的近似适用于较窄的操作区域,不能使用高加速度、制动等情况下的数据。刚度也随环境条件而变化,例如,周围的温度、轮胎内的温度和路面条件,这些在使用的模型结构中没有考虑。其次,刚度参数的估计很大程度上依赖于驱动方式。在第三次辨识实验中,当大多数情况下都是直线前进时,很难估计刚度参数(尤其是横向刚度),或者说参数不确定性很大。