HFSS变量设置及Optimetrics模块
学习内容
\(\text{HFSS}\) 作为一款功能强大的三维电磁仿真软件当然不是仅能够提供常规的电磁分析,它还能够提供优化设计、参数扫描分析、灵敏度分析和统计分析等功能,这些功能都集成在 \(\text{HFSS}\) 的 \(\text{Optimetrics}\) 模块中。在 \(\text{HFSS}\) 中,要使用 \(\text{Optimetrics}\) 模块的这些分析和设计功能,首先需要做的就是定义和添加相关变量。
- 学习 \(\text{HFSS}\)
中变量的定义和使用
- 变量的类型
- 变量的定义
- 设计中如何添加 / 删除 / 使用变量
- 简单学习 \(\text{Optimetrics}\)
模块中的各种分析、设计功能及其使用
- 参数扫描分析
- 优化设计
- 调谐分析
- 灵敏度分析
- 统计分析
变量类型
和编程语言类似,\(\text{HFSS}\) 中的变量也有自己的作用域,其类型分为工程变量(\(\text{Project Variables}\))和设计变量/本地变量(\(\text{Local Variables}\))。
如何区分工程变量/本地变量?
- 工程变量前有 “$” 前缀,而本地变量没有。
- 工程变量的作用区间为整个 \(\text{Project}\) ,本地作用区间为所在的 \(\text{Design}\)。
\(\text{Project > Project Variables}\) 可以打开工程变量编辑对话框。
\(\text{HFSS > Design Properties}\) 可以打开设计变量编辑对话框。
物体模型尺寸、物体的材料属性等都可以使用变量来表示。
变量的定义
- 变量名:
- 变量名可以由 数字、字母、和下划线 “_” 组成。
- \(\text{HFSS}\) 中默认的常数(如: \(\text{pi}\) )、默认的数学函数(如:\(\text{sin}\))不能用作变量名。
- 直角坐标系坐标轴的名称 \(\text{X、Y、Z}\),圆柱坐标系和球坐标坐标轴的名称 \(\text{Phi、Theta、R}\) (圆柱坐标系半径)、\(\text{Rho}\)(球坐标系半径)也不能用作变量名。
- 变量值:每个变量在定义时都必须赋一个初始值,变量值可以是数值、数学表达式或者数学函数,也可以是数组、矩阵或者行列式。
- 可以使用科学计数法。
- 可以使用数学表达式,但是需注意运算符的优先级。
变量的添加、删除以及使用
- 添加/删除变量:
- \(\text{Project > Project Variables}\) 或者 \(\text{[Project Tree] Project > Project Variables}\) 打开 \(\text{Project Properties}\) 对话框,可以添加和删除工程变量。
- \(\text{HFSS > Design Properties}\) 或者 \(\text{[Project Tree] Design > Design Properties}\) 打开 \(\text{Design}\) \(\text{Properties}\) 对话框,可以添加和删除设计变量。
- 在设计过程中,也可以直接输入未定义的变量代替设计参数。输入未定义的变量后,\(\text{HFSS}\)会自动弹出添加变量对话框。
- 使用变量
- 在 \(\text{HFSS}\) 中,几乎所有的设计参数都可以使用变量来表示,例如物体模型的尺寸、物体的材料属性、边界条件相关参数等。
- 对于已定义的变量,可以直接使用变量或者包含变量的表达式来表示设计参数。
- 对于未定义的变量后,\(\text{HFSS}\)会自动弹出添加变量对话框。
- 注意:
- 对于材料属性参数,只能使用工程变量。
- 每个变量在定义时都必须赋一个初始值,如果赋给变量的初始值已经指定了单位,在使用该变量时就不需要重新指定单位。
- 由于参数扫描、优化设计、调谐分析和灵敏度分析等不支持复数,所以对于值为复数的变量,不能用于上述分析。
\(\text{Optimetrics}\) 模块
\(\text{Optimetrics}\) 是集成在 \(\text{HFSS}\) 中的设计优化模块,该模块通过自动分析设计参数的变化对求解结果的影响, \(\text{HFSS}\) 中 \(\text{Optimetrics}\) 模块能提供如下分析设计功能。
- 参数扫描分析 \(\text{Parametric}\)
- 参数扫描分析功能可以用来分析物体的性能随着指定变量的变化而变化的关系,在优化设计前一般使用参数扫描分析功能来确定被优化变量的合理变化区间。
- 优化设计 \(\text{Optimization}\)
- 忧化设计是 \(\text{HFSS}\) 软件结合 \(\text{Optimetrics}\) 模块根据特定的优化算法在所有可能的设计变化中寻找出一个满足设计要求的值的过程。
- 调谐分析 \(\text{Tuning}\)
- 调谐分析功能是在改变变量值的同时实时显示求解结果。
- 灵敏度分析 \(\text{Sensitivity}\)
- 灵敏度分析功能是用来分析设计参数的微小变化对求解结果的影响程度。
- 统计分析 \(\text{Statistical}\)
- 统计分析功能是利用统计学的观点来研究设计参数的容差对求解结果的影响常用的方法是蒙特卡罗(\(\text{MonteCarlo}\))法。
参数扫描分析
参数扫描分析功能是用来分析设计模型的性能随着指定变量的变化而变化的关系,在优化设计前一般使用参数扫描分析功能来确定被优化变量的合理变化区间。
操作步骤:
- 设置首先需要定义变量并添加求解设置项。
- \(\text{HFSS> Optimetrics Analysis > Add Parametric...}\) 弹出 \(\text{Setup Sweep Anaysis}\) 对话框,添加扫描变量。
- 或者选中 \(\text{Project Manager}\) 中的 \(\text{Optimetrics}\),单击右键 \(\text{Add > Parametric}\),弹出 \(\text{Setup}\) \(\text{Sweep}\) \(\text{Anaysis}\) 对话框,添加扫描变量。
- 设置好扫描变量之后,点击 ”\(\text{Analyze}\)” 就可以进行参数扫描分析。
- 查看分析设计结果。
优化设计
优化设计是 \(\text{HFSS}\) 软件结合 \(\text{Optimetrics}\) 模块在一定的约束条件下根据特定的优化算法对设计的某些参数进行调整,从所有可能的设计变化中寻找出一个满足设计要求的值。优化设计时,首先需要明确设计要求或设计目标,然后用户根据设计要求创建初始结构模型 (\(\text{Nominal Design}\)) 、定义设计变量并构造目标函数,最后指定优化算法进行优化。
操作步骤:
初始设计
- 初始设计或者初始结构模型在 \(\text{HFSS}\) 中称之为 \(\text{Nominal Desiqn}\)。用户一般根据理论知识和实际经验给出初始设计,创建初始结构模型。初始设计应该尽量接近真实值,否则会导致优化时间过长,有时甚至得不到全局最优解。
添加优化变量
- 在进行优化设计时,首先需要添加优化变量。打开工程变量/设计变量编辑对话框,单击选择变量编辑对话框中的 \(\text{Optimization}\) 单选按钮,此时对话框内会列出当前设计中所定义的全部工程变量或者设计变量,勾选变量对应的 \(\text{Include}\) 项复选框,把该变量添加为优化变量:同时在 \(\text{Nominal Value}\)、\(\text{Min}\) 和 \(\text{Max}\) 项下的文本框可以输入优化变量的初始值、最小值和最大值。
- 在优化设计前,一般先进行参数扫描分析,确定优化变量的初始值和合理的变化区间。
构造目标函数
- 在优化设计中,为了评价设计结果的好坏以及判断设计是否已经达到要求的目标,必须定义一个判据,软件根据这个判据来决定是否需要继续进行最优搜索,这个判据就称为目标函数。
- 目标函数需要用户根据具体的设计目标进行构造。例如T波导的优化设计中就有详细提到操作流程。
加权函数
- 在有些设计中,为了达到设计要求,需要设置多个目标函数。另外,目标函数所包含的有些性能指标是互相矛盾或互相制约的,一般很难保证全部指标都达到最优。在这两种情况下,可以给每个目标函数分配一个加权值,加权值越大,表示该目标函数越重要。
规范类型
对于有多个目标函数的问题,误差函数值是所有目标函数误差值的加权和。 \(\text{HFSS}\) 根据指定的规范类型来计算加权和。
\[ L_1\Rightarrow e=\sum\limits_{1}^N|w_ie_i|\newline L_2\Rightarrow e=\sum\limits_{1}^Nw_ie_i^2\newline Max \Rightarrow e=\max\limits_{1}^N w_ie_i \]
默认为 \(L_2\) 类型。
误差分析
- 误差函数
- 在定义目标函数时,目标函数可以是等于、大于等于或小于等于某个目标值:对应的,在优化设置对话框 \(\text{Condition}\) 处分别选择 \(<=、=、>=\) 。
- 优化阈值
- 优化阑值是优化过程终止的判别标准,当加权后总的误差值小于或等于优化阑值时,优化分析终止。优化设置对话框的左下角 \(\text{Acceptable}\) 处设置优化阑值。
- 优化阑值可以是一个复数。
- 目标噪声函数
- 使用有限元法分析电磁问题时,网格剖分的变化会给目标函数引入各种噪声。在使用拟牛顿优化算法和模式搜索优化算法时,需要提供噪声的估算值,以评估求解过程中的变化对目标函数的影响。
优化算法
- 拟牛顿法 \(Quasi-Newton\)
- 牛顿法的基本思想是在极小点附近通过对目标函数做二阶泰勒( \(Taylor\) )展开,进而找到的极小点的估计值。
- 拟牛顿法只有在目标函数的噪声很小的情况下使用是足够准确的,如果目标函数的噪声在工程是十分显著的,需要使用模式搜索优化算法来得到最优结果。
- 模式搜索法 \(Pattern\; Search\)
- 模式搜索法是求解最优化问题的一种直接搜索算法,它不用目标函数与约束函数的导数信息而只用函数值信息,是求解不可导或求导代价较大的最优化问题的一种有效算法。
- 模式搜索法是 \(Hooke\) 和 \(Jeeves\) 于 \(1961\) 年提出的,这种优化方法对数值噪声不敏感,因此适合于数值噪声比较显著问题的 \(\text{HFSS}\) 设计工程的优化。
- 非线性顺序编程算法(\(\text{SNLP}\)) - \(Sequential\;Non\;Non-Linear\;Programming\)
- 类似拟牛顿法,\(\text{SNLP}\)算法中引入了噪声滤波和 \(RSM\) ( \(Response\;Surface\;Modeling\)) 技术,可以适当地降低噪声的影响,收敛速度比拟牛顿法,结果比拟牛顿法准确。
- 混合整数非线性顺序编程算法 (\(\text{SMINLP}\))
- \(\text{SMINLP}\) 能够优化同时具有连续变量和整数变量的问题,该算法和非线性顺序编程算法相似不同点是\(\text{SMINLP}\) 算法需要标记出整数变量。
- 溃传算法 - \(\text{Genetic
Algorithm}\)
- 遗传算法是 \(20\) 世纪 \(50\) 年代初由一些生物学家尝试用计算机模拟生物系统演化时提出的。运用随机而非确定性的规则对一族而非一个点进行全局而非局部地搜索,仅利用目标函数而不要求其导数信息或其他附加限制。遗传算法虽然在特定问题上也许不是效率最高的,但其效率远高于传统随机算法,是一种普遍用于各种问题的算法。
调谐分析
\(\text{HFSS}\) 中的调谐分析功能是用户在手动改变变量值的同时能实时显示求解结果。例如,在执行完成一个优化分析并且得到了变量的最优值之后,可以在该最优值附近手动改变变量的值,观察变量在最优值附近扰动对设计性能的影响。针对某一变量调谐分析结束后,设计结果将随之更新。
灵敏度分析
使用 \(\text{HFSS}\) 进行电磁分析的过程中,不同设计参数的变化对电磁特性的影响程度是不尽相同的。对于相同的变化量,有些参数对电磁特性的影响较大,有的则较小。为了衡量各个设计参数变化对电磁特性的影响,通常引用灵敏度的概念,用它来定量表示设计参数变化对电磁性能的影响程度。
灵敏度定义为电磁特性/求解结果的变化与电路参数的变化的比值。使用 \(\text{HFSS}\) 进行电磁分析时,\(S\) 参数是很常用的一个分析结果。这里,以 \(S\) 参数为例来说明灵敏度的定义。假设 \(X_i(i=1,2,..., m)\) 为某一设计参数,则第 \(k、j\) 两端口之间的传输系数 \(S_{jk} (k,j=1,2,...,n)\) 对设计参数 \(X_i\) 的灵敏度可以定义为:
\[ C_{x_i}^{s_{jk}}=\frac{\partial S_{jk}}{\partial X_i} \]
灵敏度计算可以在优化设计中确定电路的关键参数,大量的计算实践表明,有些最优化方法当变量增加时收敛速度变慢,有的甚至发散,这使优化设计毫无结果。如果在优化设计前进行灵敏度分析,找出那些对电路特性有较大影响(即灵敏度较高)的关键性设计参数,并将它们作为优化变量,则不仅能大大减少计算工作量,提高优化设计效率,而且能使原来不收敛的优化过程得到良好的结果。
统计分析
实际使用的元件或者制造工艺一般都有一定的误差,例如标称值为 \(1nH\)、容差为 \(\pm 10\%\) 的二极管引线电感,其实际值将是 \(0.9nH\) 到 \(1.1nH\) 之间的随机值。因此,由这些元件所构成的电路模型或者这些制造工艺生产出的器件模型也具有随机特性,根据这种模型所求出的电路/电磁特性当然也是一些随机量。
统计分析就是利用统计学的观点来研究设计参数容差对求解结果的影响,常用的方法是蒙特卡罗(\(\text{MonteCar lo}\))法。这种方法是利用计算机产生各种不同分布的伪随机数,来模拟产生各设计参数的随机值,并对由此形成的电路/器件模型进行分析,计算出表征电路/器件各种特性参数的随机量,然后对这些随机量进行统计分类或计算,画出统计分布图。
其具体分析步骤如下:
- 用计算机产生伪随机数,并用它们模拟产生电路/器件各设计参数的随机值序列,然后将这些字列进行随机组合,形成电路/器件的统计分析模型;
- 调用分析程序对电路进行分析,计算出电路/器件的各种特性参数,如输入驻波比、\(S\) 参数等;
- 对分析结果进行统计分类,画出直方图。