【JY】振型求解之子空间迭代

2024-02-25 12:20

本文主要是介绍【JY】振型求解之子空间迭代,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不等待

即关注

简介

    子空间迭代法是把迭代法和瑞利-里兹法相结合并交替使用的一种方法,既利用瑞利-里兹法来缩减自由度,又在计算中利用迭代法使振型逐步趋近其精度。子空间迭代法中首先选定n个(n<N,N为体系的总自由度数)试向量,对这n个向量同时进行迭代,通常结构的自由度成千上万,而所需求解振型不过数十个,子空间迭代方法不需要全局求解,而是点到即止。子空间迭代方法以迭代法求得的向量作瑞利-里兹法向量,在用瑞利-里兹法求n个近似特征对,这归结为解退化了的子空间里的特征对问题。这种方法能同时求出模较大的一些特征值和相应的特征向量,也能在迭代过程中应用Rayleigh-Ritz原理进行加速。因此,同时迭代法比乘幂法更便于进行自动计算,而且加快了收敛速度,它是求解大型、稀疏矩阵特征值问题的最有效的方法之一。

子空间迭代法优点总结:

1. 利用了瑞利-里兹法缩减了自由度。

2. 利用了迭代快速逼近精确解。(通常迭代2-3次,可以得到满意的解)

子空间迭代法是如何缩减自由度的呢?

    在n维空间的n个特征向量中,选取前面s(s<n)个特征向量,这s个特征向量定义的空间称为原n维空间的一个子空间。对前s阶振型选s个假设的规格化向量,即

    经过了这一次的调整,相当于在振型原空间中,在变换一个“小振型子空间”,巧妙的利用了振型求解缩减自由度的能力。

从结构动力学中可知道,圆频率的平方计算公式如下:

    根据上述公式和瑞利商的性质(等比例缩放并不会影响瑞利商的值,即圆频率不影响)可得,原系统的圆频率等效为下式:

   其中,广义刚度、广义质量是s个自由度的矩阵:

   再根据瑞利商的性质,求解系统的圆频率:

    这样,问题归结为求上述方程这个新的s×s阶矩阵的特征值问题,而不是原来n×n阶矩阵的特征值问题。由于s<<n,因此求上述方程比较容易。由此可见,瑞利-里兹法起到了缩减自由度的作用。解得s个特征值就是原体系前s个自振频率平方的近似值。将求出的每一个自振频率,代回可求得对应的特征向量,从而得到体系的前s个近似振型:

子空间迭代法的步骤:

Step1:生成一个迭代式,得到一个n(自由度)行s(需知振型数)列的矩阵。

(注:首步初始形状矩阵可任意生成一个非零矩阵~)

Step2:将生成的振型矩阵的各个位移模都进行标准化(即将各向量中位移的最大模化为1,做一个比例变换。)

Step3:求出广义刚度矩阵和广义质量矩阵。(此时已经进行了缩减自由度)

Step4:求出缩减自由度后结构方程的振型和圆频率,此时的求得的圆频率是首次迭代的系统圆频率估计值。

Step5:将Step4中所求的“子空间振型”和Step1中得到的形状矩阵进行相乘,即可以得到本次迭代中,系统振型的估计值。

Step6:将上述得到的系统振型估计值再带入到第一步的初始形状矩阵中再次进行迭代,通常迭代2-3次可以得到非常满意的解。

算例分析

   本案例采用的是【JY】主成分分析与振型分解 中的计算案例,计算串模型为8层楼,每层质量m=10 t,每层楼刚度k=10^8N/m,依次计算前6阶振型和周期。

特征值法计算:

子空间迭代法:

SAP2000瑞利法计算:

Etabs特征值法计算:

小记

    上述对比结果几乎一致,说明计算方法得到较好的论证,子空间迭代法用在串模型计算振型周期上显得大材小用,但在三维结构模型计算时便可大展身手,详情可以看下在软件讨论系列中的【JY|STR】求解器之三维结构振型分析 。

概念为先,机理为本,期待下篇!

建源之光——工程侠

 往期推荐 ·

#性能分析

【JY】基于性能的抗震设计浅析(一)

【JY】基于性能的抗震设计浅析(二)

【JY】浅析消能附加阻尼比

【JY】近断层结构设计策略分析与讨论

【JY】浅析各动力求解算法及其算法数值阻尼(人工阻尼)

理念

【JY|体系】结构概念设计之(结构体系概念)

【JY|理念】结构概念设计之(设计理念进展)

#概念机理

【JY】基于Ramberg-Osgood本构模型的双线性计算分析

【JY】结构动力学初步-单质点结构的瞬态动力学分析

【JY】从一根悬臂梁说起

【JY】反应谱的详解与介绍

【JY】结构瑞利阻尼与经济订货模型

【JY】主成分分析与振型分解

【JY】浅谈结构多点激励之概念机理(上)

【JY】浅谈结构多点激励之分析方法(下)

【JY】板壳单元的分析详解

【JY】橡胶支座的简述和其力学性能计算

#软件讨论

【JY】复合材料分析利器—内聚力单元

【JY】SDOF计算教学软件开发应用分享

【JY】Abaqus案例—天然橡胶隔震支座竖(轴)向力学性能

【JY】Abaqus6.14-4如何关联fortran?

【JY】如何利用python来编写GUI?

【JY】如何解决MATLAB GUI编程软件移植运行问题?

【JY】浅谈结构分析与设计软件

#其他

【JY】位移角还是有害位移角?

【JY】如何利用python来编写GUI?

【JY】今日科普之BIM

这篇关于【JY】振型求解之子空间迭代的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745452

相关文章

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

多线程篇(阻塞队列- LinkedBlockingDeque)(持续更新迭代)

目录 一、LinkedBlockingDeque是什么 二、核心属性详解 三、核心方法详解 addFirst(E e) offerFirst(E e) putFirst(E e) removeFirst() pollFirst() takeFirst() 其他 四、总结 一、LinkedBlockingDeque是什么 首先queue是一种数据结构,一个集合中