【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

相关文章

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

C++迭代器失效的避坑指南

《C++迭代器失效的避坑指南》在C++中,迭代器(iterator)是一种类似指针的对象,用于遍历STL容器(如vector、list、map等),迭代器失效是指在对容器进行某些操作后... 目录1. 什么是迭代器失效?2. 哪些操作会导致迭代器失效?2.1 vector 的插入操作(push_back,

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四