Ansys Speos | 基于 Workbench 和 Speos 的准直全反射透镜优化设计案例

news/2024/11/29 6:49:10/

概述

基于Ansys Speos软件,可以准确建立光学系统模型并进行成像效果仿真。在使用Speos进行光学系统设计过程中,当完成初始光学系统建模后,还需要进一步结合仿真结果,调整出满足设计要求的系统参数,如果采用手动调整参数并执行多次仿真的方式,会大大影响设计效率。借助Ansys Workbench的优化功能,通过设置设计目标和约束条件,可以驱动Speos仿真流,自动修改设计参数并执行仿真计算和优化设计,从而准确高效地获得符合设计要求的设计参数。本文以全反射透镜Total Internal Reflection (TIR Lens)为例,介绍利用Workbench直接优化工具驱动Speos自动化仿真从而实现准直全反射透镜优化设计的方法。

Speos透镜设计及仿真

Speos的光学元件设计模块(Optical Part Design,OPD)可以用于设计全反射透镜、菲尼尔透镜和光导管等等,本文案例利用OPD模块实现对TIR Lens的建模。本次透镜设计的主要目标是在照度探测器上的测试区域内得到尽量均匀的光照,所以主要考虑的是RMS值,越小的RMS值表示均匀性越好。TIR Lens的光学参数和光路逻辑如图1中所示,包括内表面半径、外表面半径、透镜厚度和基面位置等等。如果没有可以参考的光学参数,可以先使用Speos软件默认的参数进行建模仿真,仿真要注意设置透镜整体为透明玻璃,外表面为全反射,透镜到照度探测器的距离为1 m。基于软件默认的设计参数,TIR Lens照度仿真结果中的目标区域RMS值为0.74,体现出的照度均匀度较差,需要采用Workbench的直接优化功能对设计参数进行优化,以获得均匀度更好、满足RMS值要求的设计结果。

图1. TIR Lens 设计参数

图2. 初始输入参数、模型和仿真结果

图3. 初始平均照度、照度和RMS值仿真结果

Workbench优化流程构建

Workbench基于相关性分析或实验设计 (DOE) 算法(比如拉丁超立方体抽样、中心复合设计或稀疏网格法)创建设计点列表,DesignXplorer 可驱动 Workbench 调整参数变化,然后存储并分析结果。在优化开始之前,首先需要在Workbench中构建Speos和DesignXplorer两个程序的连接:1、打开Workbench,新建一个项目,将Speos分析系统拖入项目原理图中,右键Geometry,导入几何结构,双击或右键仿真任务选择生成参数,Speos自动启动。2、在Speos中定义要导入Workbench的输入参数:选择TIR Lens 设计中的参数。在DesignXplorer中拖入直接优化,右键优化对目标和约束进行设置,包括运行时间、容差设置、候选数量。

图4.  Workbench构建工作流程

Workbench优化目标与约束设置

在目标定义过程中,如果仅设置RMS值为优化目标,可能会导致光过度扩散,因此可以同时设置平均照度和光通量大于一定的值。设置优化目标:P7-平均照度大于30000 lx,P8-光通量大于400 lm,P9-RMS小于目标值0.4,这里要注意上限或下限设置值过低或过高,会导致计算结果不收敛而无法求得满足要求的设计结果。设置参数约束:影响优化目标的光学参数受到结构尺寸的影响需要约束设计区间。根据设置的运行时间,程序会自动计算步长。运行直接优化,右键单击优化、更新即可启动优化程序。在计算结束时,软件会保留达到预期结果的候选值。优化时可以从Table视图查看Direct optimization任务的优化进度。

图5. 优化界面

图6. 参数定义

优化结果分析

当优化图标从闪电变为√时,表示优化完成。双击打开优化任务,可以在轮廓原理图中打开监控来查看目标的计算过程。从结果中查看优化约束、优化方法和候选点。点击候选点可以查看具体约束数值和目标数值。从图8 优化候选点中可以看出,三个候选点的RMS值均下降至0.35左右,相较于初始的0.74 ,均匀度得到明显提升。为了更加直观地查看优化结果,可以把候选点依次带回Speos进行仿真验证。

图7.优化结果

图8. 优化候选点

将优化后的TIR Lens 结构参数带回到Speos软件中进行仿真,在仿真照度结果中可以看到候选点3的结果中间没有明显暗斑,且平均照度和光通量数值都较高,说明候选点3是本案例中获得的理想结果。

图9. Speos仿真优化结果

总结

本案例介绍了一种全反射透镜的自动优化设计方法:通过Workbench创建整个优化工作流,驱动Speos自动计算多个设计点得出符合优化目标的解。本文所采用的透镜模型是Speos OPD模块中的全反射透镜模型,相关方法同样适用于光导管、全反射面和菲尼尔透镜等Speos中的其他模型。结合Workbench构建工作流提供的优化环境和Speos基于物理的仿真,可以进一步提升设计能力和工作效率。


http://www.ppmy.cn/news/535942.html

相关文章

Android系统Surface机制的SurfaceFlinger服务的启动过程分析

在前面一篇文章中,我们简要介绍了Android系统Surface机制中的SurfaceFlinger服务。SurfaceFlinger服务是在System进程中启动的,并且负责统一管理设备的帧缓冲区。SurfaceFlinger服务在启动的过程中,会创建两个线程,其中一个线程用…

Python三目运算符(三元运算符)用法详解

我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如: if a>b:max a; else:max b; 但是 Python 提供了一种更加简洁的写法,如下所示&#xff1a…

中国棒球青训基地建设·棒球1号位

随着中国棒球事业的发展,建设一批现代化的棒球青训基地已经成为了中国棒球发展的必然趋势。下面是有关中国棒球青训基地建设的课题报告: 一、基地选址和规划 中国棒球青训基地的选址应该优先考虑地理位置、气候条件、基础设施和交通便利等因素。基地应该…

OpenGL模型控制(旋转、平移)

1.效果图 2.平移 首先做一个鼠标双击事件,表示平移模型对象,当然,我们需要遍历当前哪个模型对象被选中,才能进行该对象的平移操作。 void AXBOpemglWidget::mouseDoubleClickEvent(QMouseEvent *event) {Q_UNUSED(event);if(m_m…

06- c语言指针 (C语言)

一 指针的引入 1、一般把内存中的一个字节称为一个内存单元。 2、为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址,通常也把这个地址称为指针。 3、如果在程序中定义…

kubernetes入门案例

kubernetes入门案例 本文我们通过一个 Java Web 应用例子来介绍 kubernetes 的使用,可以让新手快速上手和实践。 此 Java Web 应用的结构比较简单,是一个运行在 Tomcat 里的 Web App,JSP 页面通过 JDBC 直接访问 MySQL 数据库并展示数据。…

975-操作系统内存管理课件(2)

基本分页存储管理 基本地址变换结构 具有快表的地址变换结构 两级页表

输入一个三位整数,输出由其个位、十位、百位反序而成的三位整数(例如:579反序为975)。

/*------------------------------------------------------- 程序功能:输入一个三位整数,输出由其个位、十位、百位反序而成的三位整数(例如:579反序为975)。 -----------------------------------------------------…