模型降阶技术可以解决科学计算邻域在建模仿真与工程应用中的几大痛点:
降阶建模或模型降阶技术的应用十分广泛,例如:
模型降阶的方法关于模型降阶方法的分类,没有一个完全统一或权威的定义,这主要是因为模型降阶是一个活跃的研究领域,新方法不断涌现,使得分类标准需要不断更新。 同时,模型降阶技术应用于多个学科,如工程学、物理学、计算机科学等,各学科可能有不同的分类方式。 此外,许多降阶方法结合了多种技术,难以严格划分到单一类别中。 对于MATLAB/Simulink而言,官方将构建降阶模型的方法分为以下几类:
1. 基于物理的降阶基于物理的降阶(Physics-Based Reduction)通过分析和简化物理模型来减少计算复杂性。 最常见的基于物理的降阶方法就是使用系统级的物理模型替代详细的元件级的物理模型,例如,将下图左侧的详细PMSM电机驱动模型,替换为PMSM电机驱动系统的降阶模型。 二者的差异在于:
与之类似的,电池建模中的等效电路(Equivalent Circuit)模型也可看作是电化学(Single Particle)模型的基于物理的降阶。 基于物理的降阶在流体、传热等邻域的应用也十分广泛。 2. 基于模型的降阶方法基于模型(Model-Based )的降阶方法基于对系统的数学或物理建模。它利用已知的系统结构和动力学方程来创建一个简化但仍能捕捉系统主要特性的模型。 基于模型(Model-Based )的降阶方法一般有:
基于模型的降阶方法能够保留系统的物理意义和结构,可以处理非线性系统,通常具有较好的外推性能。 其局限是需要对系统有深入的理解,而且可能难以处理高度复杂或未知结构的系统。 基于模型(Model-Based )的降阶方法与基于物理的方法(Physics-based)相比,两者都依赖于对系统的理论理解,但基于物理的方法更侧重于直接使用物理定律,而基于模型的方法可能包括更广泛的数学抽象。 3. 线性化线性化(Linearization)是将非线性系统近似为线性系统的过程,通常是在某个工作点附近进行的小扰动假设下实现的,这是由于线性化通常通过泰勒级数展开来实现,保留一阶项而忽略高阶项,因此在工作点附近效果最佳,随着状态偏离工作点,模型精度会迅速下降。 对于当工作点分布范围较大时,可以在多个工作点进行线性化,然后通过插值或切换来覆盖整个操作范围。 线性化在模型降阶中的主要应用是:
4. 数据驱动的降阶方法在介绍数据驱动的模型降阶方法前,首先介绍一下两种不同的建模思路。 第一性原理建模(First-Principles Models) :从基本的物理、化学、数学等科学原理出发构建模型。这种方法依赖于已知的理论、方程和领域知识,也就是所谓的白盒模型。 第一性原理建模的特点是:
数据驱动建模(Data-Driven Models) :基于大量的历史数据或实时数据,利用统计学、机器学习、人工智能等技术直接从数据中学习系统规律和模式来进行建模,也就是黑盒模型。 数据驱动建模的特点是:
一般情况下,高保真的 FEA/CAE/CFD 模型都满足第一性原理建模的标准,这类模型可能需要数小时甚至数天的时间来模拟,因此难以适应硬件在环、控制器开发等场景。 数据驱动的模型降阶方法的核心思想就是使用原始高保真的第一性原理模型的输入输出数据来构建准确表示底层系统的降阶模型。 数据驱动的降阶模型可以是静态模型,也可以是动态模型。
4.1 基于数据驱动的静态模型降阶基于数据驱动的静态(稳态)降阶方法包括: 4.1.1 曲线拟合曲线拟合(Curve Fitting)是通过数学函数来近似描述一组数据点或复杂模型行为的方法。它试图找到一个相对简单的函数,能够最好地表示数据的整体趋势。 曲线拟合计算简单,易于实现,可以捕捉数据的主要趋势且结果易于理解和解释。但可能丢失重要的局部特征,在拟合范围之外的外推性能可能较差,选择合适的拟合函数形式需要经验和尝试。 曲线拟合在模型降阶中的应用包括:
曲线拟合的方法包括:
4.1.2 查表查表(Lookup Tables&Map图)的原理是预先计算并存储模型的输入-输出对应关系,将复杂的计算过程转化为简单的数据检索。 查表适用于输入范围有限的问题,可以极大提高运行时的计算速度,也可以处理难以用简单函数表达的复杂关系。但其可能需要大量内存存储表格数据,且精度受限于表格的分辨率,同时难以处理高维输入问题(维数灾难)。 在模型降阶中的应用包括:
4.1.3 主成分分析主成分分析(PCA)是一种统计方法,通过正交变换将一组可能相关的变量转换为一组线性不相关的变量(主成分)。这些主成分按方差大小排序,保留最大方差的几个主成分可以大幅降低数据维度。 主成分分析可以显著降低数据维度,去除数据中的噪声和冗余,同时保留数据中的主要变化信息。但其建立在数据是线性可分的假设上,可能会丢失一些对任务重要但方差小的特征,对于在高维数据结果难以解释。 主成分分析在模型降阶中的应用包括:
4.1.4 特征提取特征提取(Feature Extraction)是从原始数据中选择或构造最相关、最有信息量的特征的过程。它旨在减少数据的冗余,同时保留对特定任务最有用的信息。 特征提取可以大幅减少数据维度,提高模型的解释性和泛化能力,结合相关专业领域的知识,可以提取更有意义的特征。 但手动特征工程耗时且主观,自动特征提取方法(如深度学习)可能需要大量数据和计算资源。 特征提取在模型降阶中的应用:
特征提取的方法包括:
4.1.5 基于统计的机器学习方法基于统计的机器学习模型可以用于模型降阶,其利用统计学原理来构建和训练模型以进行数据分析和预测。这类模型通过分析数据的概率分布和关系,来识别模式、提取特征并进行决策。 基于统计的机器学习模型包括:线性回归(Linear Regression)、逻辑回归(Logistic Regression)、朴素贝叶斯(Naive Bayes)、支持向量机(Support Vector Machine, SVM)、决策树(Decision Tree)、随机森林(Random Forest)等 4.2 基于数据驱动的动态模型降阶可以使用以下技术开发动态 ROM: 4.2.1 非线性 ARX 模型非线性 ARX 模型(Nonlinear ARX Models)通过使用非线性函数(如神经网络、核方法等)对输入和输出之间的关系进行建模,是一种用于动态系统的非线性建模方法。它们在模型降阶中的应用主要包括:
非线性ARX模型由模型回归量和输出函数组成,通过两阶段过程来预测未来值:
这种结构使得非线性ARX模型能够捕捉复杂的动态系统行为。 4.2.2 神经状态空间模型神经状态空间模型(Neural State-Space Models)是一种非线性状态空间模型,其中状态转移和测量函数使用神经网络进行建模。 状态空间模型是使用状态方程和输出方程来表示动态系统的一种方式,状态方程是一组一阶常微分方程(ODEs)或差分方程,通常由第一性原理(白箱建模)推导而来。然而在实际应用中,由于缺乏先验知识或系统固有的复杂非线性动态特性,找到能准确描述系统的解析方程往往并非易事。 在这些情况下,通过神经网络表示非线性系统的状态方程和输出方程是一种有效的替代方案。 例如,对于连续时间非线性系统,可以使用多层感知器(MLP)网络来近似状态方程。网络的输入是 x 和 u,即系统状态向量和输入向量,网络的输出是 ẋ,即系统状态导数向量。 类似地,当存在非平凡的输出方程(即 y ≠ x)时,可以使用另一个 MLP 网络来近似它。对于这个网络,输入同样是 x 和 u,而网络输出是 y,即测量的系统输出。 4.2.3 长短期记忆网络(LSTM)LSTM是一种特殊的循环神经网络(RNN)结构,在处理序列数据和时间序列预测方面表现出色。 在模型降阶领域,LSTM主要有以下几个应用:
LSTM在模型降阶领域的应用充分利用了其处理序列数据和捕捉长期依赖的能力,同时保持了系统的动态特性 4.2.4 前馈神经网络前馈神经网络(Feedforward Neural Networks)是一种人工神经网络,其中信息只向前传播,不存在循环或反馈。典型的FNN包含以下层:
每层由多个神经元(节点)组成,相邻层之间的神经元通过权重连接。 其工作原理为:
FNN可用于模型降阶的原因:
此外,结合物理驱动的模型和数据驱动的 FNN,可以开发混合降阶方法。这种方法保留了物理模型的可靠性,同时利用 FNN 的灵活性和强大的非线性拟合能力,进一步提升模型的精度和计算效率。 4.2.5 神经常微分方程神经常微分方程(Neural ODEs)是将神经网络与常微分方程(ODEs)相结合的一种深度学习模型,允许连续时间建模,并可以看作是具有无限多层的残差网络的极限。 神经常微分方程可以用于降低复杂动力系统模型的阶数,同时保持系统的关键动态特性,适合处理高维复杂系统。 它们的降阶应用包括:
总结此外还有类似POD、Krylov subspace、CGM、GMRES、PRIMA、SPRIM 等降阶方法。 这些方法大多用于不同领域的数值仿真、优化和模型简化,包括机械、电子、电磁等工程问题。 在MATLAB/Simulink中不但可以借助内置的各类工具箱实现模型降阶,也可以通过MORLAB这类第三方工具箱实现。 对于基于物理与模型的降阶而言,MATLAB对第三方CAE/CFD/FAE软件的兼容性在不断地提高,同时也支持最新的FMI/FMU模型的导入。 对于数据驱动的模型降阶,近年来新版本的MATLAB对PyTorch、TensorFlow、ONNX等框架的支持愈加完善,支持将最新的深度学习算法应用于模型降阶。 |
|