CN103530439A - 利用输出变量全导数的协同仿真过程 - Google Patents

利用输出变量全导数的协同仿真过程 Download PDF

Info

Publication number
CN103530439A
CN103530439A CN201310353690.4A CN201310353690A CN103530439A CN 103530439 A CN103530439 A CN 103530439A CN 201310353690 A CN201310353690 A CN 201310353690A CN 103530439 A CN103530439 A CN 103530439A
Authority
CN
China
Prior art keywords
derivative
subsystems
processor
residual error
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310353690.4A
Other languages
English (en)
Other versions
CN103530439B (zh
Inventor
V·贝尔斯基
B·E·恩格尔曼
H·埃里姆奎斯特
H·R·奥尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Dassault Systemes of America Corp
Original Assignee
Dassault Systemes of America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes of America Corp filed Critical Dassault Systemes of America Corp
Publication of CN103530439A publication Critical patent/CN103530439A/zh
Application granted granted Critical
Publication of CN103530439B publication Critical patent/CN103530439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

一种计算机实现的方法,用于仿真由若干个子系统组成的复杂工程系统的动态行为,包括基于输出导数计算雅可比矩阵,其中该输出导数基于对应的状态变量导数,该状态变量导数与用于多个子系统中的每一个的对应的第一输入变量相关。该方法还包括基于对应的状态变量导数,修改该第一输入变量以及为多个子系统中的每一个计算第二输入变量和残差。

Description

利用输出变量全导数的协同仿真过程
技术领域
这里描述的实施例一般涉及与对真实世界对象模型的仿真一起使用的协同仿真方法,具体地,涉及在这样的仿真过程中利用所述方法的并行执行。
背景技术
科学和工程通常要求对物理系统建模以便解决问题。然后,无需频繁地构建、破坏物理样本,即可解决问题的模型。然而,复杂的多学科系统需要被分解成多个子系统模型,其中检查并解决各种子问题。术语“协同仿真”通常指对耦合的技术系统进行仿真的方法。例如,在一个主从系统中,一个或多个从属子系统将仿真子问题,同时主系统协调全部仿真,并在从属子系统之间传输数据。为了在仿真过程的特定时间进行数据通信,这些从属子系统可以“耦合”。
至少一些已知的用于解决协同仿真问题的处理是基于建立关于以下的特定规则:从在“集合点”或“通信”时间的一个子系统向另一个子系统传输输出变量或者一些输出变量的组合作为输入变量,并且在相同或者之前的时间反之亦然。这种处理的稳定性取决于耦合条件与子系统自身的刚度有多相关。典型地,这种处理要求用特定顺序处理子系统。然而,这种要求需要知道个体子系统以及耦合条件的多个属性。这阻止使用通用协同仿真过程被建立,并阻止其被用来分析不同的问题。进一步地,这种要求会极大地降低对全部模型分析的性能,这是因为它不能进行并行的协同仿真计算过程。
此外,在协同仿真技术中,更多高级的处理通过使用稳定的模块化时间集成方法来解决稳定性和精确性的问题,该模块化时间集成方法可用在耦合的微分代数方程上。这种处理基于雅可比矩阵的使用,该矩阵对应于在输入变量和输出变量之间的代数方程。当系统中呈现代数循环时,已知的协同仿真处理可能在计算上变得不稳定。例如,对于一对明确依赖的第一子系统的输入变量和第二子系统的输出变量,如果第二子系统的输入变量也明确地依赖第一子系统的输出变量,则上述情况将发生。代数变量的迭代过程有时用在这种情况中来改进稳定性。
对于不包含代数循环的系统,非迭代线性隐式稳定性处理能够在通信时间点的输入和输出变量的增量之间建立特定的通信链。用于输出和状态变量的线性隐式行为通常假设处于每个子系统的通信点之间。然而,这种方法要求在协同仿真子系统之间通信雅可比矩阵的某些乘法,其对应于特定子系统集成方案。
进一步地,例如一些已知的处理使用域分解方法来解决在结构动力学中的问题。这种处理利用暴露在子系统之间的接口中的子系统矩阵的压缩部件解决协同仿真。基于时间集成方程,为每个子系统建立这些矩阵。
上述方法使用模块化方法,其假设了仅通信输出和输入变量以及仅在通信点通信,这可能导致不稳定的协同仿真处理。此外,这些方法要求调查输入-输出关系的代数系统中代数循环的出现。进一步地,这些方法依赖于处理子系统的顺序,并因此阻止协同仿真处理的并行运行。
发明内容
一方面,一种计算机实现方法包括:基于与用于多个子系统中的每一个的对应的第一输入变量相关的输出导数,计算雅可比矩阵,修改第一输入变量,以及,基于对应的状态变量导数,为多个子系统中的每一个计算第二输入变量和残差。
另一方面,一种计算机包括:内存区域和耦合该内存区域的处理器。该内存区域被配置为存储雅可比矩阵、输出导数、用于多个子系统中的每一个的第一和第二输入变量、用于多个子系统中的每一个的残差,以及对应于第一输入变量和残差的状态变量导数。该处理器被配置为与该内存区域通信,从而基于与用于多个子系统中的每一个的对应的第一输入变量相关的输出导数,计算雅可比矩阵,修改该第一输入变量,以及基于对应的状态变量导数,为多个子系统中的每一个计算第二输入变量和残差。
另一方面,一种计算机程序产品包括:一个或多个非瞬态计算机可读存储介质,该存储介质上具有计算机可执行部件。该计算机可执行部件包括雅可比矩阵部件,当其被处理器执行时,使得处理器基于与用于多个子系统中的每一个的对应的第一输入变量相关的输出导数,计算雅可比矩阵。所述部件还包括修改部件,当其被处理器执行时,使得处理器修改第一输入变量,以及第二导数部件,当其被处理器执行时,使得所述处理器基于对应的状态变量导数,为多个子系统中的每一个计算第二输入变量和残差。
附图说明
在附图和随后的说明书中阐述本发明的一个或多个实施例的细节。根据说明书、附图以及权利要求,本发明的其他特征、目标以及优点将变得清晰。
图1是阐述了用于仿真物理对象的模型的示例性计算机实现方法的流程图。
图2是与图1所示的方法一起使用的示例性计算机网络的示意性框图。
图3是与图1所示的方法一起使用的示例性计算机体系结构的示意性框图。
具体实施方式
此处描述了用于仿真三维对象的模型的系统、方法、装置(计算机)以及计算机程序产品的示例性实施例。此处描述的实施例便于仿真由若干个子系统组成的复杂工程系统的动态行为,其通常由模块化方法执行,在该模块化方法中,全局系统自然地被分解为若干子系统。这种方法的结果是,通过在用于对每个子系统建模的不同软件部件之间交换信息,能单独地甚至并行地建模和分析每个个体子系统。这种系统的例子可以是要求对多个部件进行建模的高精度机床或者现代汽车,该多个部件可能代表不同的工程领域(不同的物理学),例如机械、控制、电子、水力学,等等。更详细地,此处描述的实施例便于通信整个雅可比矩阵的恰当部件。这些雅可比矩阵包括输出变量相对于输入的偏导数,从而代表直接的输出到输入的依赖性。另外,雅可比矩阵包括经由状态变量与输出到输入的依赖性相关的导数,因此代表了间接的输出到输入的依赖性。此外,此处描述的实施例消除了检查代数循环存在的需要,并提供了可用来更新输入增量的增强的全局系统雅可比矩阵。另外,此处描述的实施例便于各个子系统的并行时间集成,因此增强了模型的整体仿真以及分析的性能。
图1是阐述了用于仿真由若干子系统组成的复杂工程系统的动态行为的示例性计算机实现方法的流程图100。如上所述,协同仿真处理是一种在“集合点”或“通信”时间点tn之间独立进行若干个时间依赖仿真的处理,其中n=0,1,...nf,这其中nf是协同仿真步骤的总数。在每个通信点,信息交换发生在个体子系统仿真之间。整个协同仿真处理的进行从初始时间tstart=t0到结束时间
Figure BSA0000093891110000044
。因而,在一些实施例中,在tn到tn+I之间的任何点,在个体子系统仿真之间没有数据交换。然而,在这样的实施例中,未假设该协同仿真时间步骤在Δtn+1=tn+1-tn之间是相同的。另外,在一些实施例中,每个个体子系统仿真的行为由如方程(1)和(2)所示的常微分方程来描述:
xi(t)=fi(xi(t),ui(t))   方程(1)
yi(t)=gi(xi(t),ui(t)),i=1,...,r   方程(2)
其中xit表示第i个子系统的状态变量;ui和yi表示同一子系统的输入和输出变量;以及r≥2是协同仿真处理中子系统的数量。
耦合两个或多个子系统是通过线性或非线性代数输入-输出关系来约束的,如方程(3)所示:
ui(t)=zi(yj(t),j=1,...,r,j≠i),i=1,...,r  方程(3)
例如,对于两个子系统的情况,耦合方程将如方程(4)所示地书写:
u1(t)=y2(t);u2(t)=y1(t)  方程(4)
假设在通信点之间所有的输入是线性的,导致方程(5):
u i ( t ) = u n i · ( t n + 1 - t ) + u n + 1 i · ( t - t n ) t n + 1 - t n   方程(5)
其中所有个体子系统在时间tn+1的状态和输出变量可以是近似的,如方程(6)所示:
x n + 1 i = F i ( x n i , u n i , u n + 1 i ) ,   方程(6)
y n + 1 i = g i ( F i ( x n i , u n i , u n + 1 i ) , u n + 1 i )
注意,变量
Figure BSA0000093891110000058
在每个协同仿真时间步骤的开始总是可用的。当在这个步骤结束的输入变量的近似
Figure BSA00000938911100000510
为已知的时,从线性方程的系统的方案来确定输入变量
Figure BSA00000938911100000511
的增量,如方程(7)所示:
JΔun+1=h   方程(7)
其中J是输入-输出关系的全耦合雅可比矩阵,在方程(8)中表示:
J =
I - ∂ z 1 ∂ y 2 ( ∂ g 2 ∂ x 2 ∂ F 2 ∂ u 2 + ∂ g 2 ∂ u 2 ) · · · - ∂ z 1 ∂ y r - 1 ( ∂ g r - 1 ∂ x r - 1 ∂ F r - 1 ∂ u r - 1 + ∂ g r - 1 ∂ u r - 1 ) - ∂ z 1 ∂ y r ( ∂ g r ∂ x r ∂ F r ∂ u r + ∂ g r ∂ u r ) - ∂ z 2 ∂ y 1 ( ∂ g 1 ∂ x 1 ∂ F 1 ∂ u 1 + ∂ g 1 ∂ u 1 ) I · · · - ∂ z 2 ∂ y r - 1 ( ∂ g r - 1 ∂ x r - 1 ∂ F r - 1 ∂ u r - 1 + ∂ g r - 1 ∂ u r - 1 ) - ∂ z 2 ∂ y r ( ∂ g r ∂ x r ∂ F r ∂ u r + ∂ g r ∂ u r ) · · · · · · · · · · · · · · · - ∂ z r - 1 ∂ y 1 ( ∂ g 1 ∂ x 1 ∂ F 1 ∂ u 1 + ∂ g 1 ∂ u 1 ) - ∂ z r - 1 ∂ y 2 ( ∂ g 2 ∂ x 2 ∂ F 2 ∂ u 2 + ∂ g 2 ∂ u 2 ) · · · I - ∂ z r - 1 ∂ y r ( ∂ g r ∂ x r ∂ F r ∂ u r + ∂ g r ∂ u r ) - ∂ z r ∂ y 1 ( ∂ g 1 ∂ x 1 ∂ F 1 ∂ u 1 + ∂ g 1 ∂ u 1 ) - ∂ z r ∂ y 2 ( ∂ g 2 ∂ x 2 ∂ F 2 ∂ u 2 + ∂ g 2 ∂ u 2 ) · · · - ∂ z r ∂ y r - 1 ( ∂ g r - 1 ∂ x r - 1 ∂ F r - 1 ∂ u r - 1 + ∂ g r - 1 ∂ u r - 1 ) I   方程(8)
此处h是输入-输出关系的当前残值(residual),在方程(9)中表示:
h = z 1 ( g j ( F j ( x n j , u n j , u ‾ n + 1 j ) , u ‾ n + 1 j ) , j ≠ 1 ) - u ‾ n + 1 1 z 2 ( g j ( F j ( x n j , u n j , u ‾ n + 1 j ) , u ‾ n + 1 j ) , j ≠ 2 ) - u ‾ n + 1 2 · · · z r - 1 ( g j ( F j ( x n j , u n j , u ‾ n + 1 j ) , u ‾ n + 1 j ) , j ≠ r - 1 ) - u ‾ n + 1 r - 1 z r ( g j ( F j ( x n j , u n j , u ‾ n + 1 j ) , u ‾ n + 1 j ) , j ≠ r ) - u ‾ n + 1 r ; Δu n + 1 = Δu n + 1 1 Δu n + 1 2 · · · Δu n + 1 r - 1 Δu n + 1 r    方程(9)
基于以上方程,很明显的是每个个体子系统仿真j提供其自身的输出相对于其输入的全导数
Figure BSA0000093891110000053
其中包括来自状态变量的对应导数的贡献,并且所述全导数在各个协同仿真步骤的开始被计算。
Figure BSA0000093891110000054
值可以多种方式来近似。这里将讨论两种,但本领域技术人员将理解也可使用其他方法。这里描述的两种方法依靠应用近似导数的方法。
该第一近似
Figure BSA0000093891110000055
方法是使用均差,如方程(10)所示:
∂ F j ∂ u j ≈ F j ( x n j , u n j , u ‾ n + 1 j + ϵ e 1 ) - F j ( x n j , u n j , u ‾ n + 1 j ) ϵ F j ( x n j , u n j , u ‾ n j + ϵe 2 ) - F j ( x n j , u n j , u ‾ n + 1 j ) ϵ · · · T    方程(10)
其中ε是一个合适的小数字,em是第m个单元矢量。每个矩阵
Figure BSA0000093891110000057
的列维度等于输入变量uj的对应矢量的纬度。
近似的第二种方法是使用用于线性系统的矩阵指数的帕德近似。特别地,一个(2,1)-帕德近似导致方程(11):
∂ F j ∂ u j ≈ 1 2 ( I · 1 t n + 1 - t n - ∂ f j ( x n j , u n j ) ∂ x n j · 1 3 ) - 1 ∂ f i ( x n j , u n j ) ∂ u n j   方程(11)
应该理解的是,还可以使用更高次的帕德近似。该近似能够被直接计算,或者选择性地由于用于每个子系统的隐式积分方法也近似因而与子系统i的仿真结合。另外,一些实施例将这个矩阵转变为Hessenberg形式,从而更有效地以变化的步长来处理子系统集成,这对于任意矩阵γ和任意非零标量α、β,提高了求解
Figure BSA0000093891110000065
的速度。
这里描述的实施例的一个优点是使用了这些导数,这些导数彼此完全独立,并且由每个个体子系统仿真处理并行地计算出。状态变量、状态变量的导数,以及每个个体子系统仿真处理用来在通信点之间执行集成的算法,在每个过程中保持完全内部化或本地化,并且对于其他子系统仿真处理或者对于全局或主要协同仿真驱动器是不可见的。每个子系统仿真处理提供的唯一可见的数量(该数量对于计算雅可比矩阵是必要的)是子系统仿真处理输出相对于在每个当前协同仿真时间增量的结束处为输入变量的预计值计算出的输入的全导数。利用根据耦合方程中所有其它输出的每个输入的偏导数,组装或计算全局雅可比矩阵,该耦合方程通常由代数表达式和个体输出导数表示。
另外,在给定的协同仿真时间增量tn+1的结束处用于所有子系统仿真处理的所有输入变量的最终值,被确定为一个迭代处理的结果。在每个迭代k,输入增量被确定为上述呈现的线性方程系统的方案。典型地,在每个协同仿真时间增量仅进行一次计算和因式分解雅可比矩阵,但是全局残差矢量基于方程(12)中更新的输入变量在每次迭代被重新计算:
u n + 1 , k + 1 i = u n + 1 , k i + Δu n + 1 , k i , i = 1,2 , . . . , r   方程(12)
在示例性实施例中,利用一个预测子为每个子系统处理确定全局残差矢量的初始近似。一个预测子在方程(13)中表示:
u n + 1,1 i = u n i , i = 1,2 , . . . , r   方程(13)
在一些实施例中,仅仅执行单次迭代来为所有的个体子系统仿真处理确定输入增量。然而,在示例性实施例中,执行若干非线性迭代来便于增强精确度,而无需牺牲性能。
此处描述的实施例的另一个优点是对于残差计算在每个个体子系统仿真处理中没有时间集成处理。相反,通过每个个体子系统仿真处理计算和存储个体状态变量相对于对应输入的导数。因此,基于方程(14)近似更新的状态变量和输出变量:
x n + 1 , k + 1 i = F i ( x n i , u n i , u n + 1 , k + 1 i ) ≅ F i ( x n i , u n i , u n + 1 , k i ) +
∂ F i ∂ u i Δ u n + 1 , k i = x n + 1 , k i + ∂ F i ∂ u i Δ u n + 1 , k i , i = 1,2 , . . . , r   方程(14)
在示例性实施例中,基于方程(15)显示的常微分方程的精确解,更有效地计算方程(14)。
Δ x · i ( t ) = ∂ F i ∂ x i Δ x i ( t ) + ∂ F i ∂ u i u · i ( t - t n ) , t n ≤ t ≤ t n + 1 , Δ x i ( t n ) = 0 , u · i = Δ u n + 1 i t n + 1 - t n 方程(15)
明显地,方程(15)导致了一个不同的方案,而非在相邻通信时间点之间的状态变量的线性行为的假设下获得的方案。
在输入输出关系的非线性系统的迭代处理完成后,确定输入变量
Figure BSA0000093891110000079
i=1,2,...,r的最终值,计算每个个体子系统仿真处理的校正子集成以完成给定的协同仿真时间增量的集成处理。这些计算彼此独立,因而可以并行执行。该计算在方程(16)和(17)中显示:
x n + 1 i = F i ( x n i , u n i , u n + 1 i )   方程(16)
y n + 1 i = g i ( F i ( x n i , u n i , u n + 1 i ) , u n + 1 i )   方程(17)
现在参见图1,显示了跨越多个仿真子系统的单个协同仿真时间增量的处理步骤。如同这里使用的,术语“预测子”指代表了被操纵或改变的值的独立变量。预测子-校正子方法在两个步骤中进行。第一,预测步骤计算期望数量的粗略近似。第二,校正子步骤利用其它部件细化初始近似。在示例性实施例中,通过利用相应预测子计算102输入增量和所有子系统的第一组残差,单个协同仿真增量开始。然后基于与用于每个子系统的对应的第一组输入变量相关的输出导数,计算104雅可比矩阵。更详细地,为每个子系统计算106与对应的第一组输入变量相关的输出导数,组装108雅可比矩阵,然后因式分解110雅可比矩阵。
在示例性实施例中,使用雅可比矩阵来修改112输入变量。更详细地,组装114残差,并且基于因式分解后的雅可比矩阵来计算输入增量。然后基于对应的状态变量导数,为每个子系统计算116第二组输入变量和第二组残差。基于对应的校正子,为每个子系统计算118最终输出;并在存储器区域内存储120相关数据。如果在tn+1<tfinish时随后的时间增量是必要的,则处理再次开始,通过使用在随后的时间步骤上对应的预测子,为所有子系统计算102输入增量和残差。
图2是示例性计算机网络200的示意性框图,所述计算机网络200用于仿真由若干个子系统组成的复杂工程系统的动态行为,和/或用于执行如上所述的处理和/或与如上所述处理相关的额外处理。在示例性实施例中,存储器区域202包括一个或多个存储装置204,用于存储数据,例如输入增量、残差、预测子、输出导数、一个或多个雅可比矩阵、状态变量导数、最终系统输出、校正子,或任何其他合适的数据。在一些实施例中,经由网络210,存储器区域202耦合到服务器系统206,服务器系统206接着耦合到客户端系统208(例如管理员系统和/或用户系统)。存储装置204可以具体化为一个或多个数据库,可以位于单个或多个地理位置,或可以与服务器系统206集成。
如可以理解地,网络210可以是公共网络(例如因特网),或私人网络(例如LAN或WAN网络),或其任意组合,网络210还可以包括PSTN或ISDN子网络。网络210还可以是有线的(例如以太网络),或可以是无线的(例如包括EDGE、3G和4G无线蜂窝系统的蜂窝网络)。无线网络还可以是WiFi、蓝牙,或任何其他已知的无线通信形式。因此,网络210仅仅是示例性的,而不用来限制当前进步的范围。
客户端系统208可以是任何合适的计算机体系结构,例如下面参考图3描述的计算机体系结构,或任何其他已知的计算体系结构。另外,需要理解的是,服务器系统206被配置为执行上述的处理和/或与上述相关的任意额外的处理。
服务器系统206存储计算机可读指令来执行上述的处理,并经由网络210将这些指令提供给客户端系统208。另外,服务器系统206还能提供来自存储器区域202的、客户端系统208所需的数据,从而客户端系统208执行如上所述的处理。这样,图2包括经由云计算、分布式计算等实现计算机系统200。
在操作过程中,服务器系统206和客户端系统208交互地执行图1中的上述步骤。例如,通过利用对应的预测子为所有子系统计算输入增量和第一组残差,服务器系统206执行在单个协同仿真增量中的操作。基于与用于每个子系统的对应的第一组输入变量相关的输出导数,服务器系统206随后计算雅可比矩阵。更详细地,基于用于每个子系统的对应的状态变量导数,计算与对应的第一组输入变量相关的输出导数,组装雅可比矩阵,然后因式分解该雅可比矩阵。另外,在示例性实施例中,服务器系统206使用因式分解后的雅可比矩阵来修改第一组输入变量。更具体地,组装第一组残差,并基于因式分解后的雅可比矩阵计算输入增量。随后,基于对应的状态变量导数,服务器系统206为每个子系统计算第二组输入变量和第二组残差。服务器系统206还为每个子系统基于对应的校正子计算最终输出,并且将数据存储在存储器区域202中。服务器系统206还可以将最终输出和/或数据传输给一个或多个客户端系统208来显示给用户。
图3是与服务器系统206和/或客户端系统208(其每个均在图2中显示)一起使用的示例性计算机体系结构300的示意性框图。
在示例性实施例中,计算机体系结构300包括一个或多个处理器302(CPU),该处理器302执行上述处理和/或可能与以上所述的那些相关的任意额外处理。需要理解的是,术语“处理器”通常指任意可编程的系统,其包括系统和微控制器、精简指令集电路(RISC)、专用集成电路(ASIC)、可编程逻辑电路,和/或能够执行本文描述的功能的任何其它电路或处理器。以上例子仅仅是示例性的,因此并不意图以任何方式来限制术语“处理器”的定义和/或含义。
以上描述的处理步骤和/或与以上描述的那些相关的任意额外处理可以作为计算机可执行指令存储在例如存储器区域304,存储器区域304可操作地和/或可通信地通过系统总线306耦合到处理器302。如这里使用的,“存储器区域”通常指存储非暂时性程序代码和指令的任何部件,该程序代码和指令可由一个或多个处理器执行来帮助仿真由若干个子系统组成的复杂工程系统的动态行为,和/或用于执行以上描述的处理和/或与以上描述的那些可能相关的额外处理。存储器区域304可以包括一个或多于一个的存储形式。例如,存储器区域304可以包括随机存取存储器(RAM)308,该RAM308可以包括非易失性RAM、磁性RAM、铁电RAM和/或其他形式的RAM。存储器区域304还可以包括只读存储器(ROM)310和/或快闪存储器和/或电可编程只读存储器(EEPROM)。任何其它合适的磁、光和/或半导体存储器,例如硬盘驱动(HDD)312,其自身或与其他形式存储器的结合,都可以包含在存储器区域304中。HDD312还可以耦合到磁盘控制器314,用于传输和接收来自或发往处理器302的消息。另外,存储器区域304还可以是,或可以包括,可拆卸或可移除的存储器316,例如合适的盒式磁盘、CD-ROM、DVD,或USB存储器。以上的例子仅仅是示例性的,因此并不意图以任何方式限制术语“存储器区域”的定义和/或含义。
计算机体系结构300还包括显示装置318,其耦合(例如可操作地耦合)到显示控制器320。显示控制器320经由系统总线306接收数据,用于通过显示装置318进行显示。显示装置318可以是但并不限于:监控器、电视显示器,等离子显示器,液晶显示器(LCD),基于发光二极管(LED)的显示器,基于有机LED(OLED)的显示器,基于聚合物LED的显示器,基于表面传导电子发射器的显示器,包括投影和/或反射图像的显示器,或任何其他合适的电子装置或显示机构。另外,显示装置318可以包括具有相关联的触摸屏控制器320的触摸屏。以上的例子仅仅是示例性的,因此并不意图以任何方式限制术语“显示装置”的定义和/或含义。
另外,计算机体系结构300包括网络接口322,用于与网络(在图3中未显示)进行通信。此外,该计算机体系结构300包括一个或多个输入装置,例如键盘324和/或定点装置326,例如滚动球、鼠标、触摸板等等。输入装置耦合到输入/输出(I/O)接口328且被其控制,I/O接口328进一步耦合到系统总线306。
为简洁起见,本文省略了显示装置318、键盘324、定点装置326,以及显示控制器320、磁盘控制器314、网络接口322和I/O接口328的通常特征和功能的说明,因为这些特征是已知的。
在操作过程中,处理器302执行图1中的上述步骤。例如,通过利用对应的预测子为所有子系统计算输入增量和第一组残差,处理器302执行在单个协同仿真增量中的操作。随后,基于与用于每个子系统的对应的第一组输入变量相关的输出导数,处理器302计算雅可比矩阵。更具体地,基于用于每个子系统的对应的状态变量导数,计算与对应的第一组输入变量相关的输出导数,组装雅可比矩阵,然后因式分解雅可比矩阵。此外,在示例性实施例中,处理器302使用因式分解后的雅可比矩阵来修改第一组输入变量。更具体地,组装第一组残差,并且基于因式分解后的雅可比矩阵计算输入增量。随后,基于对应的状态变量导数,处理器302为每个子系统计算第二组输入变量以及第二组残差。处理器302还基于对应的校正子为每个子系统计算最终输出,并且将数据存储在存储器区域304中。处理器302还可以将最终输出和/或数据传输给显示控制器320,用于经由显示装置318显示给用户。
以上详细地描述了用来仿真由若干个子系统组成的复杂工程系统的动态行为的方法、系统、装置以及计算机程序产品的示例性实施例。方法、系统、装置以及计算机程序产品不限于这里描述的特定实施例,而是,可以独立地且与此处描述的其它操作和/或部件分离地使用方法的一些操作和/或系统和/或装置的部件。然而,在一些实施例中,以上描述的方法操作的顺序和/或系统和/或装置的部件的使用对于正确操作是必需的。进一步地,所描述的操作和/或部件还可以被定义或被结合使用在其他系统、方法和/或装置中,且并不限于仅仅以此处描述的系统、方法和存储介质实现。
客户端计算机和服务器(比如那些此处描述的)包括至少一个处理器或处理单元和系统存储器。客户端计算机和服务器典型地具有至少一些形式的计算机可读介质。以举例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性、可移除和不可移除的介质,上述介质是以存储信息的任何方法或技术实现的,所述信息例如是计算机可读指令、数据结构、程序模块或其他数据。通信介质典型地具体化为计算机可读指令、数据结构、程序模块,或已调数据信号中的其他数据,例如载波或其他传输机制,并且通信介质包括任何信息输送介质。本领域技术人员熟悉已调数据信号,该已调数据信号具有其一个或多个特征集或以对信号中信息编码的方式改变。上述任意组合也包含在计算机可读介质的范围之内。
虽然结合示例性仿真系统环境描述了本发明,但本发明的实施例可与多个其他通用或专用仿真系统环境或配置一起操作。仿真系统环境并不意图对本发明的任何方面的使用或功能的范围提出任何限制。而且,仿真系统环境不应被解释为对示例性操作环境中示出的任何一个部件或部件组合有任何相关依赖或要求。可以适用于与本发明各个方案一起使用的公知的仿真系统、环境和/或配置的例子包括但是不限于,个人计算机、服务器计算机、手持或膝上装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、网络PC、微计算机、大型机计算机,包括以上任意系统或装置的分布式计算环境,等等。
本发明的实施例可以在由一个或多个计算机或其他装置执行的计算机可执行指令(例如程序部件或模块)的一般环境下进行描述。本发明的各个方案可以由任意数量和组织的部件或模块实现。例如,本发明的各个方案不限于在附图中阐述的和本文描述的特定计算机可执行指令或特定部件或模块。本发明的可选实施例可以包括具有比本文阐述和描述的更多或更少功能的不同的计算机可执行指令或部件。
示例性计算机程序产品包括,例如,一个或多个非瞬态计算机可读存储介质,该存储介质上具有计算机可执行部件。计算机可执行部件包括雅可比矩阵部件,当处理器(例如处理器302(图3所示)或服务器系统206的处理器(图2所示))执行该部件时,导致该处理器基于与来自第一组输入变量的对应输入变量相关的输出导数,为代表物理对象的主系统的多个子系统中的每个计算雅可比矩阵。在一些实施例中,雅可比矩阵部件进一步使得该处理器因式分解该雅可比矩阵。此外,在一些实施例中,雅可比矩阵部件进一步使得该处理器为了计算第二组输入变量而组装第一组残差以及基于因式分解后的雅可比矩阵来计算输入增量。
在示例性实施例中,计算机可执行部件还包括修改部件,该修改部件使得该处理器修改第一组输入变量。而且,在示例性实施例中,计算机可执行部件包括第二导数部件,该第二导数部件使得处理器基于对应的状态变量导数为多个子系统中的每一个计算第二组输入变量以及第二组残差。在一些实施例中,当残差是第二组残差时,第二导数部件使得处理器基于对应的预测子为多个子系统中的每一个计算输入增量和第一组残差。
在一些实施例中,计算机可执行部件还包括第一导数部件,该第一导数部件使得处理器计算与用于多个子系统的每个的对应的第一组输入变量相关的输出导数,以便于计算雅可比矩阵。另外,在一些实施例中,计算机可执行部件包括输出部件,该输出部件使得处理器基于对应的校正子为多个子系统的每一个计算输出。在一些这样的实施例中,输出部件还使得处理器在存储器区域中存储以下一个或多个:雅可比矩阵、输出导数、第一输入变量、第二输入变量、残差以及输出。
此处阐述和表述的本发明实施例的操作的执行或运行的顺序并不是必要的,除非有其他说明。也就是说,该操作可以任何顺序执行,除非有其他说明,并且本发明的实施例可以包括比本文所公开的那些更多或更少的操作。例如,可以设想,在一个操作之前、同时或之后执行或运行另一个特别操作,在本发明的各个方案的范围之内。
当介绍本发明或其实施例的各方案的元件时,冠词“一(a)”、“一(an)”、“该”和“所述”意图表示存在一个或多个该元件。术语“包含”、“包括”和“具有”意在包含性的并表示可以存在除了所列出元件之外的额外元件。
这个书面描述使用例子来公开本发明,包括最佳模式,并且还使得本领域的任何技术人员都能够实现本发明,包括制造和使用任何装置或系统以及实施任何合并的方法。本发明可取得专利权的范围由权利要求定义,并且可以包括本领域技术人员获知的其他例子。如果这种其他例子具有并非不同于权利要求的文字语言的结构元件,或者如果这种其他例子包括与权利要求的文字语言有非实质性区别的等价结构的元件,则这种其他例子意在权利要求的保护范围之内。

Claims (20)

1.一种计算机实现方法,包括
基于输出导数计算雅可比矩阵,其中所述输出导数基于对应的状态变量导数,所述状态变量导数与用于多个子系统中的每一个的对应的第一输入变量相关;
修改所述第一输入变量;以及
基于对应的状态变量导数,为所述多个子系统中的每一个计算第二输入变量和残差。
2.如权利要求1所述的计算机实现方法,其中,所述残差是第二残差,所述计算机实现方法进一步包括:基于对应的预测子,为所述多个子系统中的每一个计算输入增量和第一残差。
3.如权利要求1所述的计算机实现方法,其中,计算雅可比矩阵包括:基于所述对应的状态变量导数,计算所述输出导数,所述状态变量导数与用于所述多个子系统中的每一个的所述对应的第一输入变量相关。
4.如权利要求1所述的计算机实现方法,其中,计算雅可比矩阵包括因式分解所述雅可比矩阵。
5.如权利要求4所述的计算机实现方法,其中,计算第二输入变量包括:
组装所述残差;以及
基于因式分解后的雅可比矩阵计算输入增量。
6.如权利要求1所述的计算机实现方法,进一步包括:基于对应的校正子,为所述多个子系统中的每一个计算输出。
7.一种计算机,包括:
存储器区域,其被配置为存储雅可比矩阵、输出导数、用于多个子系统中的每一个的第一和第二输入变量、用于所述多个子系统中的每一个的残差,以及对应于所述第一输入变量和所述残差的状态变量导数;以及
处理器,其耦合到所述存储器区域,所述处理器被配置为:
基于所述输出导数计算所述雅可比矩阵,其中所述输出导数基于对应的状态变量导数,所述状态变量导数与用于所述多个子系统中的每一个的对应的第一输入变量相关;
修改所述第一输入变量;以及
基于所述对应的状态变量导数,为所述多个子系统中的每一个计算所述第二输入变量和所述残差。
8.如权利要求7所述的计算机,其中,所述残差是第二残差,所述处理器进一步被配置为:基于对应的预测子,为所述多个子系统中的每一个计算输入增量和第一残差。
9.如权利要求7所述的计算机,其中,所述处理器进一步被配置为:计算与用于所述多个子系统中的每一个的所述对应的第一输入变量相关的所述输出导数,从而计算所述雅可比矩阵。
10.如权利要求7所述的计算机,其中,所述处理器进一步被配置为:因式分解所述雅可比矩阵。
11.如权利要求10所述的计算机,其中,所述处理器进一步被配置为:
组装所述残差;以及
基于因式分解后的雅可比矩阵计算输入增量,从而计算所述第二输入变量。
12.如权利要求7所述的计算机,其中,所述处理器进一步被配置为:基于对应的校正子,为所述多个子系统中的每一个计算输出。
13.如权利要求12所述的计算机,其中,所述存储器区域进一步被配置为存储所述输出。
14.一种计算机程序产品,包括:
一个或多个非瞬态计算机可读存储介质,其上具有计算机可执行部件,所述计算机可执行部件包括:
雅可比矩阵部件,当其被处理器执行时,使得所述处理器基于输出导数计算雅可比矩阵,其中所述输出导数基于对应的状态变量导数,所述状态变量导数与用于多个子系统中的每一个的对应的第一输入变量相关;
修改部件,当其被处理器执行时,使得所述处理器修改所述第一输入变量;以及
第二导数部件,当其被处理器执行时,使得所述处理器基于对应的状态变量导数,为所述多个子系统中的每一个计算第二输入变量和残差。
15.如权利要求14所述的计算机程序产品,其中,所述残差是第二残差,所述第二导数部件进一步使得所述处理器基于对应的预测子,为所述多个子系统中的每一个计算输入增量和第一残差。
16.如权利要求14所述的计算机程序产品,其中,所述计算机可执行部件进一步包括第一导数部件,当其被处理器执行时,使得所述处理器计算与用于所述多个子系统中的每一个的所述对应的第一输入变量相关的所述输出导数,从而便于计算所述雅可比矩阵。
17.如权利要求14所述的计算机程序产品,其中,所述雅可比矩阵部件进一步使得所述处理器因式分解所述雅可比矩阵。
18.如权利要求17所述的计算机程序产品,其中,所述雅可比矩阵部件进一步使得所述处理器:
组装所述残差;以及
基于因式分解后的雅可比矩阵计算输入增量,从而计算所述第二输入变量。
19.如权利要求14所述的计算机程序产品,其中,所述计算机可执行部件进一步包括输出部件,当其被处理器执行时,使得所述处理器基于对应的校正子,为所述多个子系统中的每一个计算输出。
20.如权利要求19所述的计算机程序产品,其中,所述输出部件进一步使得所述处理器在存储器区域中存储以下中的一个或多个:所述雅可比矩阵、所述输出导数、所述第一输入变量、所述第二输入变量、所述残差,以及所述输出。
CN201310353690.4A 2012-06-29 2013-06-28 利用输出变量全导数的协同仿真过程 Active CN103530439B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/538,343 US9223754B2 (en) 2012-06-29 2012-06-29 Co-simulation procedures using full derivatives of output variables
US13/538,343 2012-06-29

Publications (2)

Publication Number Publication Date
CN103530439A true CN103530439A (zh) 2014-01-22
CN103530439B CN103530439B (zh) 2018-01-02

Family

ID=48703175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310353690.4A Active CN103530439B (zh) 2012-06-29 2013-06-28 利用输出变量全导数的协同仿真过程

Country Status (7)

Country Link
US (1) US9223754B2 (zh)
EP (1) EP2680157B1 (zh)
JP (1) JP6329734B2 (zh)
KR (1) KR20140002556A (zh)
CN (1) CN103530439B (zh)
CA (1) CA2819763A1 (zh)
IN (1) IN2013MU02122A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580373A (zh) * 2018-06-07 2019-12-17 能力中心-虚拟车辆研究公司 预处理协同仿真方法和装置
CN115718986A (zh) * 2022-10-31 2023-02-28 南方电网数字电网研究院有限公司 一种基于分布式内存架构的多核并行时域仿真方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755003B2 (en) * 2013-11-08 2020-08-25 Rockwell Automation Technologies, Inc. Time synchronization of signal transmission intervals for simulating a machine in industrial automation
EP3136267A1 (en) 2015-08-25 2017-03-01 Volvo Car Corporation Method and system for control and co-simulation of physical systems
EP3188053A1 (de) * 2015-12-30 2017-07-05 Kompetenzzentrum - Das virtuelle Fahrzeug Forschungsgesellschaft mbH Verfahren zum konfigurieren einer co-simulation für ein gesamtsystem
CN107357976B (zh) * 2017-06-27 2020-12-11 四川腾盾科技有限公司 一种飞行器的动导数的计算方法
CN115758784B (zh) * 2022-11-30 2023-12-12 南方电网数字电网研究院有限公司 支撑电力系统时域仿真的大型雅各比矩阵低耗时迭代方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918643A (en) * 1988-06-21 1990-04-17 At&T Bell Laboratories Method and apparatus for substantially improving the throughput of circuit simulators
SE9400579L (sv) * 1994-02-21 1995-08-22 Asea Brown Boveri Förfarande för att styra en industrirobots rörelse i och i närheten av singulariteter
JPH08147267A (ja) * 1994-11-25 1996-06-07 Sanyo Electric Co Ltd 連立方程式解法
US5629845A (en) * 1995-08-17 1997-05-13 Liniger; Werner Parallel computation of the response of a physical system
US7596474B2 (en) * 2000-08-02 2009-09-29 Comsol Ab Method for assembling the finite element discretization of arbitrary weak equations involving local or non-local multiphysics couplings
AU2002239789A1 (en) * 2000-11-02 2002-05-21 Protein Mechanics, Inc Method for large timesteps in molecular modeling
US7164800B2 (en) * 2003-02-19 2007-01-16 Eastman Kodak Company Method and system for constraint-consistent motion estimation
EP2019988B1 (en) * 2006-05-24 2010-02-17 Maersk Olie & Gas A/S Flow simulation in a well or pipe
US7548840B2 (en) * 2006-06-06 2009-06-16 Chevron U.S.A. Inc. Efficient application of reduced variable transformation and conditional stability testing in reservoir simulation flash calculations
US7626534B1 (en) * 2007-06-12 2009-12-01 Lockheed Martin Corporation Unified navigation and inertial target tracking estimation system
US20090299929A1 (en) * 2008-05-30 2009-12-03 Robert Kozma Methods of improved learning in simultaneous recurrent neural networks
JP4988789B2 (ja) * 2009-05-19 2012-08-01 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション・システム、方法及びプログラム
US8271237B2 (en) * 2010-02-02 2012-09-18 Livermore Software Technology Corporation Fully-integrated hexahedral elements configured for reducing shear locking in finite element method
US8688616B2 (en) * 2010-06-14 2014-04-01 Blue Prism Technologies Pte. Ltd. High-dimensional data analysis
WO2012016596A1 (de) * 2010-08-05 2012-02-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. Vorrichtung und verfahren zum bearbeiten einer prozesssimulationsdatenbasis eines prozesses
US8914262B2 (en) * 2011-11-08 2014-12-16 The Mathworks, Inc. Visualization of data dependency in graphical models
US9002692B2 (en) * 2012-03-13 2015-04-07 Synopsys, Inc. Electronic circuit simulation method with adaptive iteration

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580373A (zh) * 2018-06-07 2019-12-17 能力中心-虚拟车辆研究公司 预处理协同仿真方法和装置
CN110580373B (zh) * 2018-06-07 2023-09-15 虚拟汽车研究有限公司 预处理协同仿真方法和装置
CN115718986A (zh) * 2022-10-31 2023-02-28 南方电网数字电网研究院有限公司 一种基于分布式内存架构的多核并行时域仿真方法
CN115718986B (zh) * 2022-10-31 2023-12-12 南方电网数字电网研究院有限公司 一种基于分布式内存架构的多核并行时域仿真方法

Also Published As

Publication number Publication date
CN103530439B (zh) 2018-01-02
US9223754B2 (en) 2015-12-29
CA2819763A1 (en) 2013-12-29
JP2014026649A (ja) 2014-02-06
EP2680157A1 (en) 2014-01-01
US20140005989A1 (en) 2014-01-02
KR20140002556A (ko) 2014-01-08
IN2013MU02122A (zh) 2015-07-10
EP2680157B1 (en) 2023-08-09
JP6329734B2 (ja) 2018-05-23

Similar Documents

Publication Publication Date Title
CN103530439A (zh) 利用输出变量全导数的协同仿真过程
Radulescu et al. Reduction of dynamical biochemical reactions networks in computational biology
Saltelli et al. Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index
Agiza et al. Nonlinear dynamics in the Cournot duopoly game with heterogeneous players
Liu et al. Field-split preconditioned inexact Newton algorithms
Taylor Isogeometric analysis of nearly incompressible solids
Logg Automating the finite element method
Vanderperren et al. From UML/SysML to Matlab/Simulink: current state and future perspectives
Song et al. An exact reanalysis algorithm for local non-topological high-rank structural modifications in finite element analysis
Farkas et al. Fuzzy finite element analysis based on reanalysis technique
Prebeg et al. Application of a surrogate modeling to the ship structural design
US20140188443A1 (en) Accelerated Modal Frequency Response Calculation
Charpentier On higher-order differentiation in nonlinear mechanics
US10282498B2 (en) Processor-implemented systems and methods for time domain decomposition transient simulation in parallel
Brown et al. A monolithic homotopy continuation algorithm with application to computational fluid dynamics
Zheng et al. Identifying rock blocks based on exact arithmetic
Guo et al. Application of the two-loop procedure in multibody dynamics with contact and constraint
Berry The essential similarity and differences between mathematical modeling and programming
Kofman et al. Compact sparse symbolic Jacobian computation in large systems of ODEs
Benhammouda The Differential Transform Method as an Effective Tool to Solve Implicit Hessenberg Index‐3 Differential‐Algebraic Equations
US20210034802A1 (en) Method and apparatus for explicit simulation
Pellissetti et al. Scalable uncertainty and reliability analysis by integration of advanced Monte Carlo simulation and generic finite element solvers
Yalta et al. On the importance of verifying forecasting results
Mushtaq et al. Automatic code generator for higher order integrators
Bergamaschi et al. Parallel RFSAI‐BFGS preconditioners for large symmetric eigenproblems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant