Ansys Speos|Optimization小工具快速优化设计

概述

优化是一个有助于找到一个光学系统的最佳解决方案的实验过程,它主要是利用参数的变化而试图达到预期的结果。在Speos 2023 R2中提供三种可供选择的方法来执行此类分析。第一个是基于workbench创建的优化,可以参考文章(基于Ansys Workbench和Speos的准直全反射透镜优化设计案例),第二种使用optiSLang及其强大的优化功能,在optiSLang种直接调用Ansys Speos求解器,访问发布的参数,设计识别最重要的输入参数,多目标优化在不同目标之间进行权衡,第三种是利用嵌入到Speos中的优化工具optimization,允许基于随机算法Random search设置一个优化,以研究不同参数集对仿真结果的影响。

本案例讲述使用Speos optimization 优化工具,快速优化设计。为描述案例讲解过程,首先对optimization工具的参数进行详细解释。

优化模式

Speos optimization优化功能提供三种优化模式: Random Search随机搜索算法是一种基于随机的全局优化方法,优值提供函数定义优化的收敛过程,Minimize允许获得尽可能接近目标值的模拟值。Maximum允许获得尽可能远离目标值的模拟值。Design of Experiment实验设计允许定义变量的值,通过使用基于所选变量的Excel文件来定义变量。Plugin插件允许使用自己创建的优化算法,以便在分析中增加更多的灵活性。

变量类型

Optimization特性根据变量的来源提供了三种变量类型。

Simulation variable模拟变量对应Speos的仿真变量,在此变量列表中可以选择光源的参数、探测器的参数、包括3D texture的参数。在optimization设置列表中,可以查看添加到优化中的变量的当前值,和数值变量可变范围,可以修改min和max的数值,使得变量在更大或更小的范围内变化。

Design variable设计变量对应于光学部件设计参数,在Speos 中完成的所有OPD光学部件设计参数,都可以作为优化变量选择optimization中,例如lightguide、TIR、optical lens、optical surfaces等设计参数。在optimization设置列表中,可以查看添加到优化中的变量的当前值,和数值变量可变范围,可以修改min和max的数值,使得变量在更大或更小的范围内变化。

Document variable对应于可以在spacecclaim Groups面板(驱动维度,脚本参数)中创建的输入参数,也可以是机械变量参数,例如机械半径等参数。在optimization设置列表中,可以查看添加到优化中的变量的当前值,和数值变量可变范围,可以修改min和max的数值,使得变量在更大或更小的范围内变化。

优化目标

优化目标对应于想要评估的目标结果,是整个优化过程的最终评估元素。为了得到目标首先需要建立direct或者是inverse仿真,运算仿真得到XMP结果后,使用measure功能确认目标数值,例如RMS、average等,得到一个含有目标结果的XMP。然后创建优化optimization后,在target列表选择评估目标。

优化

1.在Speos中,打开案例LightGuide_Tutorial,此案例可以在Ansys learning Hub优化课程中找到。

2.定义光源、探测器、材料属性、直接仿真运算得到XMP仿真结果。

3.对仿真结果中的出光区域的RMS做为目标优化值。

4.点击optimization,选择light guide仿真,选择R1-R5作为document variable,并修改参数变量的min和max。选择RMS作为target, 设置目标值,权重为1。

5.选择random search,Minimize优化,仿真运算时间600S,GPU运算仿真。

6.最终得到如下结果,优化后RMS降低,整体均匀性提高。

相关推荐
寂寞的船2 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
Flynt2 天前
内存省16倍的Lightpanda实测:数字是真的,但并发代码要重写
性能优化·开源·agent
OpenAnolis小助手2 天前
RISC-V 基础软件的工程化与性能优化实践
性能优化·操作系统·龙蜥社区·risc-v
程序员吕洞宾3 天前
开源多维表格SmartTable v1.6.10 —— 用户名登录、数据评论及@人、表单分享二维码、性能优化、部署及升级优化
spring·性能优化·开源
余槐i3 天前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
王中阳Go3 天前
预算给够了,时间花错了地方:三跳链路给了 27 秒,实际只用掉 9 秒
人工智能·后端·性能优化
Chen7323 天前
WebGPU 性能优化:Three.js 千万级点云调度与渲染实践
性能优化·three.js
peakmain93 天前
异常处理 - Native 层的崩溃捕获机制及实现 (一)
android·性能优化
只睡四小时4 天前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
baiduxiaoyu024 天前
图片管线:一张商品图从 1.2MB 到 58KB
性能优化