對於
[left{ egin{array}{l}
mddot y + cdot y + ky = f(t)\
y(0) = {y_0}\
dot y(0) = {{dot y}_0}
end{array} 
ight.]形式的微積分可以採用如下形式的求解方式
[egin{array}{l}
y(k + 1) = a(Delta t)y(k) + b(Delta t)y(k - 1) + c(Delta t)f(k)\
a(Delta t) = 2frac{{2m - kDelta {t^2}}}{{2m + cDelta t}},b(Delta t) = frac{{cDelta t - 2m}}{{2m + cDelta t}},c(Delta t) = frac{{2Delta {t^2}}}{{2m + cDelta t}},k = 0,1,2,...,n
end{array}]

y(1)和y(-1)求解如下:


[left{ egin{array}{l}
y(1) = frac{1}{2}[frac{{Delta {t^2}}}{m}f(0) + (2Delta t - frac{{Delta {t^2}c}}{m})dot y(0) + (2 - frac{{Delta {t^2}k}}{m})y(0)]\
y( - 1) = frac{1}{2}[frac{{Delta {t^2}}}{m}f(0) - (2Delta t - frac{{Delta {t^2}c}}{m})dot y(0) + (2 - frac{{Delta {t^2}k}}{m})y(0)]
end{array} 
ight.]

特別的當
[dot y(0) = dot y(0) = 0]
[y(1) = y( - 1) = frac{{Delta {t^2}}}{m}f(0)]

下面以二階系統
[ddot y + 0.3dot y + 9y = f(t),y(0) = dot y(0) = 0](其中f(t)是階躍響應)為例建立如下的simulink模型

模擬步長T=0.01s,模擬時間t=30s,scope圖形如下:

為了驗證程序的正確性,在simulink中搭建了如下的連續和離散比較模型

結果如下圖所示

放大如下圖

可以看到這種方法是正確的

推薦閱讀:

相关文章