% 机动车刹车距离
%% 插值数据处理
clear; clc;
v = 20 : 10 : 150;  % 速度，插值节点，单位：千米/小时
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];  % 制动距离，插值节点
vi = 20 : 1 : 150;  % 速度，待插值点
d2i = interp1(v, d2, vi, 'spline');  % 样条插值得到的制动距离

%% 根据某驾驶员的实际视力和视觉习惯，其驾驶时的有效视距为120m，则其在该路面行车时，时速最高不能超过多少(结果取整)?
dl = 120;  % 某路段的有效视距，单位：米
time = 10;  % 驾驶员的平均反应时间，单位：秒
vs = vi * 1000 / 3600; % 速度，插值节点，单位：米/秒
d1 = vs * time; % 驾驶员反应距离
d3 = 10;  % 预留安全距离，单位：米
di = d1 + d2i + d3;  % 有效视距 = 驾驶员反应距离 + 制动距离 + 预留安全距离
x = abs(di - dl);   % 有效视距差的绝对值
[y,i]=sort(x);    % 排序，i是排序后元素的序号
fprintf('有效视距%.4f米某路段的最高时速: %.f千米/小时\n',dl,vi(i(1)));
plot(vi,di,vi(i(1)),di(i(1)),'rp');

%% 若以表中数据为参考，设计一条最高时速为125km/h的高速公路，则设计人员应该保 证驾驶者在公路上任一点的可视距离为多少米?
v_max = 125; % 最高限速，单位：千米/小时
i = find(vi - 125 == 0);
fprintf('最高时速%.4f千米/小时的路段需保证有效视距: %.4f米\n', v_max, di(i));