一. 初始解的构建
A. 全反射部分, B. 折射部分,C.切除部分(这一部分在设计时也可以不考虑,可以在设计完成后再加入)
image
图中光束分两个部分, 一部分为折射部分,另一部分为全反射部分, 可以看出,折射部分光束为三段,全反射部分光束分为四段,由于是平行光出射, 所以在优化时只要考虑第三段就可以了.
初始数据:
TIR部分是一个非球面透镜,中间部分是一个标准透镜(有曲率和圆锥系数),切除部分是一个圆柱体;
注意中间的透镜部分的材料为空气,因为它相当于也是被切除掉的.
我们用SOURCE RAY做为光源, 这样可以NSRA来进行优化; 光源的生成与操作数的建立按如下的MACRO可以自动生成:
steps=90
incr=90/steps #max angle is 90 degree
pi = 4*ATAN(1)
dr = pi/180
startobj=4
For i,0,steps,1
angle = i*incr
oo=i+startobj
InsertObject 1,oo
SetNSCProperty 1,oo,0,0,“NSC_SRAY” # surface,object,code,face,value
SetNSCProperty 1,oo,3,0,2 # source inside of object 2
SetNSCPosition 1,oo,4,angle
SetNSCParameter 1,oo,1,1 #layout rays
SetNSCParameter 1,oo,2,1 #analysis rays
tar = 0
opr = i+1
InsertMFO opr
setoperand opr, 11, “NSRA”
setoperand opr, 3, oo # src#
setoperand opr, 6, 3 # seg#
setoperand opr, 9, 1 # weight
setoperand opr, 7, 5 # y coordinate
setoperand opr, 8, tar # tar
Next
update
我们每隔一度产生一条光线,最终的结果如下, 从图中可以看出,光线都不是平行的. 这里注意要调整参数保证所有光线都大概的按预期的方向会聚!!
经过上面的准备工作,这时我们就可以优化了, 当然那几个物体的相对位置需要用PICKUP来约束, 这里不就详细说明了.
初步优化的结果如下:
可以再调整一下透镜的口径, 再优化一次. 可以看出, 透镜的口径是在增加的, 并且其底部是一直往左移的. 最终会达到一个比较平衡的状态;到这里优化工作就已经完成了. 我们可以对这三个部分进行一个布尔操作得到我们想要的透镜!
三. 最终模型的建立和模拟
将所有的SOURCE RAY都删除, 我们用SOURCE RECTANGLE来代替LED, 大小取11, COSINE EXPONENT 取1.0来做为朗伯发光体, 把DECTOR 设置到1010MM处, 模拟1M处的光斑, DETECTOR的大小设为500500image
A. 光斑
B. 发散角
以上是一个简单的准直镜的构建. 采用ZEAMX的优化算法结果特定的建模完成该设计, 当然还可能存在诸多不足之处,但此思路可供参考. 也可以设计相似的透镜或变型.