[問題]請問一振動問題
大家好:
我有一懸臂樑,自由端受一簡諧力,簡化後用ODE表示如下
初始條件y(0)=y'(0)=0
[M]y''+[k]y=[f]*sin(10*t)
M(6*6) K(6*6) f(6*1)為常數矩陣(因為是連體系統 所以我只取前六個特徵來計算)
我用程式跑出解y1~y6 在物理上表示位移
因為程式需求 所以我對ODE多取一次微分
[M]y'''+[k]y'=[f]*10*cos(10*t)
初始條件y(0)=y'(0)=y''(0)=0
在去跑程式,y1~y6仍為位移
不過前後兩個y1算出來的答案不一樣
也就是原始算出來的位移會在橫軸(y=0)上下震盪
而我多微分一次的解大約在y=2上下震盪
請問這在物理觀點上算正常嗎?,數學上來講的話兩者的解應該是會一樣的才對
小弟好困惑 ,謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.13.191
※ 編輯: inoran54787 來自: 122.116.13.191 (04/18 18:00)
→
04/18 19:56, , 1F
04/18 19:56, 1F
→
04/18 21:10, , 2F
04/18 21:10, 2F
→
04/18 21:10, , 3F
04/18 21:10, 3F
→
04/18 21:10, , 4F
04/18 21:10, 4F
→
04/18 21:11, , 5F
04/18 21:11, 5F
推
04/18 21:43, , 6F
04/18 21:43, 6F
→
04/18 21:43, , 7F
04/18 21:43, 7F
→
04/18 21:43, , 8F
04/18 21:43, 8F
→
04/18 21:43, , 9F
04/18 21:43, 9F
→
04/18 21:50, , 10F
04/18 21:50, 10F
先謝謝回答!
回代原ODE y''(0)=-inv[M][k]y(0)+inv[M][f]*sin(0)
y''(0)=0 我自己有點搞混了,找不出原因
※ 編輯: inoran54787 來自: 140.115.66.117 (04/18 21:54)
→
04/18 22:47, , 11F
04/18 22:47, 11F
→
04/18 23:04, , 12F
04/18 23:04, 12F
→
04/18 23:05, , 13F
04/18 23:05, 13F
→
04/18 23:05, , 14F
04/18 23:05, 14F
→
04/18 23:06, , 15F
04/18 23:06, 15F
→
04/18 23:07, , 16F
04/18 23:07, 16F
→
04/18 23:07, , 17F
04/18 23:07, 17F
→
04/18 23:07, , 18F
04/18 23:07, 18F
→
04/18 23:12, , 19F
04/18 23:12, 19F
推
04/18 23:32, , 20F
04/18 23:32, 20F
→
04/18 23:33, , 21F
04/18 23:33, 21F
→
04/18 23:34, , 22F
04/18 23:34, 22F
謝謝E大回答,這也是我之前思考過的地方,
我會再認真思考看看! 謝謝!
※ 編輯: inoran54787 來自: 122.116.13.191 (04/18 23:39)
→
04/19 07:41, , 23F
04/19 07:41, 23F
→
04/19 07:42, , 24F
04/19 07:42, 24F
程式我是這樣寫的(三階ODE)
令x1=y ,x7=y' x13=y'' (不用x1 x2 x3的順序是方便寫程式)
帶入[M]y'''+[k]y'=[f]*10*cos(10*t)
所以y'''=-inv[M][K]y'+inv[M][f]10*cos(10*t)]
降階可寫成
dx1=x7
dx7=x13
dx13=-inv[M][K]x7+inv[M][f]10*cos(10*t)
套成矩陣寫法(MATLAB)
dx =[x(7:12,1)
x(13:18,1)
-inv[M][K]x(7:12,1)+inv[M][f]10*cos(10*t)]
(7:12,1)表示 x7~x12 , 6列1行矩陣
等號左邊dx表示dx1~dx18 18列1行矩陣
以上是18*18矩陣 ,這樣寫基本上我覺得沒問題
M K f寫出來很長 所以我就省略了,因為這裡是物理版,想說我PO程式怪怪的!
※ 編輯: inoran54787 來自: 140.115.66.117 (04/19 12:11)
→
04/19 15:01, , 25F
04/19 15:01, 25F
→
04/19 15:04, , 26F
04/19 15:04, 26F
→
04/19 20:50, , 27F
04/19 20:50, 27F
→
04/19 20:51, , 28F
04/19 20:51, 28F
→
04/19 20:52, , 29F
04/19 20:52, 29F
→
04/19 20:52, , 30F
04/19 20:52, 30F
→
04/19 20:52, , 31F
04/19 20:52, 31F
→
04/19 20:52, , 32F
04/19 20:52, 32F
main.m
fnction dy=main(t,y)
global M K n f
if t<=0.1
V=sin(10*t)
else
V=0
end
dy=[y(n+1:12,1);-inv(M)*K*y(1:6,1)+inv(M)*f*V]
主程式:
clear all
clc
global M K n f
n=6
M=[0.0324,-0,0,-0,0,-0
0,0.0324,-0,0,-0,0
0,0,0.0324,-0,0,-0
0,0,0,0.0324,-0,0
0,0,0,0,0.0324,-0.0001
-0,-0,0,0,0,0.0324]
K=[185266.167,-141.5699,-3260.0615,-7820.7975,-7835.0081,2155.0833
-141.5699,7263405.7962,1663.5988,3359.6854,2001.6193,-4373.1318
-3260.0615,1663.5988,56978851.3922,77113.5924,73133.927,-31692.6866
-7820.7975,3359.6854,77113.5924,218851300.5359,185151.8109,-51451.9216
-7835.0081,2001.6193,73133.927,185151.8109,597758337.7498,1571.7597
2155.0831,-4373.1317,-31692.6867,-51451.9214,1571.7596,1333597202.0219]
f=[2.7244;-1.9638;2.0016;-1.9999;2.0001;-2.0001]
tinterv=0:0.0002:5
yinit=[0 0 0 0 0 0 0 0 0 0 0 0 ]
options=odeset('RelTol',1e-4)
[t,y]=ode23tb('main',tinterv,yinit,options)
Y=y(:,1)
plot(t,Y);
※ 編輯: inoran54787 來自: 140.115.66.117 (04/19 21:01)
→
04/19 20:53, , 33F
04/19 20:53, 33F
推
04/19 20:58, , 34F
04/19 20:58, 34F
→
04/19 21:00, , 35F
04/19 21:00, 35F
→
04/19 21:01, , 36F
04/19 21:01, 36F
→
04/19 21:01, , 37F
04/19 21:01, 37F
→
04/19 21:01, , 38F
04/19 21:01, 38F
三階主程式
fnction dy=main(t,y)
global M K n f
if t<=0.1
V=10*cos(10*t)
else
V=0
end
dy=[y(7:12,1);y(13:18,1);-inv(M)*K*y(7:12,1)+inv(M)*f*V]
ic y(0)=y'(0)=y''(0)=0 如果有興趣的話可以試試看
也謝謝您剛剛的回答 orz
※ 編輯: inoran54787 來自: 140.115.66.117 (04/19 21:05)
→
04/19 21:02, , 39F
04/19 21:02, 39F
→
04/19 21:06, , 40F
04/19 21:06, 40F
→
04/19 21:07, , 41F
04/19 21:07, 41F
→
04/19 21:07, , 42F
04/19 21:07, 42F
→
04/19 21:08, , 43F
04/19 21:08, 43F
推
04/19 21:09, , 44F
04/19 21:09, 44F
→
04/19 21:09, , 45F
04/19 21:09, 45F
→
04/19 21:10, , 46F
04/19 21:10, 46F
→
04/19 21:10, , 47F
04/19 21:10, 47F
→
04/19 21:10, , 48F
04/19 21:10, 48F
→
04/19 21:11, , 49F
04/19 21:11, 49F
推
04/19 21:12, , 50F
04/19 21:12, 50F
→
04/19 21:12, , 51F
04/19 21:12, 51F
→
04/19 21:13, , 52F
04/19 21:13, 52F
※ 編輯: inoran54787 來自: 140.115.66.117 (04/19 21:13)
→
04/19 21:13, , 53F
04/19 21:13, 53F
→
04/19 21:14, , 54F
04/19 21:14, 54F
→
04/19 21:16, , 55F
04/19 21:16, 55F
→
04/19 21:17, , 56F
04/19 21:17, 56F
→
04/19 21:18, , 57F
04/19 21:18, 57F
→
04/19 21:18, , 58F
04/19 21:18, 58F
→
04/19 21:19, , 59F
04/19 21:19, 59F
→
04/19 21:38, , 60F
04/19 21:38, 60F
→
04/19 21:38, , 61F
04/19 21:38, 61F
→
04/19 21:40, , 62F
04/19 21:40, 62F
→
04/19 21:40, , 63F
04/19 21:40, 63F
→
04/19 21:40, , 64F
04/19 21:40, 64F
→
04/19 21:40, , 65F
04/19 21:40, 65F
→
04/19 21:41, , 66F
04/19 21:41, 66F
→
04/19 21:41, , 67F
04/19 21:41, 67F
→
04/19 21:41, , 68F
04/19 21:41, 68F
→
04/19 21:41, , 69F
04/19 21:41, 69F
→
04/19 21:41, , 70F
04/19 21:41, 70F
→
04/19 21:42, , 71F
04/19 21:42, 71F
→
04/19 21:42, , 72F
04/19 21:42, 72F
→
04/19 21:42, , 73F
04/19 21:42, 73F
→
04/19 21:43, , 74F
04/19 21:43, 74F
→
04/19 21:50, , 75F
04/19 21:50, 75F
→
04/19 21:50, , 76F
04/19 21:50, 76F
→
04/19 21:51, , 77F
04/19 21:51, 77F
→
04/19 21:52, , 78F
04/19 21:52, 78F
其實我主要的ODE是長這樣
[M1]y''+[k1]y=[f1]*sin(10*t)+[c1]∫i(t)dt (1)
[M2]i''+[k2]i'+[c2]i=[c3]y' (2)
解聯立 我現在是想到令∫i(t)dt=x i=x' i'=x'' i''=x'''
假設我已知∫i(0)dt=0
這樣去解 ,(1)的形式就不會去變動到
假使有誤差 也還在容範圍內,本體的自由震動曲線不要跑掉就好
不知這樣可行啦 不過我是打算這樣處理 也謝謝大家的熱心相助
學到不少!
※ 編輯: inoran54787 來自: 140.115.66.117 (04/20 15:21)
※ 編輯: inoran54787 來自: 140.115.67.220 (04/20 20:46)
※ 編輯: inoran54787 來自: 140.115.67.220 (04/20 20:50)
→
08/13 15:34, , 79F
08/13 15:34, 79F
→
09/17 10:14, , 80F
09/17 10:14, 80F
→
09/17 13:30, , 81F
09/17 13:30, 81F
→
11/09 11:09, , 82F
11/09 11:09, 82F
→
01/02 14:23,
7年前
, 83F
01/02 14:23, 83F
→
07/06 21:58,
6年前
, 84F
07/06 21:58, 84F
討論串 (同標題文章)