System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于系统仿真,涉及一种系统仿真中保辛数值求解方法。
技术介绍
1、诸如分析动力学、光学、量子物理、等离子物理、控制论和流体力学等物理学及自然领域中的许多实际问题均能以微分方程刻画,而实际问题的复杂形式往往导致难以获得微分方程的精确解,此时数值模拟便显得尤为重要。
2、至今,动力学方程的数值算法已有了线性多步法、runge-kutta法以及在此基础上发展起来的单支方法、分块方法、循环方法、外推法、混合方法、二阶导数法以及各种常用的预估校正算法。从航空航天、汽车、船舶等工程领域的应用情况来看,目前工程上最常用到的方法主要是线性多步法(bdf、adams)、runge-kutta和这些算法的各种改进方法。
3、综合来看,线性多步法和runge-kutta适应性好、稳定性强,并且在众多数值积分算法中相对效率较高。但这两种主流算法在求解过程中不可避免地会发生解的耗散,原因是其数值积分格式无法保证“辛结构”的守恒。
4、目前所有仿真工具的求解算法都是“非辛”的,即存在耗散,对于长时间仿真会严重失真。冯康院士提出了一种“保辛格式的数值积分算法”,该算法是一种适用于哈密顿系统的无耗散的数值积分格式,具有无耗散、隐格式稳定性好的特点。
5、关于“保辛”格式的含义,简单来说,对于一个哈密顿系统(hamilton system):
6、
7、其中,q=(q1,q2,...,qn)为广义坐标,p=(p1,p2,...,pn)为广义动量,n为系统自由度,哈密顿量h=t(动能
8、系统在t0时刻的状态为(p0,q0),则其相流为:
9、(p,q)=φh(t,t0)(p0,q0)
10、此处定义2个广义向量:
11、
12、为了简化说明,此处将n取作1,这时2个广义向量的面积可以记作:
13、
14、如果一个线性映射w,对任意的(ξ,η)都能满足ω(wξ,wη)=ω(ξ,η),则该映射为辛的。其几何意义为,ω(ξ,η)表示两个向量之间平行四边形的面积,在线性辛映射该面积保持不变,其等价形式为:wjtw=j。
15、对于s级rk方法来说,如果记对角矩阵dig[b1,...,bs]为b,m=ba+atb-bbt。当m=0时,则该方法保辛(哈密顿系统的辛几何算法,冯康/秦孟兆著)。
16、
17、根据上述理论,可以得到一族多级辛rk方法的butcher矩阵:
18、
19、算法的具体表达式为:
20、
21、该算法的名称是“对角隐式保辛分块龙格库塔法(disprk,diagonally implicitsymplectic p-runge-kutta)”,这是一种s级算法,当其阶p≥3时,数值格式不是a稳定的;当其阶p≤2时,数值格式是a稳定的(即绝对稳定),这是其固有属性。
22、disprk方法的主要优势为:求解过程保辛结构、无耗散;不仅限于哈密顿系统,对某些非哈系统也能保结构。保辛算法在在天体力学、gps观测定位、地震波传播与成像、电力系统暂态分析、分子动力学、等离子体数值模拟等领域已有广泛应用。
23、一般工程应用中,会尽量选择具备a稳定特性的算法。所以一般实际应用中会选取2级2阶保辛算法,该格式的名称为“2级2阶对角隐式保辛分块龙格库塔法(disprk22,diagonally implicit symplectic p-runge-kutta with 2nd stage and 2nd order)”,该算法是一种2级2阶保辛算法。
24、保辛算法缺点和不足包括以下几点:
25、1)只在低阶时才具有稳定性,导致效率较低
26、对于一个s级disprk方法,当其阶p≥3时,数值格式不是a稳定的;当其阶p≤2时,数值格式是a稳定的。这意味着,一旦采用保辛算法则无法实现高精度,也就等于更多的变步长迭代次数,而这直接导致其计算效率相对其他算法更低;
27、2)完成一个积分步求解的时间复杂度高,导致效率较低
28、s级disprk方法本质上也是隐式龙格库塔法的一种,与线性多步法(如bdf)相比其求解过程需要更多次数的隐式迭代。一个s级保辛算法在一个积分步中需要进行s次非线性方程组的求解,这进一步加剧了保辛算法数值积分过程的时间复杂度。
29、disprk22方法是一个2级2阶方法,在每一个积分步求解过程中需要做2次隐式方程求解。
30、3)积分步长较大时非线性方程组数值求解收敛困难
31、具备保辛特性的这一类算法普遍是隐格式的,在计算过程中需要求解隐式非线性方程组。当放模型复杂,尤其是包含本质非线性(intrinsic nonlinearities)模型时,在变步长求解过程中一旦步长较大,则很容易求不出有效解。
32、因此,disprk算法的这三个劣势对其推广应用带来了巨大的挑战,无论是高阶格式不稳定特性还是隐式求解过程繁琐、不易收敛,都会导致更低的数值计算效率。
技术实现思路
1、本专利技术解决的问题在于提供一种系统仿真中保辛数值求解方法,既能保留保辛积分方法无耗散的优点,又能克服其求解效率较低和数值求解过程易发散的缺点。
2、本专利技术是通过以下技术方案来实现:
3、一种系统仿真中保辛数值求解方法,是在系统仿真时,在disprk22数值求解方法的第1级隐式方程求解、第2级隐式方程求解中引入预估-校正机制来给出迭代初值,并通过循环记忆窗口方法动态地给出当前积分步长;
4、所述预估-校正机制给出迭代初值为:
5、先用若干显格式或者半隐格式的求解方法作为预估方法,预测一个积分步,给出解向量作为预估值,将预估值代入第1级隐式方程或第2级隐式方程,得到预估偏差范数ε,并与可接受偏差范数ε理想进行比较;
6、如果某个预估值得到的偏差范数ε小于ε理想,则选取该预估值作为disprk22第1级隐式方程或第2级隐式方程的迭代初值;
7、如果给出的预估值得到的偏差范数ε都不小于ε理想,则选取最小的偏差范数所对应的预估值,将其作为disprk22第1级隐式方程或第2级隐式方程的的迭代初值;
8、所述循环记忆窗口方法动态地给出当前积分步长为:
9、以若干个积分时刻为固定长度的状态窗口,记录当前积分时刻之前的若干个已完成的积分步长、解向量及其对应的变步长误差;
10、然后根据更新前的求解步长、记忆窗口内求解步长的平均值、记忆窗口内求解步长的最大值获取更新后的求解步长,作为当前积分步长,执行disprk22的第1级隐式方程或第2级隐式方程的求解。
11、所述预估方法包括:1)以上一个步长的解向量作为预估值;
12、2)以1阶显式euler法计算结值果作为预本文档来自技高网...
【技术保护点】
1.一种系统仿真中保辛数值求解方法,其特征在于,是在系统仿真时,在DISPRK22数值求解方法的第1级隐式方程求解、第2级隐式方程求解中引入预估-校正机制来给出迭代初值,并通过循环记忆窗口方法动态地给出当前积分步长;
2.如权利要求1所述的系统仿真中保辛数值求解方法,其特征在于,所述预估方法包括:1)以上一个步长的解向量作为预估值;
3.如权利要求1所述的系统仿真中保辛数值求解方法,其特征在于,更新后的求解步长为:
4.如权利要求1所述的系统仿真中保辛数值求解方法,其特征在于,求解方法包括以下步骤:
5.如权利要求4所述的系统仿真中保辛数值求解方法,其特征在于,求解DISPRK22中的第1级隐式方程包括以下步骤:
6.如权利要求4或5所述的系统仿真中保辛数值求解方法,其特征在于,求解DISPRK22中的第2级隐式方程包括以下步骤:
7.如权利要求4或5所述的系统仿真中保辛数值求解方法,其特征在于,所执行DISPRK22,做单步仿真为:
【技术特征摘要】
1.一种系统仿真中保辛数值求解方法,其特征在于,是在系统仿真时,在disprk22数值求解方法的第1级隐式方程求解、第2级隐式方程求解中引入预估-校正机制来给出迭代初值,并通过循环记忆窗口方法动态地给出当前积分步长;
2.如权利要求1所述的系统仿真中保辛数值求解方法,其特征在于,所述预估方法包括:1)以上一个步长的解向量作为预估值;
3.如权利要求1所述的系统仿真中保辛数值求解方法,其特征在于,更新后的求解步长为:
4....
【专利技术属性】
技术研发人员:王珺,郝康康,尚永权,付翔,
申请(专利权)人:西安中锐创联科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。