MATLAB-数据插值

在车辆行驶中,从驾驶员看到障碍物开始,到作出判断而采取制动措施停车所需要的最短距离叫做停车视距。停车视距由三部分组成:一是驾驶员反应时间内行驶的距离(即反应距离);二是开始制动到车辆完全停止所行驶的距离(即制动距离);三是车辆停止时与障碍物应该保持的安全距离。其中,制动距离主要与行驶速度和路面类型有关。假设驾驶员的反应时间为10s,安全距离为10m。根据测试,某型车辆在潮湿天气于沥青路面行驶时,其行车速度(单位:km/h)与制动距离(单位:m)的关系如下表所示:

速度

20

30

40

50

60

70

80

制动距离

3.15

7.08

12.59

19.68

28.34

38.57

50.4

速度

90

100

110

120

130

140

150

制动距离

63.75

78.71

95.22

113.29

132.93

154.12

186.87

数据插值的实现方法
在MATLAB中,一维插值函数为interp1(),其调用格式为:
Y1=interp1(X,Y,X1,method)
该语句将根据X、Y的值,计算函数在X1处的值。其中,X、Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点。
method参数用于指定插值方法,常用的取值有以下四种:
(1)linear:线性插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
(2)nearest:最近点插值。选择最近样本点的值作为插值数据。
(3)pchip:分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
(4)spline:3次样条插值。每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。

假设驾驶员的反应时间为10s,安全距离为10m。请问:
①根据某驾驶员的实际视力和视觉习惯,其驾驶时的有效视距为120m,则其在该路面行车时,时速最高不能超过多少(结果取整)?
②若以表中数据为参考,设计一条最高时速为125km/h的高速公路,则设计人员应该保证驾驶者在公路上任一点的可视距离为多少米?

设速度为vv,停车视距为dd,反应距离为d_1d1​,制动距离为d_2d2​,安全距离为d_3d3​,反应时间为a_sas​,则
d=d_1+d_2+d_3d=d1​+d2​+d3​其中,d_1=a_svd1​=as​vd_2d2​为v的函数,d_3d3​已知。
第一问:根据某驾驶员的实际视力和视觉习惯,其驾驶时的有效视距为120m,则其在该路面行车时,时速最高不能超过多少(结果取整)?
已知反应时间为10s,安全距离为10m,可采用解方程方法:
10v+d_2+10=12010v+d2​+10=120存在的问题是,d_2d2​vv的函数,但是函数关系未知,方程不可解。
下面考虑数据插值方法,以表格中的数据为样本,进行数据插值,计算出与120m的停车视距所对应的速度指标。
编程思路:
第一步:建立速度和停车视距向量。
第二步:以1为单位,对采样区间内所有速度进行插值,计算出相应的停车视距。
第三步:求出停车视距120所对应的速度。
第四步:绘图展示。
如何根据停车视距120找到对应的速度?
第一步:令代表停车视距的向量di减去120,再取绝对值,得到一个新的向量x。
第二步:将x按升序排列,并记录最小元素的序号,该序号即为停车视距120所对应的速度数据在向量vi中的序号。
第三步:根据序号取得速度数据。

x=[0,3,5,7,9,11,12,13,14,15]; 
y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]; 
x1=0:0.1:15; 
y1=interp1(x,y,x1,'spline'); %3次样条插值
subplot(2,2,1)
plot(x1,y1)
legend('3次样条插值')
hold on
y2=interp1(x,y,x1,'linear'); %线性插值
subplot(2,2,2)
plot(x1,y2,'r')
legend('线性插值')
y3=interp1(x,y,x1,'pchip'); %分段3次埃尔米特插值
subplot(2,2,3)
plot(x1,y3,'g')
legend('分段3次埃尔米特插值')
y4=interp1(x,y,x1,'nearest'); %最近点插值
subplot(2,2,4)
plot(x1,y4,'b')
legend('最近点插值')
v=20:10:150;
vs=v.*(1000/3600);
d1=10.*vs;
d2=[3.15,7.08,12.59,19.68,28.34,38.57,50.4,63.75,78.71,95.22,113.29,132.93,154.12,176.87];
d3=10;
d=d1+d2+d3;
vi=20:1:150;
di=interp1(v,d,vi,'spline');
x=abs(di-120);
[y,i]=sort(x);
vi(i(1))
plot(vi,di,vi(i(1)),di(i(1)),'rp')

停车视距的增长随着车速增加呈非线性增长。速度越快,要求视线越远。
第二问:设计一条最高时速为125km/h的高速公路,则设计人员应该保证驾驶者在公路上任一点的可视距离为多少米?

>>j=find(vi==125);
>>di(j)
>>ans=
 480.14
>>plot(vi,di,125,480.14,'rp')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值