資源簡介
中心差分法Matlab源程序

代碼片段和文件信息
clear
M=[2?0;0?1?]???????
C=[0?0;0?0]
K=[6?-2;-2?4]
Q1=[0;10]???????%外力
d1=[0;0]????????%初始位移
v1=[0;0]????????%初始速度
a1=inv(M)*(Q1-C*v1-K*d1)?%求得初始加速度
delta=0.28??????????????%選取時間步長(可根據實際選?。?br/>c0=1./(delta^2)?????????%積分常數
c1=1./(2.*delta)
c2=2.*c0
c3=1./c2
d0=d1-delta*v1+c3*a1??%起步位移計算
M1=c0*M+c1*C
i=1
for?ti=0:delta:5??????%選定時間范圍(可任意)
????d(i1:2)=d1???????%存儲各個時刻ti位移d(t)
????v(i1:2)=v1???????%存儲各個時刻ti速度v(t)
????a(i1:2)=a1???????%存儲各個時刻ti加速度a(t)
????t(i)=ti???????????%存儲各個時刻ti
????Q2=Q1-(K-c2*M)*d1-(c0*M-c1*C)*d0?%計算t時刻有效載荷
????d2=inv(M1)*Q2???????????????????%求t+delta時刻位移
????v1=c1*(-d0+d2)?????????????????%計算t時刻速度
????a1=c0*(d0-2*d1+d2)?????????????%計算t時刻加速度
????d0=d1
????d1=d2
????i=i+1???
end
%將位移、速度、加速度各兩條曲線畫在同一面內
subplot(231)plot(td(:1)‘r‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘d1(t)‘)
subplot(234)plot(td(:2)‘r‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘d2(t)‘)
subplot(232)plot(tv(:1)‘g‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘v1(t)‘)
subplot(235)plot(tv(:2)‘g‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘v2(t)‘)
subplot(233)plot(ta(:1)‘b‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘a1(t)‘)
subplot(236)plot(ta(:2)‘b‘‘linewidth‘2)xlabel(‘t‘)ylabel(‘a2(t)‘)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1361??2016-10-20?11:18??中心差分法\zxcferjie.m
?????文件????????1453??2015-06-19?09:44??中心差分法\zxcfnjie.m
?????目錄???????????0??2016-11-03?16:04??中心差分法\
- 上一篇:特征臉提取的matlab代碼
- 下一篇:三門問題matlab程序
評論
共有 條評論