优化的设置
  • 优化

优化的设置

本节是关于优化(Optimization)相关设置的介绍。

优化通过不断调整模型中某个或多个参数值的组合,运行大规模的仿真,使用户获得目标函数或仿真结果的最优解(通常是局部最优),最终完成模型的整体优化。此功能默认采用粒子群优化(Particle Swarm Optimization, PSO)算法,支持自定义算法系数,优化性能更加突出。若仿真模型结果受多个参数影响,需要同时优化这些参数,此算法也能快速地收敛到最佳值。

优化的设置

Objects tree切换为Optimizations and sweeps,右键点击页面空白处,选择Create new optimization添加优化。添加成功后,右键点击添加的优化,选择Edit可以进入编辑界面设置参数。

用户需要根据扫描目的设置优化属性,以确保优化参数能正确运行。

通用设置

General标签页用于自定义优化的名称。注意,一个工程下不允许存在名称相同的多个扫描优化项目。

Name Description
Name 自定义优化的名称。

模拟方式

Simulation method标签页用于显示当前处于激活状态的求解器。

Name Description
Active solver 显示当前激活的求解器。

设置

Setup标签页用于设置优化中的自变量参数。

Name Description
Algorithm 设置优化所使用的算法,默认为粒子群Particle swarm算法,也支持用户自定义粒子群算法(User defined)。
Maximum generations 需要运行的最大迭代次数。
Type 选择优化结果是最小化还是最大化。
Generation size 每次迭代中的粒子数,即仿真工程数目。最大仿真次数为最大迭代次数与每一代仿真数目的乘积。
Apply optimization results to current project 选择是否将当前工程中优化目标参数设置为最终的优化结果。
Reset random generator 选择是否重置带有固定种子的随机数生成器。

更多关于粒子群算法的信息,请参阅粒子群优化算法

计算资源

Resources标签页用于设置计算资源,用户可以根据优化的需求选择最佳的计算资源。

Name Description
Maximum simulation threads of parallel 并行的最大线程数,设置同时运行的仿真工程个数。
First generation script 第一次迭代的计算脚本,用于定义仿真初始参数值。如果需要随机的初始值,则不需要输入此脚本。
Next generation script 下一代迭代脚本,该脚本用于根据前几次迭代的结果计算下一代的参数值。
Use figure of merit script 勾选此选项以启用此功能。此脚本允许对仿真结果数据进行后处理,处理结果将成为最终被优化的对象。此脚本输入的参数为Setup>Figure of merit>Result。脚本中必须计算一个被命名为“fom”的变量用于优化,该变量必须为单个标量。

参数

Parameters标签页用于设置优化参数对应属性。

Name Description
Parameters 选择本次优化的所有目标参数。下拉列表中包含可以进行优化的模型参数,可同时选择多个。
Type 优化参数的类型,如长度、时间等。
Min 目标范围的最小值。
Max 目标范围的最大值。
Units 带有单位的参数类型可设置单位。
Add 添加参数。
Remove 删除参数。

优化结果数据

Figure of merit标签页用于选择结果数据。

Name Description
Optimize 选择是否对该结果进行优化,即使其最大化或最小化。
Name 设置结果的名称,将用于数据可视化。
Result 优化的结果数据,所选的结果必须是单个标量值。
Scalar operation 可选择对结果进行数值计算,如求取数值的实部、虚部、绝对值等。
Vector operation 可选择对结果数据进行后处理,如求和与均值。
Add 添加结果。
Remove 删除结果。

运行优化

右键点击需要运行的优化,选择Run即可开始运行。

查看结果

优化运行结束后,右键点击运行完的优化,选择Data visualizer打开数据可视化窗口,查看优化后的结果。

案例:布拉格光栅

布拉格光栅