主要内容

车辆动力学系统建模

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

车辆动力学建模

下图是需要考虑的车辆建模情况。

图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)) *罪(δ(t)) dt + (F_y, FL (t) + F_y FR (t)) * cos(δ(t))) - b * (F_y, RL (t) + F_y, RR (t)))

其中下标x表示力F在纵向上作用,y表示力F在横向上作用。缩写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)左后轮胎滑移[比值]。u4(t) = s_RR(t)右后轮胎滑移[比例比]。u5(t) = delta(t)转向角[rad]。

模型参数:

m车辆质量[kg]。a前轴到COG的距离[m]。b后轴到COG的距离[m]。Cx轮胎纵向刚度[N]。侧胎刚度[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){/*检索模型参数。*/ double *m, *a, *b, *Cx, *Cy, *CA;M = p[0];/*车辆质量。*/ a = p[1];/*前轴到COG的距离。*/ b = p[2];/*后轴到COG的距离。*/ 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,以及编码在p中的6个参数中的5个(不需要空气阻力CA):

/*输出方程。*/ void compute_y(double *y, double *x, double *u, double **p){/*检索模型参数。*/ double *m = p[0];/*车辆质量。*/ double *a = p[1];/*前轴到COG的距离。*/ double *b = p[2];/*后轴到COG的距离。*/ double *Cx = p[3];/*轮胎纵向刚度。 */ double *Cy = p[4]; /* Lateral tire stiffness. */
/* y[0]:车辆纵向速度。*/ /* y[1]:车辆横向加速。*/ /* y[2]:偏航速率。*/ y[0] = x[0];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”描述模型结构的文件。Order = [3 5 3];%型号订单[ny nx nu]。参数= [1700;1.5;1.5;1.5 e5;4 e4;0.5);初始参数。InitialStates = [1;0;0);初始状态的初始值。Ts = 0;%时间连续系统。nlgr = idnlgrey(文件名,顺序,参数,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”};

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

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

该模型结构的六个参数中的四个可以通过车辆的数据表轻松获得:

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

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

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

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

礼物(nlgr);
nlgr = 'vehicle_c' (MEX-file)定义的连续时间非线性灰盒模型:dx/dt = F(t, u(t), x(t), p1,…, p6) 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. Model Properties

输入输出数据

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

A.高刚度轮胎仿真数据[y1 u1]。B.低刚度轮胎的模拟数据[y2 u2]。C.沃尔沃V70的测量数据[y3 u3]。

在所有情况下,采样时间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。位置= [100 100 795 634];I = 1:z1。ν次要情节(z1。Nu, 1, i);情节(z1。SamplingInstants z1.InputData (:, i));标题([“输入#”num2str(我)“:”z1.InputName{我}]);包含();轴结束包含([z1。域“(”z1。TimeUnit“)”]);

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

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

图3:来自高轮胎刚度的车辆系统的输出。

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

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

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

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

Nlgr1 = nlgreyest(z1, Nlgr1);

真实输出和模拟输出(与估计模型)之间的比较显示在一个绘图窗口中。

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

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

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

disp (“真实估计”);流('纵向刚度:%6.0f %6.0f\n', 2e5, nlgr1.Parameters(4).Value);流('侧刚度:%6.0f %6.0f\n', 5e4, 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 =“年代”

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

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

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

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

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

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

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

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

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

Nlgr2 = nlgreyest(z2, Nlgr2);

真实输出和模拟输出(与估计模型)之间的比较显示在一个绘图窗口中。

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

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

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

disp (“真实估计”);流('纵向刚度:%6.0f %6.0f\n', 1e5, nlgr2.Parameters(4).Value);流('侧刚度:%6.0f %6.0f\n', 2.5e4, 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 =“年代”

输入和输出显示在两个图形中。可以看出,测量的数据是相当嘈杂的。

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

图10:从沃尔沃V70车辆测量输入。

clfI = 1:z3。纽约次要情节(z3。Ny, 1, i);情节(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车型模拟输出的比较。

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

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

真实输出和模拟输出(与估计模型)之间的比较显示在一个绘图窗口中。

比较(z3、nlgr3);

图13:测量输出与第一个估计沃尔沃V70车型的模拟输出之间的比较。

最终沃尔沃V70模型的刚度参数估计是合理的,但这里不知道他们的真实值是什么。

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

进一步的信息估计沃尔沃V70车型是通过PRESENT获得的。值得注意的是,与估计横向轮胎刚度相关的不确定性相当高(并且明显高于纵向轮胎刚度)。这种不确定性部分源于测试驾驶过程中横向加速度变化很小。

礼物(nlgr3);
nlgr3 = 'vehicle_c' (MEX-file)定义的连续时间非线性灰盒模型:dx/dt = F(t, u(t), x(t), p1,…, p6) 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. Model Properties

结束语

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