如何对参数扫描中的特征模态进行跟踪和分类
在结合参数扫描进行特征频率分析时,模态解不一定总是按模态族排序。当线性系统中存在模态交叉或简并时,这种情况尤为明显。这篇文章,您将学习如何使用 COMSOL Multiphysics®对特征模态进行跟踪和分类。该操作既可以通过“模态跟踪”功能自动完成(该功能可提供更精准、更稳定的处理方案),也可以通过定义模态重叠积分手动实现。
注: COMSOL Multiphysics 6.4 及以上版本支持模态跟踪功能。
一个简单的例子
先来看一个相对简单的例子:一个外部边界固定的椭圆形域上的二维波动方程(位移)。沿着椭圆高度方向扫描,同时求解前五个特征模态。椭圆的宽度固定为
,高度
在 8 cm 和 12 cm 之间变化。在此参数范围的中间
, 模拟域是一个完美的圆,对称性导致某些特征模态相互简并。前五个模态的位移大小如下。

沿椭圆高度方向扫描时的前五个特征模态。
请注意,在处,当固有频率与椭圆高度相对应时,会出现模态交叉。

二维波动方程的特征频率与椭圆域高度的关系图。注意 b = 10 cm 处的模态交叉。
仔细观察后,我们发现模态 2 和模态 3 在交叉后混在一起了。出现这种情况是因为特征值是根据其在解数据集中的顺序着色的。我们既可以通过自动化方法(更推荐此方法)解决该问题,也可以采用更偏向手动的自定义实现方式来处理。
自动化方法:模态跟踪
我们可以使用软件内置的“模态跟踪”功能,通过自动化方法获得正确的模态分析结果。您可以在软件中打开此处提供的初始模型文件,跟着操作步骤同步进行操作。
第一步需要导航至模型中的特征频率研究步骤。选中模型树中对应研究的节点后,在设置窗口中展开过滤和筛选栏,勾选模态跟踪复选框,这将会在参数扫描过程中,随着特征模态的动态演变自动完成模态的身份跟踪。

_ 特征频率研究的设置窗口,其中模态跟踪复选框已是勾选状态。
现在,重新运行研究。待模型完成该研究的全部求解计算后,绘图结果会自动更新为经过跟踪后的模态结果。
![]()
二维波动方程的特征频率随椭圆域高度的关系曲线图。即使在 b = 10 cm 处出现模态交叉,各阶模态仍保持了连续的身份跟踪连贯性。
您可以通过此处下载并打开已完成的模型文件(其中采用的是基于模态重叠积分的手动处理方法),将启用模态跟踪功能后得到的更新绘图结果,与未启用模态跟踪功能的原始绘图结果进行对比。您会发现,已完成的模型文件中带模态跟踪的绘图结果,与您刚刚自行生成的绘图结果完全一致。
手动方法:模态重叠积分
为了解决这个问题,我们可以使用模态重叠积分来对模态解进行分类:
上式的定义最为宽泛,和
代表两个任意的特征模态解。对整个模拟域进行积分,星号表示复共轭。分子表示两种模态之间的内积,而分母则将
的值归一化,使其介于 0 和 1 之间。对于这个特定问题,重叠积分可简化为
在接下来的章节中,我们将演示如何通过重叠积分计算对模态进行分类。您可以点击打开此处的模型文件来跟着学习。
定义模态归一化变量
第一步是定义一个模态归一化变量,以便在以后的重叠积分计算中引用。模态归一化的数学定义如下:
首先,创建一个覆盖整个模拟域的积分算子。

积分节点的设置窗口。
然后,创建一个变量节点,并使用以下表达式定义一个 modeNorm 变量:
intop1(u^2)

变量节点的设置窗口。
请注意,合适的表达式会因模型物理场和因变量的不同而不同。例如,当因变量是电场的分量时,积分应定义电场与其共轭的点积。
定义modeNorm变量后,计算研究结果。
使用合并数据集设置参考模态
我们将使用合并数据集,以便于比较特定的模态解(也称为参考模态)和完整的模态解。参考模态应是所跟踪模态系列中具有代表性的解。
计算研究结果后,右键单击数据集并选择合并。

合并节点的设置窗口。
设置数据 1为参考模态。对于本文示例,我们选择的第一特征模态。设置数据 2为完整解。对于组合方法,请选择显式。显式方法允许我们使用data1()和data2()算子参考每个解的特定变量。
使用计算组计算模态重叠
接下来,右键单击结果并添加一个计算组。将源数据集设置为合并数据集。

计算组节点的设置窗口。
右键单击新的计算组节点,添加表面积分子节点(对于三维问题,用体积分代替表面积分)。选择所有域,需要积分的表达式如下:
data1(u)*data2(u)/sqrt(data1(modeNorm)*data2(modeNorm))

表面积分子节点的设置窗口。
这里,data1(u)指的是参考模态的位移,data2(u)指的是其他模态的位移。在分母中,我们参考了之前定义的模态归一化变量。
接下来,修改计算组节点设置中的变换设置,如下图所示。

计算组节点变换设置的设置窗口。
在表达式框中,int1表示表面积分节点计算的积分值,abs(int1)^2表示等式 2 中定义的值。这里的目标是生成一个新的布尔数据列,表示重叠值是否与参考模态匹配(1 表示匹配,0 表示不匹配)。因此,表达式中的
与阈值 0.5 之间存在逻辑比较。
请注意,阈值并不是固定不变的,而是可能因问题而异,或因不同的模态系列而异。我们的目标是选取一个阈值,将属于所需模态系列的解与其他解区分开来。对于模态重叠值分布较广的问题,可能需要通过反复试验进行微调。
在上图所示的列标题框中,我们可以选择为变换后的数据列添加标题。还可以选中保留子节点选项,以保留原始重叠数据列。完成后,点击计算按钮。请注意,计算可能需要一些时间,尤其是对于大型模型。

计算组表格。
计算完成后,应显示与上表类似的表格。如果希望在表格中添加更多数据列,可以通过在计算组中添加额外的计算节点来实现。切记使用 data1() 和 data2() 算子引用相应的模态解。
用表图绘图
创建一维绘图组并添加表图节点。

表图节点的设置窗口。
选择新创建的计算组作为数据源。选择适当的 X 轴数据(扫描参数)和绘图列(特征值)。可根据需要调整着色、样式和图例选项。
接下来,右键单击表图节点,添加一个过滤器子节点。在表达式框中输入col3==1。这里,col3指的是模态匹配数据列。

过滤器子节点的设置窗口。
过滤器子节点根据给定的逻辑标准过滤绘图数据。在这种情况下,只绘制匹配模态解。单击绘图按钮执行绘图。
跟踪其他模态系列
要跟踪其他模态系列,我们只需重复前面的步骤。您可以使用复制操作来快速设置其他合并、计算组和表图节点。为此,右键单击相应节点并选择复制(快捷键 CTRL-SHIFT-D)。对于每个新模态系列:
- 复制合并数据集。重命名节点并更新数据 1 部分,使其指向新的参考模态。
- 复制计算组。重命名节点并将源数据集更改为新的合并数据集。单击计算获取数据表。
- 复制表图节点。将计算组来源更改为新的计算组。根据需要更改颜色、样式和图例选项。单击绘图更新图表。
您还可以将节点分组,以便更好地组织模型树。为此,请选中所有要分组的节点,右键单击并选择分组(快捷键 CTRL-G)。

模型开发树显示了模态匹配组。
手动方法的重要使用说明
- 切记在做出任何会影响模态匹配结果的更改后,重新计算每个计算组。
- 在清除解或对特征频率研究进行重大修改后,有时需要重新设置合并数据集的参考模态。为了提高可重复性,我们建议在外部文件中记录每个合并数据集使用的参考模态。
- 关于参考模态的选择,我们建议选择一个与其模态系列中的其他模态重合度较高,而与另外的模态相似度较低的模态。通常,通过绘制模态解可以直观地确定这一点。如果某个模态系列在参数范围内变化很大,则可能需要通过一些尝试才能找到合适的参考模态。
进一步学习
查看这篇博客文章了解应用于各种物理应用中的模态跟踪演示。要了解更多有关合并数据集及其各种其他用途的信息,请参阅这篇博客文章。
请提交与此页面相关的反馈,或点击此处联系技术支持。



