一种针对分段系统的数值-解析混合优化瞬态响应算法技术方案

技术编号:26066345 阅读:15 留言:0更新日期:2020-10-28 16:39
本发明专利技术公开了一种针对分段系统的数值‑解析混合优化瞬态响应算法,本计算方法参考接缝理论对不同状态下的系统分别对应采用数值、解析算法进行计算,并进行合理连接。本发明专利技术专利的算法不仅适用于线性组成的分段系统,且适用于含线性、非线性组成的复杂分段系统,对于不同的输入和不同的系统都有较好的适用性。特别的,本发明专利技术专利的算法对于不同状态之间的切换做了详细的分析,对不同的状态进行识别选择对应的方法;对切换点的寻找和精确化方法做了优化;对状态切换时产生的错误点进行了剔除,以此提升了本算法的计算效率和计算精度。

【技术实现步骤摘要】
一种针对分段系统的数值-解析混合优化瞬态响应算法
本专利技术属于机械振动
,特别涉及一种针对分段系统的数值-解析混合优化瞬态响应算法。
技术介绍
对于线性振动系统,其振动响应可用精确的解析解进行表示,对于非线性系统,先后提出了摄动法、平均法、渐进法、多尺度法和谐波平衡法等解析手段,同样,也提出了单步法、多步法等数值算法,例如Runge-Kutta算法。特别的,针对分段的非线性系统,学者提出了接缝法、平均法利用等手段进行求解,例如使用谐波平衡法解决线性系统组成的非线性系统的解析解。然而,对于解决实际存在的由线性系统和非线性系统混合组成的分段系统,解析法过于复杂且对振动响应求解不方便,数值方法存在效率和精度无法兼顾的情况,例如Runge-Kutta在针对分段系统的求解时会产生不可避免的错误点,在提高精度的时候大大增加计算时间。本专利技术结合振动相关知识和计算机技术,公开了一种针对分段系统的数值-解析混合优化瞬态响应算法,本计算方法参考接缝理论对不同状态下的系统分别对应采用数值、解析算法进行计算,并进行合理连接。本专利技术专利的算法不仅适用于线性组成的分段系统,且适用于含线性、非线性组成的复杂分段系统,对于不同的输入和不同的系统都有较好的适用性。特别的,本专利技术专利的算法对于不同状态之间的切换做了详细的分析,对不同的状态进行识别选择对应的方法;对切换点的寻找和精确化方法做了优化;对状态切换时产生的错误点进行了剔除,以此提升了本算法的计算效率和计算精度。为方便,本算法简写为AMS。r>
技术实现思路
本专利技术提供了一种针对分段系统的数值-解析混合优化瞬态响应算法,以解决现有技术中的问题。为了实现上述目的,本专利技术采用以下技术方案:一种针对分段系统的数值-解析混合优化瞬态响应算法,包括以下步骤:步骤1,建立振动系统运动微分方程组:公式(1)表示广义运动微分方程组,广义运动微分方程组的形式由振动系统决定,广义运动微分方程组为单自由度系统、多自由度系统(限于线性部分可解耦)、连续系统或分段系统(线性组成的分段、线性-非线性组成的分段);公式(1)中:M为广义质量矩阵;C为广义阻尼矩阵;K为广义刚度矩阵;F为广义激振力矩阵;t表示时间常数;X为公式(1)的解,为系统位移向量;表示速度向量,由X对t求导得到;为加速度向量,由对t求导得到;步骤2,根据广义运动微分方程组确定系统中所含状态数量,判断系统是否分段、分段中各段的线性情况;步骤3,建立状态对应条件,建立状态改变条件根据步骤2,建立所选系统的线性状态和非线性状态与位移向量X、初始条件X0的对应关系,建立状态改变与位移向量X、初始条件X0的对应关系;此时公式(1)在分段情况下改写为:其中:Ml为线性状态下方程质量矩阵;Cl为线性状态下阻尼矩阵;Kl为线性状态下刚度矩阵;Fl为线性状态下激振力矩阵;Mn为非线性状态下方程质量矩阵;Cn为非线性状态下阻尼矩阵;Kn为非线性状态下刚度矩阵;Fn为非线性状态下激振力矩阵;Ol为线性状态下的位移速度集合;On为非线性状态下的位移速度集合;X0分别表示初始位移向量和初始速度向量;步骤4,初始条件预设;初始切换点预设;解公式预设;预设初始条件,给X0赋值;时间常数t=0;预设计算时间步长de;初始切换点预设为t_o;t_n;其中:t_o;t_n分别表示,当前状态下,上一次状态改变的时间、下一次状态改变的时间,且初始值都为0;对于确定的线性状态部分,公式(1)中位移向量和速度向量表示为:其中:Ul(t)、Vl(t)分别表示为系统因各自由度单位初始位移引起的自由振动矩阵、因各自有毒单位初始速度引起的自由振动矩阵;τ为积分变量;h(t-τ)为以t-τ为变量的系统单位脉冲响应矩阵;表示对t求导。对于确定的非线性状态部分,选择4阶的Runge-Kutta算法:其中:R1、R2、R3、R4分别为Runge-Kutta算法的第一系数、第二系数、第三系数和第四系数;ti为Runge-Kutta算法的第i个时间;f()函数为公式(3)进行降阶变化的一阶微分方程组;Xi为ti时各自由度位移和速度组成的值向量;Xi+1为ti+1时各自由度位移和速度组成的值向量;步骤5,判断所处状态根据步骤3的定义确定系统t时刻所处状态;步骤6,选择计算方法进行计算当前时间对应的相关数值根据步骤2、3的判断,系统处于线性部分时,使用公式(4)、(5)计算;处于非线性部分时,使用公式(6)计算;步骤7,判断是否发生状态变化根据步骤3的定义判断状态是否发生改变,每次使用公式(6)计算无论状态是否发生改变都需要更新初始条件,X0=Xi+1;步骤8,寻找状态切换点步骤81,当状态切换是由线性状态切换,则使用对MATLAB自带程序fzero()重新构建优化的Fzeros()作为切换点找点方法,由于fzero函数的特性,对于大时长计算会产生多点问题造成不可忽略的误差,基于该程序优化改编,使之能精准找点并同时对多个方程求解,寻找这次状态切换点;改编优化步骤为:将Xa(ta-t_o)通过tf=ta-t_o改写为Xf(tf),使用一个循环,借助fzero()分别求解Xf(tf)各函数元素在t-t_o时刻在A对应元素附近的穿越点,返回一个向量,完成Fzeros()的构建,此处可实现对多方程的求解,最后加上t_o,逻辑表达为:t_n=Fzeros(Xf(tf),t-t_o)+t_o,返回下一次切换时间t_n,记录切换点处位移Xc=X(t_n)、切换点速度其中:ta是临时时间变量;Xa(ta-t_o)为ta-t_o时刻的位移向量,形式为以ta-t_o为变量的表达式;tf为临时差值时间变量;Xf(tf)为tf时刻的位移向量,形式为以tf为变量的表达式;X(t_n)时间t_n时的位移向量;为t_n时的速度向量;A为以根据步骤1、2、3确定的系统切换状态时位移阀值向量,Xa(ta-t_o)中的元素个数根据步骤2、3确定,元素个数可以和系统自由度个数相同或不同,元素选择振动过程中和状态切换直接相关的自由度的位移;步骤81为根据长时间计算响应情况下切换点找点函数的优化,本算法中优化前后对比如图3所示;步骤82、当状态切换时由非线性状态切换,则使用减步长找点程序作为切换点找点方法,减步长找点程序的计算逻辑如下:对于多自由度的系统,状态切换情况多种多样,当状态发生切换时,只需要针对Xa(ta-t_o)一个元素所属的自由度进行状态切换点时间的精确找寻,就能满足整个系统状态切换点的精确找寻;减步长找点程序的功能为针对Xa(ta-t_o)其中一个元素所属自由度对其状态切换时间进行精确找寻;所述步骤82中减步长找点程序的具体步骤为:步骤8201、输入参数,c为状态改变前的t时间点,d为状态改变前的t时间点,x1、x2分别为该自由度状态改本文档来自技高网...

【技术保护点】
1.一种针对分段系统的数值-解析混合优化瞬态响应算法,其特征在于,包括以下步骤:/n步骤1,建立振动系统运动微分方程组:/n

【技术特征摘要】
1.一种针对分段系统的数值-解析混合优化瞬态响应算法,其特征在于,包括以下步骤:
步骤1,建立振动系统运动微分方程组:



公式(1)表示广义运动微分方程组,广义运动微分方程组的形式由振动系统决定,广义运动微分方程组为单自由度系统、多自由度系统、连续系统或分段系统;
公式(1)中:M为广义质量矩阵;C为广义阻尼矩阵;K为广义刚度矩阵;F为广义激振力矩阵;t表示时间常数;X为公式(1)的解,为系统位移向量;表示速度向量,由X对t求导得到;为加速度向量,由对t求导得到;
步骤2,根据广义运动微分方程组确定系统中所含状态数量,判断系统是否分段、分段中各段的线性情况;
步骤3,建立状态对应条件,建立状态改变条件:
根据步骤2,建立所选系统的线性状态和非线性状态与位移向量X、初始条件的对应关系,建立状态改变与位移向量X、初始条件的对应关系;此时公式(1)在分段情况下改写为:






其中:Ml为线性状态下方程质量矩阵;Cl为线性状态下阻尼矩阵;Kl为线性状态下刚度矩阵;Fl为线性状态下激振力矩阵;Mn为非线性状态下方程质量矩阵;Cn为非线性状态下阻尼矩阵;Kn为非线性状态下刚度矩阵;Fn为非线性状态下激振力矩阵;Ol为线性状态下的位移速度集合;On为非线性状态下的位移速度集合;分别表示初始位移向量和初始速度向量;
步骤4,初始条件预设;初始切换点预设;解公式预设;
预设初始条件,给赋值;时间常数t=0;计算时间步长de预设;
初始切换点预设为t_o;t_n;其中:t_o;t_n分别表示,当前状态下,上一次状态改变的时间、下一次状态改变的时间,且初始值都为0;
对于确定的线性状态部分,公式(1)中位移向量和速度向量表示为:






其中:Ul(t)、Vl(t)分别表示为系统因各自由度单位初始位移引起的自由振动矩阵、因各自有毒单位初始速度引起的自由振动矩阵;τ为积分变量;h(t-τ)为以t-τ为变量的系统单位脉冲响应矩阵;表示对t求导;
对于确定的非线性状态部分,选择4阶的Runge-Kutta算法:



其中:R1、R2、R3、R4分别为Runge-Kutta算法的第一系数、第二系数、第三系数和第四系数;ti为Runge-Kutta算法的第i个时间;f()函数为公式(3)进行降阶变化的一阶微分方程组;Xi为ti时各自由度位移和速度组成的值向量;Xi+1为ti+1时各自由度位移和速度组成的值向量;
步骤5,判断所处状态:
根据步骤3的定义确定系统t时刻所处状态;
步骤6,选择计算方法进行计算当前时间对应的相关数值:
根据步骤2、3的判断,系统处于线性部分时,使用公式(4)、(5)计算;处于非线性部分时,使用公式(6)计算;
步骤7,判断是否发生状态变化:
根据步骤3的定义判断状态是否发生改变,每次使用公式(6)计算无论状态是否发生改变都需要更新初始条件,X0=Xi+1;
步骤8,寻找状态切换点:
步骤81,当状态切换是由线性状态切换,则使用对MATLAB自带程序fzero()重新构建优化的Fzeros()作为切换点找点方法,精准找点并同时对多个方程求解,寻找这次状态切换点;
步骤82、当状态切换时由非线性状态切换,则使用减步长找点程序作为切换点找点方法,输出切换点附近更近点时间、更近点位移、更近点加速度te;xe;dxe;
最终输出的te、xe、dxe分别赋值给t_n,xf,dxf;其中:xf为Xa(ta-t_o)中所选元素对应自由度的在t_n处的位移,dxf为Xa(ta-t_o)中所选元素对应自由度的在t_n处的加速度;
步骤9、更新初始条件:
当状态切换是从线性状态切换时,初始条件为
当状态切换是从非线性状态切换时,初始条件为
步骤10、计算下个状态的正确点以覆盖本次计算的错误点,更新切换点时间:
当t状态改变时,t时刻的位移向量和速度向量X(t)、属于偏差较大的点,改写为未切换计算方法得到的位移和速度Xd(t)、重新选择切换后状态对应的算法计算...

【专利技术属性】
技术研发人员:翁建生许志远
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1