车灯线光源优化设计方案_光束灯点灯器电路图

(36) 2024-09-14 10:01:01

通过离散实现车灯线光源的优化设计

【摘要】

对于此题我们先假设问题一的线光源长度已经求出,使线光源功率最小为8mm,之后通过题目中所给出的信息通过matlab软件画出对应的几何图形,知道车灯相当于是一个旋转抛物面,建立空间直角坐标系求出该旋转抛物面的方程,设出线光源上的坐标点画出线光源的反射光线并运用空间向量求出反射光打在测试屏的坐标点由于数据过多,所以将数据离散化导入进软件中,画出测试屏反射光的亮区

针对问题一,在满足该设计规范的条件下,计算线光源长度,使线光源的功率最小,建立线光源长度最小的优化模型,将测试屏上测试点的光强度转化为该点的光线根数的多少,将测试点看成一个半径为1m的圆,通过计算落在区域内的光线根数,比较两个测试点的光线根数来判断是否满足设计规范,通过不短减少线光源长度,用matlab求得线光源的最小长度为

针对问题二,首先将线光源和抛物面离散化,假设线光源上的一点A与旋转抛物面上的一点M,连接AM将它视作为入射光线,过点M作旋转抛物面的切线,过点M作法线,由物理知识得,入射角等于反射角,作出反射光线,过A点作垂线垂直法线并延长一定会与反射光线相交与N点与法线相交与B点,B点为A,M的对称点,将旋转抛物面上的点M代入旋转抛物面方程中,对方程求偏导得到M点的法向量,通过空间直角坐标系直线方程推导出B点的坐标,再利用两点中点坐标公式得出N点的坐标,最终推到出反射光线的直线方程,通过matlab画出反射光的亮区,具体算法见正文。

关键词:线光源  matlab编程  数据离散化  空间几何向量

一、问题重述

1 引言

安装在汽车头部的车灯的形状为一旋转抛物面,车灯的对称轴水平地指向正前方, 其开口半径,深度。经过车灯的焦点,在与对称轴相垂直的水平方向,对称地放置一定长度的均匀分布的线光源。要求在某一设计规范标准下确定线光源的长度。

    该设计规范在简化后可描述如下。在焦点正前方处的点放置一测试屏,屏与垂直,用以测试车灯的反射光。在屏上过点引出一条与地面相平行的直线,在该直线点的同侧取点和点,使。要求点的光强度不小于某一额定值(可取为1个单位),点的光强度不小于该额定值的两倍(只须考虑一次反射)

2 本文需要解决的问题

(1)在满足该设计规范的条件下,计算线光源长度,使线光源的功率最小。

(2)对得到的线光源长度,在有标尺的坐标系中画出测试屏上反射光的亮区。

(3)讨论该设计规范的合理性。

二、问题分析

1 针对问题一进行分析

了解到决策变量为线光源的长度l,求出线光源的功率W的最小值,题目中要求c点的光强度不小于某一额定值(可取为1个单位),b点的光强度不小于该额定值的两倍(只须考虑一次反射通过这些可以知道建立优化模型求解出线光源的长度最小值,先列出目标函数,再通过题目所给出的条件建立约束条件,做出优化模型,通过此模型在软件中编程求解。

2 针对问题进行分析

先假设问题一中的最短线光源长度已经得知长度根据题目中所给出的信息可以知道,为旋转抛物面的焦点。

建立空间直角坐标系画出旋转抛物面的立体图,然后根据给出的半径长度与深度可以求出旋转抛物面的方程,通过使用空间立体解析几何相关的概念与知识点可以求出旋转抛物面的法向量与法线方程

了解到光亮区的形成线光源射出的光线通过反射打在测试屏所有光源的集合对于本题可以选取线光源上随意一点做出对应的光线反射图,设出该光线反射通过的切点与线光源上的点沿着旋转抛物面切线的对称点,通过法线方程与法平面方程求出可以求出设出的点与点之间的关系式通过垂直向量相乘为零,建立关系式,最后列出反射的表达式,根据此表达式通过编程求解,将所有反射点的数据离散化画出测试屏上反射光的光亮区

三、符号说明

符号

描述说明

n

函数的法向量

x

在x轴上的坐标点

y

在y轴上的坐标点

z

在z轴上的坐标点

m

旋转抛物面的切点

h

线光源上的一点

h'

点h沿切线的对称点

t

点h与点h'的中点

f

旋转抛物面的焦点

c

C点的光线根数

b

B点的光线根数

l

线光源的长度

四、模型假设

1 假设光在空气中传播时能量不发生损耗;

2 假设光只反射一次;

3 假设数据提供准确无误;

4 假设只考虑线光源的长度;

5 假设光的额定值单位为1;

6 假设线光源分部均匀;

7 假设一个点光源经过直射只有一条光线能到达测试屏上

8 假设光经过反射可能有不同数量的光线到达测试屏

9 假设测试屏无穷大能够将车灯发车出的光线曲全部展现出来

五、模型建立与求解

1 针对问题一建立优化模型

对于问题一,将车灯反射光线在测试屏上测试点的光强不小于某个值转化为在测试点上的光线数目建立线光源长度最小的优化模型。

目标函数:Min L

    1. 约束条件

(1)C点的光强度约束

C点的光强度不小于某一额定值(可取为1个单位),即具体约束如下:

c>=1

(2)B点的光强度约束

B点的光强度不小于该额定值的两倍

b>=2

  1. 线光源在焦点处的长度约束

   将焦点坐标代入抛物面方程中,得到线光源在焦点处的长度小于等于60,即具体约束为:

    1. 最短线光源模型建立与求解

设计线光源的最短长度的具体算法

根据以上的最优化模型,设计相应的求解算法,具体算法如下:

Step1:由题目可知线光源在焦点上,线光源的坐标为,将线光源离散化,看成一个一个发光点,遍历这些发光点。

Step2:由题目知旋转抛物面的半径36和深度21.6,以轴为旋转抛物面的对称轴,代入一般旋转抛物面的方程表达式求得旋转抛物的方程为。

Step3:设旋转抛物面上一点,将代入旋转抛物面方程中,该点的偏导数即为法向量,可求出法向量的方程,令法向量等于,利用空间角

坐标的直线方程与两直线垂直向量点乘为零求出的关系式

Step4:来表示法线上的中点,通过两点中点坐标公式即可求出的对称点,即为反射光线上的一点,即可求出反射光线的方程

Step5:遍历旋转抛物面上的点,将测试点B,C看成半径为1的圆形区域,如果反射线落在这个区域内,这个点的光强强度加一,统计两个测试点的光线根数,如果B点的光线根数是C点光线根数的两倍,则停止遍历。

    1. 具体结果

通过以上这种算法,得出线光源的长度为3.4

2 画出测试屏上反射光亮区

根据题目已知消息,可以假设问题一已完成,最线源长度为,点为旋转抛物面的焦点并且距离点,点同侧具有两点,从给出数据中得到,为了直观展现出文字所叙述的内容,可以先使用软件画出直观图,如下图所示:

图1 车灯示意图

因为已经知道车灯相当于是以点为焦点的旋转抛物面,所以可以建立以点为原点,为轴,以点竖直向上轴为轴,以在点平行与线的直线为轴,建立空间直角坐标系,如下图所示:

图2 空间坐标系示意图

3 旋转抛物面方程推导

已知旋转抛物面的方程表达式为

根据给出的其开口半径,深度,可以知道以上空间直角坐标系中,点的坐标点为,将坐标点代进表达式中,可以求出,根据抛物线的焦点定理能够求出焦点坐标点为,可以列出在点的旋转抛物面的方程:

在点中有一线光源向测试屏中发射亮光,在线光源上随机取一点,画出在该点发射点的光线,使得反射光射入到测试屏内,选取线光源的点作出的一条反射光线,如下图所示:

图3 线光源反射光示意图

4 反射光线推导

根据上述所列出的旋转抛物面方程,列出函数,通过此函数求出该旋转抛物面的法向量。列出的函数如下所示:

通过以上列出的函数,对函数求偏导:

能够求出此函数的法向量,函数的法向量为:

了解本题目是需要画出反射光的亮区,根据上述画出线光源的反射光示意图可以得知要画出反射光的亮区必须先求出反射到测试屏中对应的亮点的方程,在旋转抛物面上随意选择一点,在旋转抛物面内的线光源上选择一点为光源发射点,这两点分别为切点点,线光源上的点,再设旋转抛物面以外的点,使用点与点建立切线方程,通过以上求出的法向量可以列出以下法线方程,令最后的结果

将上述式子分开表示得到以下方程

将目标定位化简可得:

已知法向量列出法平面方程:

根据法线方程和平面方程,可以列出以下式子:

根据两点中点坐标公式得出:

    最终得出反射光线的方程为:

得出所对应反射点的方程式,使用软件进行编程,最后选择数据使总数据离散化画出测试屏上反射光的亮区,如下图所示:

图4 亮区示意图

六、模型的优点与改进

1 模型的优点:

  1. 软件中能够直接展现出发光区,结果清晰明了
  2. 编译运行时时间复杂度较低
  3. 通过将线光源离散化,使得模型考虑更加全面
  4. 该模型能够很好的与生活联系,具有很好的推广性。

附件

问题一的最短线光源的matlab程序代码

clear

yy=[];

zz=[];

x1=15;z1=0;x=25015;

for y1=0:0.1:30

    b=0;c=0;

   for y2=-36:1:36

       for z2=-36:1:36

           x2=(y2^2+z2^2)/60;

           r=(30*x1-30*x2+y2^2-y2*y1+z2^2-z2*z1)/(1800+2*y2^2+2*z2^2);

           x3=60*r+x2;

           y3=-2*y2*r+y2;

           z3=-2*z2*r+z2;

           x4=2*x3-x1;

           y4=2*y3-y1;

           z4=2*z3-z1;

           y=(x-x2)*(y4-y2)/(x4-x2)+y2;

           z=(x-x2)*(z4-z2)/(x4-x2)+z2;

           yy=[yy,y];

           zz=[zz,z];

           if sqrt(y^2+z^2)>2599 && sqrt(y^2+z^2)<2601

               c=c+1;

           elseif sqrt(y^2+z^2)>1299 && sqrt(y^2+z^2)<1301

               b=b+1;

           end

       end

   end

    if b>=2 && c>=1 && b>=2c

        L=y1;

        break

    end

end

THE END

发表回复