如何创建仿真 App:以喇叭天线模型为例

作者 Jiyoun Munn

2015年 5月 4日

假如能让非专业人士独立运行您的多物理场仿真,您会愿意吗?回答毫无疑问是肯定的,这不仅能节省您的时间,还可以帮助他们便捷地受益于您的专业成果。现在,将仿真转化为简便易用的定制化仿真 App 已经成为了现实。这篇博客文章将解释研发人员为什么应该创建仿真 App 以及如何进行创建,我们将利用新发布的“波纹状圆形喇叭天线模拟器”演示 App 来对此进行展示。

无需再为同事反复调整参数

无论是否情愿,设计和工序总会受许多物理现象的影响,因此,您无法在完美的条件下进行技术设计。仿真是研究设计产品中多物理场现象的强大工具,它可以帮助您了解这些物理现象是如何影响成品的整体性能的。作为一名仿真工程师,您可以在制造物理样机或产品前,对设计进行优化。

仿真流程一般为设置、求解、可视化、移步新项目,然而真实情况远比这要复杂。如果您为其他人——例如一位天线设计师或生产部的同事——创建了一个仿真模型,他们很可能会要求进行多次修改,而这些请求往往并不是大幅修改,只是对同一批参数进行简单、重复的更改。他们会说“请将波导半径调小,然后再重新运行仿真”,或者“把张角再调大几度会怎么样?”

您愿意帮助天线设计师同事为同样的微小调整进行多少次仿真更新?是不是很想让他们自己修改?现在是时候参与仿真带来的变革了。

在科技飞速发展的今天,对多物理场单元的研究越来越受到了人们的重视,但是为了应对精细复杂的分析,专业工具变得越来越难以上手。借助 COMSOL Multiphysics® 软件的“App 开发器”,仿真能力便不再局限于训练有素的工程师。利用“App 开发器”创建出自己 App 后,您就能将仿真分享给非专业人士使用,也无需跟随多次设计迭代一遍遍重复运行仿真。

在将向您展示如何创建仿真 App 前,我们先来仔细看一看 COMSOL® 软件仿真 App 的是由哪些部分组成的。

什么是仿真 App?

仿真 App 是在其他仿真或者模型的基础上生成的简单易操作的仿真工具。在创建 App 时,您可以只让用户访问对于系统的设计与制造或工艺流程十分重要的参数,并添加适当的输入和输出框用于更改或设置这些参数。

在生成的 App 用户界面(user interface,简称 UI)中,有多个被我们称为 表单对象 的组件。在定制 UI 的过程中,我们可以通过“表单编辑器”来添加和编辑这些表单对象,同时还能利用“方法编辑器”来优化它们的可用性。“方法编辑器”可以提供一个支持 Java® API 的编程环境,协助扩展仿真功能,并为整个流程提供一个更为综合的方法。如果用烹饪来类比,通过“表单编辑器”添加的表单对象便是您食谱中的主要原料,而“方法编辑器”则是调料,为这道菜增添味道并起到装饰作用。

当创建好了直观的自定义界面后,您就可以将 App 分发给参与设计和制造工序的同事们。仿真专业人员和没有专业背景的用户都可以用这个 App 来运行仿真及修改参数,进而优化设计以满足特定的目标和规格——以上操作丝毫不会影响您的下一个仿真项目。

通过“App 开发器”,您可以将任何仿真转化为仿真 App,让仿真模拟技术真正地拥有无限可能性。在最近发布的 COMSOL Multiphysics 5.1 版本中,我们新增了 20 个演示 App 来帮助您学习开始创建和分发自己的 App。“波纹状圆形喇叭天线模拟器”便是其中的一个,它为如何创建 App 提供了一个有用的概览。

提示:您可以在这个 App 开发器简介视频中了解更多的示例 App

从模型到 App:以波纹状圆形喇叭天线模拟器为例

“波纹状圆形喇叭天线模拟器”演示 App 是基于“App 库”中的一个教学案例而创建的,我们在之前的博客中探讨过它。在这个教程中,仿真技术被用来求解电磁场(利用结构的对称性加快计算速度)、将二维轴对称结构可视化为三维几何形式,以及计算和显示三维域中的结果。

对于非专业人士而言,这个简单的例子看起来依然相当复杂。您可能不想把原始模型交给天线设计师,因为如果他们选择了不合理的几何设计参数,几何结构可能会遭到破坏,边界条件和网格等仿真设置也很容易出现问题。或许只有 才清楚有利于顺利执行仿真并生成有效结果的安全的参数输入范围。

为了避免上述问题,您可以创建一个包含下列元素和功能的 App :

  • 直观的 UI
  • 易于获取的可视化结果
  • 仿真有效性与用户指定目标准则的简要对比概览
  • App 文档
  • 只需单击鼠标便能获得的仿真报告

我们将通过“波纹状圆形喇叭天线模拟器”示例向您演示这些组件的作用和添加方式。

定制用户界面

正如前文提到的,利用表单对象,您可以定制 App 的用户界面并提升其可用性。下方截图显示了一些可添加到 App UI 中的表单对象:

图像显示了可用于定制 UI 的表单对象。
借助表单对象,您可以创建一个易用的 App UI。

您或许好奇这些表单对象是如何加入到 App 中并实现各自的功能的。为了解释这两点,让我们快速浏览一下“波纹状圆形喇叭天线模拟器”演示 App 的 UI。

截图显示了圆形波纹状喇叭天线演示 App 的 UI。
App 可显示圆形波纹状喇叭天线的远场辐射。可通过更改几何参数和工作频率来优化天线的性能。

App 的用户界面中包含了设计参数、结果分析和 App 相关信息。此外,它还包含一个由 10 个按钮组成的命令栏和一个图形窗口。UI 顶部的命令栏由许多插入在子表单中的按钮组成。按钮对象用于进行单击操作控制,其初始外观如下:

用于单击控制的按钮。

为将命令栏设计为上图 UI 中的样子,需执行以下操作步骤:

  • 在表单中添加按钮
  • 指定按钮的名称和尺寸,并添加对应的图标
  • 添加表单的背景图像
  • 添加与操作对应的方法

图像展示了使用按钮对象和表单创建的命令栏。
命令栏由表单和按钮对象创建而成。

“设计参数”栏包含以下对象:图像、文本标签、输入框、单位、数据显示及定距片。利用这些组件,App 便将不同的几何输入参数同允许用户输入的仿真条件集合在了一起。所有的“输入框”对象通过“事件”特征添加到 UI 中,如果几何参数在几何视图更新或仿真结束后发生了任何变化,所有的“输入框”对象都可以将 App 更新到最新状态。

The design parameter form is pictured here.
添加设计参数表单作为输入控制台。

在“结果分析”和“信息”栏中有一个重要的表单对象:“信息卡片堆”,我们可以通过子表单对其进行添加。“信息卡片堆”可显示条件文本以及指示选定源变量的状态的图标。“卡片堆”会根据仿真的状态显示其中一张对应的“卡片”。建议的默认状态包括以下三种情况:

  1. 没有计算解
  2. 在执行上一次仿真之后已更改输入数据
  3. 上次计算时间

可用子表单添加到 App 中的信息卡片。
“信息卡片堆”的默认状态。

在此 App 中,UI 包含了三个信息卡片堆。按照 App 中选定源变量的状态,每个堆可分别通知用户以下信息:

  • 解的可用状态、用户输入参数的任何更改,以及上一次求解时间
  • 几何视图状态
  • 对照用户指定的仿真目标准则,进行结果通过/失败分析

图形窗口由被称作图形 的表单对象构成。在“图形”对象中,我们可以对天线的几何结构、各种二维和三维结果以及布局信息进行可视化操作。为了在同一窗口中利用选项卡显示多个不同的视图,我们应通过“卡片堆”表单对象来添加所有的“图形”对象。这样一来,软件将根据卡片堆的选定源变量选中当前的“图形”对象。

App 在首次运行时会隐藏一些表单对象,但之后您可以在深入的使用过程中看到它们。单击“计算”按钮后,界面中将弹出一个对话框窗口,窗口中的进度条用于报告当前的求解状态。在单击“仿真报告”按钮后,您将看到弹出的对话框窗口中嵌有一个单选按钮,询问您要生成哪种格式的报告。

进度条的屏幕截图。
图像展示了报告格式的选择。

表单中的进度条和单选按钮。

除了示例 App 中所应用的部件之外,软件还提供了其他实用的表单对象,其中包括“复选框”和“滑块”。“复选框”对象可以用来打开或关闭特定的可视化条件,例如您可以利用“复选框”来删除天线孔径的场绘图。“滑块”对象能改变可视化图像的颜色范围,您也可以将滑块链接到某一个输入参数,这样一来便无需再通过输入参数即可直接对数值进行更改。

在定制 UI 时,请您尽情发挥无限的想象力来提升它的功能性。设计完全掌握在您的手中!

使用滑块定制 UI。
可在 App 开发器中使用如图所示的复选框。

“滑块”和“复选框”表单对象可以提升 UI 的功能性。

如何创建波纹状圆形喇叭状天线模拟器 App

现在,您已经熟悉了我们称之为表单对象的全新控件,这些工具是定制 UI 的好帮手。不仅如此,“App 开发器”还集成了其他具有类似功能的工具,例如“表单编辑器”和“方法编辑器”。如上文所述,借助这些编辑器,您便能够开发出可满足特定使用目的的仿真工具,并与全公司的同事在产品的设计研发过程中进行分享。

现在让我们来了解一下,基于已有教学模型创建“波纹状圆形喇叭天线模拟器”演示 App 的工作流程。作一个形象的比喻:模型就像一颗种子,在“表单编辑器”和“方法编辑器”的灌溉培育下,可以成长为一个动态的 App。原始模型的几何已被完全参数化(即基于坐标系的参数表示的是几何测量而非整体几何结构),因此在 App 中,若几何输入发生变化,几何结构将随之更新。此外,原始模型中已添加了结果绘图,更改几何输入后,结果绘图也更新了配置,从而在 App 中加入了更多信息。

要启动将模型转换为 App 的流程,首先请单击功能区主屏幕 选项卡下的App 开发器 按钮。

如何进入功能区中的 App 开发器。
单击“主屏幕”选项卡下的“App 开发器”按钮,便可以进入“App 开发器”界面。

“App 开发器”的起始界面如下:

打开 App 开发器后的屏幕界面。
开始创建 App 时的“App 开发器”窗口。

功能区的“新建表单”按钮是一个非常有用的工具,它可用于构建 App 的基本布局,只需轻轻点击几次鼠标即可创建出任何 App。

屏幕截图展示了使用 App 开发器新建的表单。
“新建表单”按钮可以简化 App 的创建流程。

单击“新建表单”按钮后,打开的窗口向导将指导您一步步创建 App。

您可以添加:

  • 带有文本标签的用户输入框,文本标签取自参数描述
  • 用于显示几何视图和结果分析的图形窗口
  • 用于实现“方法编辑器”定制操作的按钮,包括运行仿真、绘制结果与执行命令

图像展示了如何借助新的表单向导来开始 App 的创建。
在“表单”向导的指引下,创建 App 变得很简单。

添加了几个表单对象后,最终成型的主表单如下所示:

此处可以看到 App 的最终主表单。
最终成型的 App 主表单包含表单、卡片堆、文本标签、输入框、单位与图标等。

现在 App 创建好了吗?答案是否定的。接着我们要讨论作用于 App 中的方法。COMSOL 软件提供了多个方法,但在本文中我们只集中讨论其中一个。“按钮”表单对象是一个可用于添加命令的控件。这些命令可以是“App 开发器”预定义并建议的命令,也可以是通过“方法编辑器”完全定制的命令。

在演示 App 中,“计算”按钮嵌入了一个自定义的运行仿真的方法。

图像为 App 开发器中的计算按钮。
带有图标和内嵌方法的“按钮”表单对象。

请注意上图中右下角的小图标,它表明了这个表单对象中嵌入了一个方法。单击“计算”按钮即可执行这一方法,您也可以从设置窗口内选择要运行的命令 栏中添加此方法。

使用选择要运行的命令栏添加预定义命令。
在“选择要运行的命令”栏中,您可以添加预定义命令或用户自定义方法。

这个方法是在被嵌入按钮之前创建的。您可以通过单击功能区的“新方法”按钮来创建新的方法。

图像展示了在 App 开发器中创建新方法的步骤。
空白方法的屏幕截图。
单击“新方法”按钮即可添加一个空白方法。

如果您对 Java® API 文档很熟悉,那么就能够自如地使用这个工具。不过不熟悉编程的用户也完全不用担心。功能区中有一个名为录制代码 的实用工具,它会记录您在“模型开发器”中执行的操作,然后在“方法编辑器”中将历史操作以代码的形式呈现出来。

除此之外,还有很多演示 App 也对如何编写和应用方法进行了展示。另一个能帮助您更多了解编辑器以及 App 设计与开发的有效资源是App 开发器简介文档(PDF)。

标记为 fRunAll 的方法嵌入在“计算”按钮中,此方法可执行以下操作:

  • 打开进度窗口
  • 更新几何视图
  • 运行仿真
  • 更新所有结果绘图
  • 更新文本标签
  • 计算交叉极化比
  • 更新所有“信息卡片堆”的状态
  • 关闭进度窗口

接下来我们要添加更多的表单和方法组合,直到 App 可以像常规的天线仿真工具包那样引导用户按照适当的范围输入参数,如此 App 才算创建完成。此 App 可以计算截止频率和波长,并且允许用户将输入参数重设为默认值、将二维轴对称几何拉伸为三维模型,以及绘制二维天线增益模式和三维远场辐射图。App 还能显示电场的极化结果,以便分析输入波导馈电与输出天线孔径的交叉极化比。另外,App 可以显示天线的布局,方便用户确定输入参数。当 App 运行结束时,它会生成一个仿真报告。如果 App 用户想要学习更多相关知识,可以打开内嵌的 App 文档。不仅如此,您甚至还可以通过额外添加一个方法将 App 报告以邮件的形式发送给您的同事。

原始 App 的设计者和没有天线仿真专业的用户都能方便地对天线的几何参数进行调整,使其满足规范要求,又不会过多地涉及仿真设置和底层物理场。

屏幕截图展示了输入无效时的错误提示。
输入不正确时 App 发送给你的错误信息界面。

App 被设计为可防止用户输入超出范围的值。

UI 中的单击操作可实现多种功能。

此处的报告可帮助您总结仿真结果。
自定义报告能帮助您总结仿真结果。

波纹状圆形喇叭天线文档可在 App 中轻松访问。
轻松访问 App 文档。

关于如何创建仿真 App 的总结

在这篇博客文章的最后,让我们来总结一下如何创建仿真 App。

App 的创建过程包含以下基本的工作流:

  1. 创建模型
  2. 添加表单
  3. 添加表单对象
  4. 必要时添加方法

当您第一次打开“波纹状圆形喇叭天线模拟器”演示 App 时,或许会认为它有一些复杂,但是实际上 App 只是表单和方法的组合。通过设计出更为直观的用户界面,您可以对 App 的可用性和功能性进行优化,并以此开发出更具潜力的仿真 App,进而提升仿真的力量、拓宽仿真的应用范围。如果您已经设计出了一个有趣的模型,为什么不立即开始创建自己的 App 呢?

后续步骤

Oracle 和 Java 是 Oracle 公司和/或其子公司的注册商标。


评论 (0)

正在加载...
浏览 COMSOL 博客