CN103530439A - 利用输出变量全导数的协同仿真过程 - Google Patents
利用输出变量全导数的协同仿真过程 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004088 simulation Methods 0.000 title description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 12
- 208000011580 syndromic disease Diseases 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical 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到结束时间。因而,在一些实施例中,在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):
其中所有个体子系统在时间tn+1的状态和输出变量可以是近似的,如方程(6)所示:
JΔun+1=h 方程(7)
其中J是输入-输出关系的全耦合雅可比矩阵,在方程(8)中表示:
此处h是输入-输出关系的当前残值(residual),在方程(9)中表示:
近似的第二种方法是使用用于线性系统的矩阵指数的帕德近似。特别地,一个(2,1)-帕德近似导致方程(11):
应该理解的是,还可以使用更高次的帕德近似。该近似能够被直接计算,或者选择性地由于用于每个子系统的隐式积分方法也近似因而与子系统i的仿真结合。另外,一些实施例将这个矩阵转变为Hessenberg形式,从而更有效地以变化的步长来处理子系统集成,这对于任意矩阵γ和任意非零标量α、β,提高了求解的速度。
这里描述的实施例的一个优点是使用了这些导数,这些导数彼此完全独立,并且由每个个体子系统仿真处理并行地计算出。状态变量、状态变量的导数,以及每个个体子系统仿真处理用来在通信点之间执行集成的算法,在每个过程中保持完全内部化或本地化,并且对于其他子系统仿真处理或者对于全局或主要协同仿真驱动器是不可见的。每个子系统仿真处理提供的唯一可见的数量(该数量对于计算雅可比矩阵是必要的)是子系统仿真处理输出相对于在每个当前协同仿真时间增量的结束处为输入变量的预计值计算出的输入的全导数。利用根据耦合方程中所有其它输出的每个输入的偏导数,组装或计算全局雅可比矩阵,该耦合方程通常由代数表达式和个体输出导数表示。
另外,在给定的协同仿真时间增量tn+1的结束处用于所有子系统仿真处理的所有输入变量的最终值,被确定为一个迭代处理的结果。在每个迭代k,输入增量被确定为上述呈现的线性方程系统的方案。典型地,在每个协同仿真时间增量仅进行一次计算和因式分解雅可比矩阵,但是全局残差矢量基于方程(12)中更新的输入变量在每次迭代被重新计算:
在示例性实施例中,利用一个预测子为每个子系统处理确定全局残差矢量的初始近似。一个预测子在方程(13)中表示:
在一些实施例中,仅仅执行单次迭代来为所有的个体子系统仿真处理确定输入增量。然而,在示例性实施例中,执行若干非线性迭代来便于增强精确度,而无需牺牲性能。
此处描述的实施例的另一个优点是对于残差计算在每个个体子系统仿真处理中没有时间集成处理。相反,通过每个个体子系统仿真处理计算和存储个体状态变量相对于对应输入的导数。因此,基于方程(14)近似更新的状态变量和输出变量:
在示例性实施例中,基于方程(15)显示的常微分方程的精确解,更有效地计算方程(14)。
明显地,方程(15)导致了一个不同的方案,而非在相邻通信时间点之间的状态变量的线性行为的假设下获得的方案。
在输入输出关系的非线性系统的迭代处理完成后,确定输入变量i=1,2,...,r的最终值,计算每个个体子系统仿真处理的校正子集成以完成给定的协同仿真时间增量的集成处理。这些计算彼此独立,因而可以并行执行。该计算在方程(16)和(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所述的计算机程序产品,其中,所述输出部件进一步使得所述处理器在存储器区域中存储以下中的一个或多个:所述雅可比矩阵、所述输出导数、所述第一输入变量、所述第二输入变量、所述残差,以及所述输出。
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)
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)
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)
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 |
JP2004527027A (ja) * | 2000-11-02 | 2004-09-02 | プロテイン メカニクス, インコーポレイテッド | 分子モデリングにおける解析的ヤコビアン計算のための方法 |
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 |
-
2012
- 2012-06-29 US US13/538,343 patent/US9223754B2/en active Active
-
2013
- 2013-06-24 EP EP13173462.6A patent/EP2680157B1/en active Active
- 2013-06-24 IN IN2122MU2013 patent/IN2013MU02122A/en unknown
- 2013-06-28 KR KR1020130075456A patent/KR20140002556A/ko not_active Application Discontinuation
- 2013-06-28 CN CN201310353690.4A patent/CN103530439B/zh active Active
- 2013-06-28 JP JP2013136884A patent/JP6329734B2/ja active Active
- 2013-06-28 CA CA2819763A patent/CA2819763A1/en not_active Abandoned
Cited By (4)
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 |
---|---|
US20140005989A1 (en) | 2014-01-02 |
CN103530439B (zh) | 2018-01-02 |
CA2819763A1 (en) | 2013-12-29 |
JP2014026649A (ja) | 2014-02-06 |
EP2680157A1 (en) | 2014-01-01 |
JP6329734B2 (ja) | 2018-05-23 |
IN2013MU02122A (zh) | 2015-07-10 |
EP2680157B1 (en) | 2023-08-09 |
KR20140002556A (ko) | 2014-01-08 |
US9223754B2 (en) | 2015-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530439A (zh) | 利用输出变量全导数的协同仿真过程 | |
Radulescu et al. | Reduction of dynamical biochemical reactions networks in computational biology | |
Leineweber et al. | An efficient multiple shooting based reduced SQP strategy for large-scale dynamic process optimization. Part 1: theoretical aspects | |
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 | |
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 | |
Prebeg et al. | Application of a surrogate modeling to the ship structural design | |
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 | |
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 | |
Genser et al. | Model-based pre-step stabilization method for non-iterative co-simulation | |
Simić et al. | Bit-precise verification of discontinuity errors under fixed-point arithmetic | |
Mushtaq et al. | Automatic code generator for higher order integrators | |
Bergamaschi et al. | Parallel RFSAI‐BFGS preconditioners for large symmetric eigenproblems | |
Zhang | Geodesics, nonlinear normal modes of conservative vibratory systems and decomposition method | |
Wang et al. | Robust extensions for reduced-space barrier NLP algorithms | |
Deng | Multiple-rank updates to matrix factorizations for nonlinear analysis and circuit design |
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 |