【JY】基于Matlab的(单)多自由度动力学代码分享

【JY】基于Matlab的(单)多自由度动力学代码分享的图1

写在前文

多自由度分析是现代工程和科学研究中不可或缺的一部分。它涉及到对复杂系统的动力学行为进行精确描述和预测。分享下多自由度的源代码,仅供学习。该程序适用于单自由度或多自由度计算分析~

相关阅读:

【JY】代码|极简反应谱分析

【JY】基于Matlab的双线性滞回代码编写教程

【JY】动力学利器 —— JYdyn函数包分享与体验


代码详解

【JY】基于Matlab的(单)多自由度动力学代码分享的图2

步骤一:

构建质量矩阵以及刚度矩阵

【JY】基于Matlab的(单)多自由度动力学代码分享的图3

步骤二:

构建 阻尼矩阵

如果为单自由度计算,则采用常规计算得到阻尼,若为多自由度计算则采用瑞利阻尼进行计算。

【JY】基于Matlab的(单)多自由度动力学代码分享的图4

步骤三:

构建 荷载矩阵

【JY】基于Matlab的(单)多自由度动力学代码分享的图5

步骤四:

采用Newmark-β法进行计算

【JY】基于Matlab的(单)多自由度动力学代码分享的图6【JY】基于Matlab的(单)多自由度动力学代码分享的图7

步骤五:

进行数据整理

【JY】基于Matlab的(单)多自由度动力学代码分享的图8

步骤六:

结果展示

运行代码可得到相关结果:包括选取楼层的 绝对加速度、速度、位移,以及振型。

【JY】基于Matlab的(单)多自由度动力学代码分享的图9【JY】基于Matlab的(单)多自由度动力学代码分享的图10

代码验证

采用SAP2000进行建模对比,对比结果如下(将代码结果做1~10个单位的偏移,否则数据重叠看不出):

【JY】基于Matlab的(单)多自由度动力学代码分享的图11【JY】基于Matlab的(单)多自由度动力学代码分享的图12

小结

1、该代码可根据科研需求进行改造相关的 M、C、K、F矩阵,进行求解。已适用于结构风工程、地震工程、冲击动力学等。

2、改代码可从迭代方式进行实时对相关矩阵重新组装,实现非线性分析,如对K做实时更新,可得到位移型滞回的非线性分析结果,对M做实时更新可得到结构的动态质量随时间或者上一步响应的变化。

3、由于该代码架构比较简单,适合于小体量的结构矩阵,若需要更大体量的结构计算,仍需要引入Jydyn函数库。

【JY】动力学利器 —— JYdyn函数包分享与体验

更多精彩,关注建源学堂!

关注 建源学堂 公众号,并回复“多自由度代码”可获得上文代码。

(1条)
默认 最新
基础学科是一切创新的源泉
评论 点赞
点赞 10 评论 1 收藏 14
关注