优化器
Optimizer 用于自动搜索更优参数组合。在本页定义优化目标(Objectives)、搜索变量(Variables)、可选的网格预搜索(Grid Parameters)以及局部求解器配置(Algorithm Parameters),然后通过顶部工具栏执行 Run Optimizer。
本页负责建立优化任务,不负责解释最终结果。运行完成后,应到结果区的 Optimization Report 查看最优解、搜索历史与目标分解。
前提条件
Structure已通过验证。Optics已通过验证。- 已明确优化目标和期望方向(减反、增透、匹配目标光谱等)。
推荐配置顺序
- 先定义
Objectives(目标量、入射光、评分方式)。 - 再定义
Variables(可搜索参数及边界)。 - 调整
Grid Parameters(可选网格预搜索)。 - 调整
Algorithm Parameters(求解器与收敛参数)。 - 先用较小预算做第一次试跑,确认方向正确后再增加预算。
页面结构
Optimizer 页面分为四个纵向区域:
| 区域 | 功能 |
|---|---|
| Optimization Objectives | 定义目标量、入射光条件和评分方式 |
| Optimization Variables | 定义可搜索参数及其边界 |
| Grid Parameters | 可选的网格预搜索(在局部优化前先做粗网格扫描) |
| Algorithm Parameters | 局部求解器的选择与收敛参数 |
上半部分为目标与变量区域(初始状态示例):

下半部分为网格参数与算法参数区域:

全局工具栏
Run Optimizer:仅当整份模型验证通过时可执行。- 运行开始后,本页所有输入控件锁定,禁止修改。
- 若本页存在错误,Footer 会把错误归类到
Optimizer,并保持运行入口禁用。
优化目标(Objectives)
目标区域定义"什么结果算更优"。所有启用目标按权重组合成总适应度(Fitness)。
工具栏
| 操作 | 说明 |
|---|---|
Add Objective | 创建新目标(默认:Reflectance, Maximize, 550 nm) |
Edit | 打开选中目标的编辑对话框 |
Duplicate | 复制选中目标(含所有配置) |
Move Up / Move Down | 调整目标顺序 |
Delete | 删除选中目标 |
目标列表表格
列表表格显示每个目标的摘要信息。双击表格行或点击 Edit 按钮可打开编辑对话框。
| 列 | 内容 | 备注 |
|---|---|---|
| 排序手柄 | 拖拽图标 | 拖拽可调整行顺序 |
| 启用复选框 | 复选框 | 禁用的目标不参与总适应度计算 |
Mode | 徽章:Point / Band / Curve Fit / Color | 由波长模式和目标类型自动推导 |
Target | 带颜色的标签 | 品红 = R,青色 = T,橙色 = A |
Incident Light | 摘要文本 | 如 "550 nm · 0° · Unpolarized" 或 "400-700 nm / 5 nm · 45° · S" |
Goal | 摘要文本 | 如 "Maximize" 或 "Average · Minimize" 或 "Curve Fit · RMSE" |
Weight | 数值 | 默认 1,最小 0.000001 |
Status | 状态图标 | 绿色勾号 = Ready,红色叉号 = Needs Review(悬停可查看详情) |
Edit 按钮 | 按钮 | 打开编辑对话框 |
Delete 按钮 | X 按钮 | 删除该目标 |
以下为包含 3 个目标(Point 和 Band 模式混合)及 Wavelength Coverage Preview 的完整示例:

Mode 推导逻辑
目标列表中的 Mode 徽章由当前配置自动推导,不需要手动选择:
| 条件 | Mode |
|---|---|
| 选择 Color Match 目标(Reflection Color / Transmission Color) | Color |
| 选择 Curve Fit 评分方式 | Curve Fit |
| 单波长(Single)+ Scalar Goal | Point |
| 扫描波长(Sweep)+ Scalar Goal | Band |
Target 颜色编码
目标列表表格和 Wavelength Coverage Preview 中使用统一的颜色编码:
| 目标量 | 颜色 | 应用位置 |
|---|---|---|
| Reflectance (R) / Reflection Color | 品红 / 粉色 | 标签 + 预览条带填充 |
| Transmittance (T) / Transmission Color | 青色 / 蓝绿 | 标签 + 预览条带填充 |
| Absorptance (A) / Layer Absorption | 橙色 | 标签 + 预览条带填充 |
波长覆盖预览(Wavelength Coverage Preview)
目标列表下方是一个可折叠的 Wavelength Coverage Preview 面板,以水平条带的形式可视化每个目标的波长范围。
| 特性 | 说明 |
|---|---|
| Point 目标 | 显示为一个点标记 |
| Sweep / Band 目标 | 显示为一条水平条带 |
| 颜色编码 | 与 Target 颜色一致(品红 / 青色 / 橙色) |
| 禁用目标 | 以 40% 不透明度显示 |
| 点击交互 | 点击条带可选中对应目标 |
| 摘要文本 | "{N} overlap regions, {range}, up to {M} enabled objectives overlapping" |
以下为单个目标时的 Wavelength Coverage Preview(显示为点标记):

多目标时,预览面板显示多条条带,重叠区域以摘要文本标注:

多目标配置实践
多目标优化的核心策略:
- Point + Band 组合:用 Point 目标锁定设计波长处的极值,用 Band 目标保证宽带性能。
- 权重分配:更高的 Weight 使求解器在该目标上投入更多优化努力。
- 独立入射光:每个目标的入射光条件独立配置,可在同一次优化中同时测试不同角度和偏振态。
以宽带减反射膜设计为例:
| # | 目标量 | Mode | 波长 | 评分方式 | 权重 |
|---|---|---|---|---|---|
| 1 | R | Point | 550 nm | Minimize | 2 |
| 2 | R | Band | 400–700 nm | Average · Minimize | 1 |
| 3 | T | Band | 400–700 nm | Average · Maximize | 0.5 |
此配置将设计波长处的反射率最小化设为最高优先级(权重 2),宽带平均反射率最小化为次要目标(权重 1),同时辅以透射率最大化(权重 0.5)作为补充方向。
对于曲线拟合场景,可用一个 Curve Fit 目标指定目标光谱形状,同时用一个 Scalar Goal 目标设置底限值(例如 Stay in Range 模式保证反射率不超过某阈值)。
目标编辑对话框(Objective Editor Dialog)
点击 Edit 按钮或双击目标行打开编辑对话框。对话框分为三个区域:Target、Incident Light、Optimization Goal。
Target 区域
选择要优化的物理量:
| 目标量 | UI 标签 | 说明 |
|---|---|---|
R | Reflectance (R) | 反射率 |
T | Transmittance (T) | 透射率 |
A | Absorptance (A) | 吸收率 |
layerAbsorption | Layer Absorption | 单层/层组吸收,需选择具体层或层组 |
reflectionColor | Reflection Color | 反射色坐标匹配 |
transmissionColor | Transmission Color | 透射色坐标匹配 |
选择 Layer Absorption 时,需要额外指定目标层或层组。
选择 Reflection Color 或 Transmission Color 时,系统自动切换至 Sweep 模式、启用入射光谱、启用颜色计算,并将 Goal 锁定为 Color Match。

Incident Light 区域
每个目标拥有独立的入射光条件,与全局 Optics 页面无关。
波长采样(Wavelength Sampling)
| 模式 | 字段 | 说明 |
|---|---|---|
Single | Single Wavelength (nm) | 评估单一波长点,最低 1 nm |
Sweep | Start Wavelength / End Wavelength / Step (nm) | 在一段波长区间逐点计算,Start < End,Step > 0 |
颜色目标强制使用 Sweep 模式。
入射角(Incident Angle)
范围:0° ~ 89.9°。滑块和数值输入联动。
偏振比(Polarization Ratio)
范围:0 ~ 1。0 = 纯 s 偏振,1 = 纯 p 偏振,0.5 = 非偏振。
锥角(Cone Angle,可选模块)
用于模拟有限数值孔径或发散光束。启用后配置:
| 参数 | 范围 | 说明 |
|---|---|---|
| Half-angle | 0° ~ 89.9° | 半锥角 |
| Distribution | Uniform / Lambertian | 角度分布 |
| Ring Count | 2 ~ 20 | 环数 |
入射光谱(Incident Spectrum,可选模块)
仅在 Sweep 模式下可用。启用后,入射光谱作为波长权重参与加权平均或加权曲线拟合。
| 光源 | 说明 |
|---|---|
| Illuminant A | 白炽灯标准光源 |
| Illuminant D65 | 日光标准光源 |
| File | 从文件加载自定义光谱(.txt / .pl) |
颜色目标下,入射光谱自动启用且必须配置光源和观察者角度(2° / 10°)。
Optimization Goal 区域
Goal 类型取决于 Target 和波长模式的组合。
Scalar Goal(标量目标)
适用于所有非颜色目标。

| 参数 | 说明 |
|---|---|
| Aggregator | 仅在 Sweep 模式下出现。可选:Average / Minimum / Maximum / Integral;启用入射光谱时变为 Weighted Average |
| Mode | Maximize / Minimize / Hit Target / Stay in Range |
| Target Value | 仅在 Hit Target 模式下,范围 0 ~ 1 |
| Lower Bound / Upper Bound | 仅在 Stay in Range 模式下,范围 0 ~ 1,Upper >= Lower |
单波长模式下不需要 Aggregator,直接对该波长点评分。
Curve Fit(曲线拟合)
仅在 Sweep 模式下可用。目标是让优化后的光谱尽量逼近给定曲线。

| 参数 | 说明 |
|---|---|
| Error Metric | RMSE(默认);启用入射光谱时变为 Weighted RMSE |
| Curve Data | CSV/TSV 文本,每行 wavelength, value[, weight],至少 2 个点 |
| Import CSV | 从文件导入曲线数据 |
| Apply | 解析文本并验证,必须在保存前 Apply |
Apply 操作后,状态标签指示当前数据状态:
| 状态标签 | 颜色 | 含义 |
|---|---|---|
| Applied · N points | 绿色 | 数据已成功解析并应用 |
| Unapplied | 黄色 | 文本已修改但尚未 Apply |
| Error | 红色 | 解析失败,查看错误信息 |
Apply Curve Data,否则 Save 按钮保持禁用。Color Match(颜色匹配)
仅在选择 Reflection Color 或 Transmission Color 时自动激活。
| 参数 | 说明 |
|---|---|
| 颜色选择器 | 原生颜色输入,HEX 显示 |
| L / a / b | CIE LAB 色坐标,L 范围 0 ~ 100 |
| Color Error | Delta E 2000 |
Weight(权重)
每个目标都有一个 Weight 字段(默认 1,最小 0.000001)。多目标时,权重决定各目标在总适应度中的占比。权重值越高,求解器在该目标上投入的优化努力越多。
优化变量(Variables)
变量表定义算法被允许修改的输入参数。
工具栏
| 操作 | 说明 |
|---|---|
Add | 创建新行(默认启用,路径和边界为空) |
Duplicate | 复制选中行 |
Move Up / Move Down | 调整顺序 |
Delete | 删除选中行 |
变量表字段
| 列 | 说明 |
|---|---|
| 启用复选框 | 控制该变量是否参与搜索 |
Parameter | 参数路径,通过 CascadeSelect 选择器选取 |
Minimum | 搜索下界 |
Initial Value | 起始值(网格模式下禁用) |
Maximum | 搜索上界 |
路径选择(CascadeSelect)
CascadeSelect 路径选择器显示两个顶级分类:Structure(层和层组)和 Surroundings(入射侧和透射侧介质)。展开各分类可逐级定位到具体参数。

路径选择器以级联菜单形式展开,仅显示当前结构中启用的元素:
| 分类 | 路径格式 | 当前限制 |
|---|---|---|
| 普通层厚度 | structure / {LayerName} / thickness | 最常用 |
| 普通层折射率 | structure / {LayerName} / {n, k, nExt, kExt} | 受 indexType 限制 |
| 层组内部层 | structure / {GroupName} / Layers / {LayerName} / ... | 层组须启用 |
| 入射侧介质 | surroundings / incidence / n | 仅支持 n |
| 透射侧介质 | surroundings / transmission / {n, k} | File 模式下不可用 |
indexType 与可优化属性
折射率模式决定了哪些属性可以作为优化变量:
indexType | 可优化属性 | 不可优化属性 |
|---|---|---|
Constant | thickness, n, k | nExt, kExt |
Const. Birefringence | thickness, n, k, nExt, kExt | -- |
File | thickness | 所有折射率属性 |
Initial Value 与 Grid 的交互
- 网格搜索关闭时:
Initial Value作为局部求解器的起始点,必须在[Minimum, Maximum]范围内。 - 网格搜索开启时:
Initial Value列禁用,起始点由网格种子替代。
Initial Value 列被禁用,表格上方显示提示信息:网格模式下起始值被网格种子替代。验证规则
| 规则 | 说明 |
|---|---|
| 至少存在一条启用变量 | 否则优化任务无效 |
| 启用变量必须有合法路径 | 空路径直接报错 |
| 启用变量之间不能重复路径 | 复制后注意修改路径 |
min 和 max 不能同时为空 | 至少填写一个边界 |
若两者都存在,min < max | 必须满足 |
路径失效场景
| 场景 | 处理方式 |
|---|---|
| 层或层组被删除 | 重新选择路径 |
| 层或层组被禁用 | 重新启用或改选路径 |
| 层名、组名被重命名 | 重新选择路径 |
| 属性与当前 indexType 不匹配 | 调整模式或改选属性 |
多变量配置示例
| 变量 | 路径 | 下界 | 上界 | 用途 |
|---|---|---|---|---|
| ITO 厚度 | structure / ITO / thickness | 20 | 80 | 主要设计参数 |
| SiO2 厚度 | structure / SiO2 / thickness | 50 | 200 | 间隔层厚度 |
| 基底折射率 | surroundings / transmission / n | 1.4 | 1.7 | 材料选型范围 |
使用网格搜索时,若 2 个变量各取 5 个采样点,将产生 5^2 = 25 个网格点。每个网格种子随后由局部求解器进一步精炼。
网格参数(Grid Parameters)
网格搜索是一个可选的预搜索阶段。启用后,优化器先在整个变量空间做粗网格采样,从中选出最优的几个种子点,再对每个种子分别执行局部优化。

| 参数 | 范围 | 说明 |
|---|---|---|
Enable Grid | 开/关 | 启用网格预搜索 |
Grid Samples Per Variable | 2 ~ 25(滑块) | 每个变量维度的采样数量 |
Top K Seeds | 1 ~ 总网格点数 | 进入局部优化的种子数量 |
启用网格后的行为变化
| 行为 | 说明 |
|---|---|
Initial Value 禁用 | 变量表中的起始值被网格种子替代 |
| 标签文案变化 | Max Evaluations 变为 Max Local Evaluations Per Seed |
| 预估网格点数 | 显示公式:Estimated grid points = (Samples Per Variable)^(启用变量数) |
算法参数(Algorithm Parameters)

算法选择
| 算法 | 类型 | 适用场景 |
|---|---|---|
TRF | 基于信赖域的最小二乘 | 多目标、曲线拟合,默认选择 |
L-BFGS-B | 拟牛顿法,带边界约束 | 梯度平滑、变量较多的场景 |
Nelder-Mead | 无导数单纯形法 | 非光滑目标面或不需要梯度信息的场景 |
公共参数
| 参数 | 范围 | 说明 |
|---|---|---|
Max Evaluations | 20 ~ 1000 | 总评估预算上限(网格模式下为每个种子的局部预算) |
TRF 参数
| 参数 | 范围 | 默认值 | 说明 |
|---|---|---|---|
Step Ratio | 0.001 ~ 0.1 | 0.01 | 构建局部扰动的相对步长 |
f Tol | > 0 | 1e-6 | 目标改善阈值 |
x Tol | > 0 | 1e-4 | 参数更新阈值 |
g Tol | > 0 | 1e-6 | 梯度最优性阈值 |
L-BFGS-B 参数
| 参数 | 范围 | 默认值 | 说明 |
|---|---|---|---|
Step Ratio | 0.001 ~ 0.1 | 0.01 | 构建局部扰动的相对步长 |
f Tol | > 0 | 1e-8 | 目标改善阈值 |
g Tol | > 0 | 1e-5 | 梯度最优性阈值 |
Nelder-Mead 参数
| 参数 | 范围 | 默认值 | 说明 |
|---|---|---|---|
Initial Simplex Ratio | 0.01 ~ 0.2 | 0.05 | 初始单纯形相对大小 |
x Atol | > 0 | 1e-3 | 参数绝对收敛容差 |
f Atol | > 0 | 1e-6 | 目标绝对收敛容差 |
参数调节建议
Max Evaluations = 50 ~ 150),确认方向正确后再增加。若使用网格搜索,先用 Samples Per Variable = 3 ~ 5、Top K Seeds = 2 ~ 3。| 场景 | 推荐配置 |
|---|---|
| 初次试跑 | TRF,Max Evaluations = 100,不启用 Grid |
| 粗调 + 精炼 | 启用 Grid,Samples = 3 ~ 5,Top K = 2 ~ 3,TRF |
| 变量较多(> 4) | L-BFGS-B,降低 Grid 采样密度 |
| 非光滑目标面 | Nelder-Mead,适当增加 Max Evaluations |
运行前检查与常见错误
执行 Run Optimizer 前的检查清单:
- 至少存在一个启用且有效的目标。
- 至少存在一个启用且有效的变量。
- 启用变量之间没有重复路径。
Structure与Optics已通过验证。- 变量范围在物理上合理。
- 算法参数处于允许范围内。
| 现象 | 常见原因 | 处理方式 |
|---|---|---|
Run Optimizer 灰掉 | 目标、变量或算法参数仍有错误 | 查看 Footer,逐项修正 |
| 新增变量后立刻报错 | Add 创建的空行默认启用 | 补齐路径和边界,或先禁用 |
| Hit Target 模式无效 | 未填写 Target Value | 填入 0~1 的目标值 |
| Stay in Range 模式无效 | 未填写 Lower/Upper Bound 或 Upper < Lower | 补齐并确保 Upper >= Lower |
| 颜色目标验证失败 | Sweep 范围产生的采样点不足 2 个 | 扩大波长范围或减小步长 |
| Curve Fit 无法保存 | 曲线数据未 Apply | 点击 Apply Curve Data |
| 结果很差且波动大 | 范围过宽、目标冲突或预算不足 | 先缩小范围,检查目标与预算 |
完成本页配置后,下一章请继续阅读:基本光学结果。先掌握普通结果的读取方式,再回到 Optimization Report 分析优化过程与最优解。