本节是关于优化(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打开数据可视化窗口,查看优化后的结果。