【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函數包分享與體驗

更多精彩,關注建源學堂!

關注 建源學堂 公眾號,并回復“多自由度代碼”可獲得上文代碼。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

12
2
18