2017年认证杯SPSSPRO杯数学建模A题(第二阶段)安全的后视镜全过程文档及程序

news2024/9/24 5:24:39

2017年认证杯SPSSPRO杯数学建模

A题 安全的后视镜

原题再现:

  汽车后视镜的视野对行车安全非常重要。一般来说,汽车的后视镜需要有良好的视野范围,以便驾驶员能够全面地了解车后方的道路情况。同时,后视镜也要使图像的畸变尽可能小,以使驾驶员能够准确地判断距离。
  如果汽车的后视镜使用平面镜,图像没有畸变,对距离的判断十分准确。但是当镜面大小受限时,视野相对较小。如果使用凸面镜,可以以较小的镜面获得更加宽广的视野,但是图像存在畸变,很难准确判断镜中物体与自己的距离。有的镜面是由平面镜和凸面镜拼合在一起组成,意图兼顾两者的优点。但事实上,驾驶员在观察后视镜时,两者很难同时看清。较受欢迎的做法是构造一个变曲率的后视镜,使后视镜可以兼顾两者的优点,也降低了观察和距离判断上的难度。目前市场上有售不同设计的变曲率后视镜。最常见的是一种双曲率后视镜,内侧接近平面镜,外侧则是一个凸面镜,在它们之间进行了平滑的过渡。图 1 是两个例子,为了便于驾驶员对距离进行判断,镜中由虚线或细实线示意了不同曲率的镜面间的分界线。它们的具体设计有所区别,性能也会有所不同。
在这里插入图片描述
  第二阶段问题: 对后视镜的布置而言,相比于形式较为类似的小轿车,大客车具有复杂得多的情况。即使在车体轮廓近似为长方体的前提下,镜面的形状、大小和安装位置等各种参数也都可能有很大的差别 ( 如图 2 )。请你建立相应的数学模型,对车体外形近似为长方体的大客车设计最优的后视镜方案,方案中需要包括镜面的曲面外形、边缘轮廓、尺寸以及安装位置等参数。同样地,由于我们只做理论上的研究,所以在设计时暂不需要考虑和遵循相应的国家标准。

整体求解过程概述(摘要)

  后视镜作为驾驶员的“第三只眼睛”,在倒车、制动等过程中发挥着重要作用。相对于小轿车,大客车底盘较高,车身较长,视野盲区较大,后视镜设计更为复杂。本文的目的在于提供一种大客车后视镜的最优布置方案,以实现综合性能最优化。
  第一,确定后视镜的布置参数。采用两种双曲率曲面作镜面,利用解析几何求出其曲面方程。在设计后视镜时让视野覆盖主要的下视野盲区、设定下方视野约束。此外结合现实和人机工程,将后视镜尺寸及安装位置控制在一定范围内。
  第二,计算视野面积。基于反射原理和数值模拟技术,本文求出后视镜边缘点在测试屏板上的投影,从而得到了视野区域的大致轮廓。采用改进的蒙特卡洛模拟计算出该不规则视野区域的面积。剔除地面以下和左、右眼视野重复计算的部分后,得到驾驶员双眼的有效视野区域。
  第三,计算畸变指数。作关于镜面平行于坐标轴的 21*20 的网格剖分,分别计算平面后视镜与双曲率后视镜上的网格点在屏板上形成的投影的平均距离。定义畸变指数为衡量图像畸变程度的无量纲指标。
  第四,计算空气阻力。根据空气阻力公式,计算后视镜面积对应的空气阻力大小。最后,建立多目标最优化模型。以视野分界比率、曲率半径等为自变量,以视野面积、畸变指数和空气阻力为优化目标,建立多目标最优化数学模型。运用理想点法,找出理想比率取值,基于欧式距离构建评判函数。根据现有的专利和行业标准,设定自变量的合理范围,并采用遗传算法求解该模型,使得评判函数最小化。本模型便于计算,适用范围广,兼顾求解的速度和质量。同时无须对模型进行过多修改,即可有效提升求解精度。
  本文选取三种型号的金龙客车作为参考车型,求解最优化参数设计。结果分析表明,○1 不同车型的最优的后视镜安装位置有很大的差异:对于车型较大、底盘较高的客车,最佳位置在驾驶员位置的上前方;而车型较小、底盘较低的客车则在与驾驶员眼点相对持平的位置。○2 最优的镜面形状需要考虑与车型有关的因素,针对不同车型具体设计。○3 就镜面类型而论,第一类镜面适用于车 1 和车 2,而第二类镜面对车 3 是更好的选择。

问题分析:

  第一,载客汽车驾驶座附近车身的盲区需要特别考虑。载客汽车后视镜常常安装于车身前部或侧部,驾驶员可通过前风挡玻璃和左右汽车玻璃看外视镜,但是由于客车车型与小轿车车型相比,客车底座更高、车身更长,在驾驶时,车头、左右后视镜下方等区域容易形成视觉盲区,形成交通安全隐患。大客车外后视镜往往采用竖直的长方形造型,以增加可观察的地面面积(或下视野面积),大多数的客车还会安装一面小凸面镜来减少盲区,如图所示。在驾驶过程中,驾驶员通过小凸面镜观察车身下方以及一些死角,通过外后视镜观察道路两侧情况。因此相对于小轿车,大客车的外后视镜在设计上尤其要考虑到驾驶座附近车身的盲区问题。
在这里插入图片描述
  第二,采用双曲率曲面作为后视镜的镜面。后视镜如果采用平面镜,图像没有畸变,但由于镜面大小受限,视野相对较小;如果采用凸面镜,可以以较小的镜面获得更宽广的视野范围,但是图像产生畸变,而双曲率镜面可以有效减少平、凸面镜带来的不利影响,因此本文仍然采用双曲率曲面作为后视镜镜面设计的要件。沿用第一阶段的研究结论,我们设计出一种由两个柱面拼接而成的镜面,解决了下视野盲区问题,但是水平视野仍然受到约束。经过第一阶段相关论文启发,我们又设计出一种由柱面与球面拼接而成的镜面。
  第三,结合现实考虑,客车后视镜尺寸以及安装位置应控制在一定范围内。镜面面积越大,视野范围越大,但面积大的镜面也会给车辆增加空气阻力,因此在设计时镜面面积应该控制在一定的范围下。根据人机工程理论,在驾驶过程中驾驶员如果频繁转动头部和眼部,将会增加驾驶员的疲劳程度。出于驾驶员驾驶的舒适度和安全性考虑,后视镜安装位置控制在驾驶员眼点一定的可视区域内。
  第四,最优的后视镜方案与后视镜所要实现的目的有关,比如满足驾驶适宜性、减少空气阻力,与整车风格一致、外形美观等要求,本文考虑视野面积、畸变率和空气阻力作为最优方案指标。
  此外,由于不同的载客汽车具有不同的固有车辆参数,比如车身长度、宽度、长度,司机双眼位置等,这些固有参数将影响最优方案的结果。因此我们选用了三种不同车型的载客汽车,运用建立的模型设计出了各自后视镜的最优方案,并对影响后视镜最优方案的因素进行分析。

模型假设:

  1. 只考虑水平面上的视野区域和失真度,后视镜所用的镜面为柱面、球面镜
  2. 后视镜垂直于水平地面,与车身前进方向夹角与 90°
  3. 镜面光滑,材质均匀,光在镜面没有能量损失,反射率为 100%
  4. 忽略后视镜外壳以及其他配件,只考虑镜面玻璃
  5. 只考虑左侧外后视镜的布置情况

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

function view=edgefunc(edge_x,edge_y,edge_z,r_max,r_min,ratio,L,W,h,eye)
screen_y=11950;
number=length(edge_x);
view=[];
y_1=-r_max+sqrt(-L^2*ratio^2+r_max^2);
z_1=h-L*ratio;%分界点
sin_theta=(L*ratio)/r_max;
cos_theta=sqrt(-L^2*ratio^2+r_max^2)/r_max;
y_min=y_1-r_min*cos_theta;
z_min=z_1+sin_theta*r_min;%小圆圆心
for i=1:number
 edge=[edge_x(i),edge_y(i),edge_z(i)];
 rushe=edge-eye;
 rushe=rushe/norm(rushe);
 if edge_z(i)>=z_1
 faxian=[0,edge_y(i)+r_max,edge_z(i)-h];
 faxian=faxian/norm(faxian);
 chushe=rushe-2*dot(rushe,faxian)*faxian;
 else
 faxian=[0,edge_y(i)-y_min,edge_z(i)-z_min];
 faxian=faxian/norm(faxian);
 chushe=rushe-2*dot(rushe,faxian)*faxian;
 end
 c=(screen_y-edge_y(i))/chushe(2);
screen_x=chushe(1)*c+edge_x(i);
 screen_z=chushe(3)*c+edge_z(i);
 view=[view [screen_x;screen_y;screen_z]];
 %plot3(view(1,:),view(2,:),view(3,:),'*')
 %plot(view(1,:),view(3,:),'*')
 %set(gca,'xlim',[-7000,0],'ylim',[-1500,1500])
 %title('最优设计参数下的投影点')
 %legend('投影点','Location','northeast')
end
end
function a=mianji(edge_x,edge_y,edge_z,r_max,r_min,ratio,L,W,h,eye1,eye2)
view1=edgefunc(edge_x,edge_y,edge_z,r_max,r_min,ratio,L,W,h,eye1);
v1=[view1(1,:);view1(3,:)];
vx1=v1(1,:);
vz1=v1(2,:);
view2=edgefunc(edge_x,edge_y,edge_z,r_max,r_min,ratio,L,W,h,eye2);
v2=[view2(1,:);view2(3,:)];
vx2=v2(1,:);
vz2=v2(2,:);
vx=[vx1 vx2];
vz=[vz1 vz2];
vL=max(vz)-min(vz);
vW=max(vx)-min(vx);
count=0;
popx=linspace(min(vx),max(vx),1000);
popz=linspace(min(vz),max(vz),1000);
for i=1:2500
 rx=randsample(popx,1);
 rz=randsample(popz,1);
 if rz<0
 continue;
 end
 vsx=vx1(1:100);
 vsz=vz1(1:100);
 mx=abs(vsx-rx);
 [s1,d1]=min(mx);
 range1=vsz(d1);
 vsx=vx1(201:300);
 vsz=vz1(201:300);
 mx=abs(vsx-rx);
 [s1,d1]=min(mx);
 range2=vsz(d1);
 if (range1-rz)*(range2-rz)<=0
vsx=vx1(101:200);
 vsz=vz1(101:200);
 mz=abs(vsz-rz);
 [s1,d1]=min(mz);
 range1=vsx(d1);
 vsx=vx1(301:400);
 vsz=vz1(301:400);
 mz=abs(vsz-rz);
 [s1,d1]=min(mz);
 range2=vsx(d1);
 if (range1-rx)*(range2-rx)<=0
 count=count+1;
 else
 vsx=vx2(1:100);
 vsz=vz2(1:100);
 mx=abs(vsx-rx);
 [s1,d1]=min(mx);
 range1=vsz(d1);
 vsx=vx2(201:300);
 vsz=vz2(201:300);
 mx=abs(vsx-rx);
 [s1,d1]=min(mx);
 range2=vsz(d1);
 if (range1-rz)*(range2-rz)<=0
 vsx=vx2(101:200);
 vsz=vz2(101:200);
 mz=abs(vsz-rz);
 [s1,d1]=min(mz);
 range1=vsx(d1);
 vsx=vx2(301:400);
 vsz=vz2(301:400);
 mz=abs(vsz-rz);
 [s1,d1]=min(mz);
 range2=vsx(d1);
 if (range1-rx)*(range2-rx)<=0
 count=count+1;
 end
 end
 end
 end 
end
a=vL*vW*count/2500/1000/1000;%视野面积
vx=[vx1 vx2];
vz=[vz1 vz2];
%plot(vx,vz,'*')
%hold on
%plot(rx,rz,'*')
%plot(ones(1,100)*min(vx),linspace(min(vz),max(vz)),'k','LineWidth',4);
%plot(ones(1,100)*max(vx),linspace(min(vz),max(vz)),'k','LineWidth',4);
%plot(linspace(min(vx),max(vx)),ones(1,100)*min(vz),'k','LineWidth',4);
%plot(linspace(min(vx),max(vx)),ones(1,100)*max(vz),'k','LineWidth',4);
%hold off
End
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404124.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】—— 共享内存

本期我将要带大家学习的是有关进程间通信的另一种方式——共享内存。共享内存是一种用于进程间通信的高效机制&#xff0c;允许多个进程访问和操作同一块内存区域。 目录 &#xff08;一&#xff09;深刻理解共享内存 1.1 概念解释 1.2 共享内存原理 1.3 共享内存数据结构 …

【5G 接口协议】N2接口协议NGAP(NG Application Protocol)介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

web开发学习笔记(13.mybatis基于注解配置)

1.使用mybatis基本步骤 2.引入依赖 <!-- mysql--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency> <!-- mybatis--><dependency><groupId>org…

如何在Docker上运行Redis

环境: 1.windows系统下的Docker deckstop 1.Pull Redis镜像 2.运行Redis镜像 此时,Redis已经启动&#xff0c;我们登录IDEA查看下是否连接上了 显示连接成功&#xff0c;证明已经连接上Docker上的Redis了

制冷系统几种节流方式介绍

1.两次节流、中间气液分离 通过两个阶段的节流达到制冷剂的减压&#xff1a;通过第一毛细管&#xff0c;使液体制冷剂膨胀到中间压力后&#xff0c;由汽液分离器将气态制冷剂和液态制冷剂分离&#xff0c;液态制冷剂通过第二毛细管进一步膨胀&#xff08;减压&#xff09;&…

(十二)Head first design patterns代理模式(c++)

代理模式 代理模式&#xff1a;创建一个proxy对象&#xff0c;并为这个对象提供替身或者占位符以对这个对象进行控制。 典型例子&#xff1a;智能指针... 例子&#xff1a;比如说有一个talk接口&#xff0c;所有的people需要实现talk接口。但有些人有唱歌技能。不能在talk接…

一款自动化提权工具

免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删除。…

vue:element-ui表单动态验证规则

一、需求&#xff1a; 实现当是否发送消息选择是时&#xff0c;业务类型字段必填。 二、实现&#xff1a; 当你在一个表单中使用 el-form 和 el-form-item 来创建表单项时&#xff0c;el-form-item 的 :rules 属性可以用来设置该表单项的验证规则。我们希望根据用户在 "…

FPGA高端项目:Xilinx Zynq7020 系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案本方案在Xilinx Kintex7 系列FPGA上的应用本方案在Xilinx Artix7 系列FPGA上的应用本方案在国产FPGA紫光同创系列上的应用本方案在国产FPGA高云系列上的应…

opencv#28 图像卷积

图像卷积 图像卷积是图像处理中最为基础的操作之一&#xff0c;其常用在图像的边缘检测&#xff0c;图像的去噪声以及图像压缩等领域。 图像卷积主要步骤: Step1:将卷积模板旋转180。 Step2:卷积模板移动到对应位置。 Step3:模板内求和&#xff0c;保存求和结果。 Step4:滑…

模拟器单窗口ip有问题?试试关闭IPV6来解决

目前应该不止雷电9有这个问题了&#xff0c;最早是看到无忧群里在说有这个问题&#xff0c;后面发现很多其他的ip软件也有同样的问题&#xff0c;很多人都遇到&#xff0c;所以做个图文教程在这里&#xff0c;没出问题的也可以设置一下&#xff0c;目前ipv6也还没普及&#xff…

HTML+CSS:3D轮播卡片

效果演示 实现了一个3D翻转的卡片动画&#xff0c;其中每个卡片都有不同的图片和不同的旋转角度。整个动画循环播放&#xff0c;无限次。整个页面的背景是一个占据整个屏幕的背景图片&#xff0c;并且页面内容被隐藏在背景图片之下。 Code <div class"container"…

【软件测试】学习笔记-JMeter 参数化策略

这篇文章将探讨JMeter重要的知识点&#xff1a;参数化。无论是从使用频率还是从参数化对性能测试结果的影响&#xff0c;它都是你做性能测试必须要掌握的。 参数化是什么 简单来说&#xff0c;参数化就是选取不同的参数作为请求内容输入。使用 JMeter 测试时&#xff0c;测试…

粘玉石用什么胶最好?

粘合玉石时&#xff0c;选择合适的胶水至关重要&#xff0c;因为不同的胶水有不同的特性&#xff0c;适用于不同类型的材料。对于玉石&#xff0c;一般建议使用以下类型的胶水&#xff1a; 1.透明环氧树脂胶&#xff1a; 透明的环氧树脂胶通常是粘合玉石的良好选择。它具有优秀…

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 opencv可以运行在多个平台上面&#xff0c;当然windows平台也不意外。目前来说&#xff0c;opencv使用已经非常方便了&#xff0c;如果不想自己编译…

PgSQL - 17新特性 - 块级别增量备份

PgSQL - 17新特性 - 块级别增量备份 PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时&#xff0c;创建备机时需要通过pg_basebackup全量拉取一个备份&#xff0c;形成一个mirror。但很多场景下&#xff0c;我们往往不需要进行全量备份/恢复&#xff0c;数据量特别大的…

立创EDA学习:PCB布局

目前进度 ESP32最小系统板项目&#xff0c;已完成原理图绘制 点击“更新/转换原理图到PCB” 点击“应用修改” 对应器件的封装就可以对应到PCB中 布局传递 回到原理图&#xff0c;框选每一个模块&#xff0c;“设计-布局传递” 会跳转到PCB界面&#xff0c;可以自己选择放置位…

Linux - 安装字体库解决乱码问题

文章目录 问题描述步骤资源 问题描述 该安装方法&#xff0c;不区分中文和英文字体 Java在linux上转word文档为pdf&#xff0c; linux的字体缺失&#xff0c;导致了转出的pdf为乱码。 ● Linux将word转为pdf后出现乱码&#xff1f; ● 在linux上将word转为pdf 是乱码 ● 在lin…

http网络编程——在ue5中实现文件传输功能

http网络编程在ue5中实现 需求&#xff1a;在unreal中实现下载功能&#xff0c;输入相关url网址&#xff0c;本地文件夹存入相应文件。 一、代码示例 1.Build.cs需要新增Http模块&#xff0c;样例如下。 PublicDependencyModuleNames.AddRange(new string[] { "Core&q…

imgaug库图像增强指南(35):【iaa.Fog】——轻松创建自然雾气场景

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…