技术文章和通讯

适用于实时三维应用的MATLAB广义分解

作者:大卫博士González,萨拉戈萨大学(UniZar)


大多数进行结构分析的科学家、研究人员和工程师在某些时候都会遇到诅咒的维度:考虑到计算的维度和性能要求,无法将基于有限元的算法合并到实时应用中。模型阶降(MOR)技术,如适当正交分解(POD),试图通过降低模型的复杂性来解决这个问题。然而,这些技术并不适合实时应用程序,因为它们的计算成本很高。

我与萨拉戈萨大学阿拉贡工程研究所(UniZar)的两位教授Elías Cueto和Icíar Alfaro合作,开发了一种基于适当广义分解(PGD)的新型模型阶数减少方法。1.在MATLAB中实现®,该方法包含两个阶段:一个是计算问题多参数解的离线阶段,另一个是使用第一阶段计算的解实时获得结果的在线阶段。

PGD有许多跨不同领域的应用程序。例如,它可以用来计算表面变形响应移动施加的载荷-一个长期以来被认为是实时应用不可简化的问题。为了演示PGD的实现,我们开发了几个示例应用程序,包括一个iPad应用程序,它在施加负载时实时模拟悬臂梁的变形,以及一个带有触觉反馈的实时外科模拟器,它使操作员能够看到和感受到虚拟肝脏对通过触控笔定向的各种模拟负载的响应(图1)。

图1。基于MATLAB的PGD实现的实时肝脏触诊模拟。

图1。基于MATLAB的PGD实现的实时肝脏触诊模拟。

在MATLAB中实现PGD框架

计算机辅助工程(CAE)团体几十年来一直致力于减少模型订单。世界杯预选赛小组名单PGD的历史始于拉丁多尺度计算方法。在过去的10年里,Francisco Chinesta教授和他的团队使用PGD和MATLAB开发了非牛顿流体模型。当我和我的同事开始使用PGD时,我们建立在他开发的许多概念和技术的基础上,而且我们也选择了MATLAB来实现动态问题的PGD框架。

我在攻读博士学位时曾大量使用c++编程,但在这个项目中改用MATLAB,因为PGD需要大量的向量和矩阵操作,而MATLAB使我能够为这些操作编写高效的向量化代码。尽量减少使用循环使代码执行得更快,更容易编写和维护。代码性能是优先考虑的,因为初始多参数解所需的预处理计算量很大,可能需要数小时才能完成。

PGD计算的第一阶段的结果被存储为MATLAB工作区中的一个大型多维数组(图2)。然后,我们可以在MATLAB中直接对数据进行后处理和可视化,或者将其导出为各种格式中的一种,以便在3D可视化软件和其他定制应用程序中使用。

图2。MATLAB工作空间显示PGD计算结果。(4)图像

我们开发的一个定制应用程序是一个iPad应用程序,它实时模拟了施加载荷时悬臂梁的变形(图3)。这个应用程序通过帮助学生通过实验理解基础知识,补充了机械工程理论。

图3。交互式iPad应用程序模拟悬臂梁弯曲响应的负载施加在用户的手指接触屏幕的点。

图3。交互式iPad应用程序模拟悬臂梁弯曲响应的负载施加在用户的手指接触屏幕的点。

将PGD打包为MATLAB应用程序

为了使PGD框架更易于学生和研究人员使用和实验,我们创建了一个可共享的MATLAB应用程序(图4)。学生或研究人员首先选择一个预设的用例,例如悬臂梁、肝脏或类似的胰腺和胆囊的例子。用户可以指定底层材料的行为应该被视为弹性还是超弹性,以及该问题应该使用静态方法还是动态方法来解决,在这种方法中,材料在任何时间步上的响应部分取决于它在前一个时间步中的响应。

图4。PGD MATLAB应用程序。

图4。PGD MATLAB应用程序。

该应用程序使用PGD计算解,然后在MATLAB工作区中可用。任何问题的解决方案只需要计算一次:初始阶段的结果可以保存为一个mat文件,并用于后处理或可视化(图5)。

图5。使用PGD计算的肝脏表面3D效果图。

图5。使用PGD计算的肝脏表面3D效果图。

我使用MATLAB应用程序向两个硕士级别的课程的学生介绍PGD的概念:生物工程中的数值方法而且工程计算方法.因为这两门课的课程都要求学生使用MATLAB,所以我在每门课开始时都会简要回顾MATLAB基础知识。这些课程的学生不仅学习开发和分享数值和计算方法,他们还发展了对PGD的理解以及如何使用MATLAB应用它。

案例研究:用触觉反馈建立肝脏触诊的实时模拟

我的主要研究领域之一是计算、模拟和成像在外科手术中的应用。图1所示的手术模拟器是该领域PGD值的一个例子。为了创建它,我们使用MATLAB PGD框架使用三个输入参数计算一个多参数解:肝脏的3D网格,负载的所有可能位置的集合(外科医生可以对肝脏施加力的点),以及负载从0%(空载)到100%(满载)的激活。然后,我们与一组程序员合作,将计算结果矩阵合并到一个具有实时可视化和触觉反馈的模拟器中。

在模拟过程中,手动触控笔的任何移动都会导致屏幕上虚拟触控笔的相应移动。当操作人员按下触控笔上的一个按钮时,虚拟触控笔就会被按在模拟肝脏上。肝表面对这种压力的反应用计算的PGD结果来计算。因为这种计算只需要直接的向量乘法,它可以每秒完成数百次,以支持实时性能。肝脏的变形结果显示在屏幕上,并向触觉设备发送适当的信号,使操作者能够实时感受到触控笔上的阻力。

在校准和调整模拟器后,我们让有经验的外科医生对它进行测试。他们报告说,他们通过触觉设备感受到的感觉真实地再现了在实际病人身上工作的感觉。

我们最近更新了模拟器,以支持患者特定的肝脏几何图形。在这个版本的模拟器中,患者的肝脏首先被成像以创建一个3D模型。然后将该模型与已经计算过的PGD解决方案的肝脏几何图形库进行比较。然后在模拟中使用与患者最相似的库模型的计算解。

有了这种能力,加上计划中的支持撕裂和切割手术的增强,我们将能够为外科训练创建一个真实的模拟器。该模拟器将使医科学生安全地练习,并使有经验的外科医生在手术室进行实际操作之前,在逼真的虚拟器官上预演手术程序成为可能。

1与使用有限元分析(FEA)进行动力学模拟相比,PGD通过将非线性单元基方程投影到初始位移场的一组参数化约简基方程上,并在每个时间步上再次投影,降低了系统的自由度。

关于作者

David博士González是萨拉戈萨大学(UniZar)机械工程系教授。González博士拥有UniZar应用数学博士学位。他的研究兴趣包括计算力学、维数模型简化、实时仿真和计算外科,在萨拉戈萨大学阿拉贡工程研究所进行。

2018年出版的

查看相关功能的文章

查看相关行业文章

Baidu
map