• 検索結果がありません。

板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]

N/A
N/A
Protected

Academic year: 2021

シェア "板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

> > ( 1 . 1 ) ( 1 . 1 ) > > > > > > > > > > > >

機械振動論

固有振動と振動モード

本事例では、板バネを解析対象として、数値計算(シミュレーション)と固有値問題を解 くことにより振動解析を行っています。 実際の振動は振動モードと呼ばれる特定パターンが複数組み合わされますが、各振動モー ドによる振動に分けて解析を行うことでその現象を捉え易くすることが出来ます。そこ で、本事例では、アニメーションを活用した解析結果の可視化も取り入れています。

板バネの振動

このセクションでは、板バネの振動シミュレーションを行っています。 Maple カーネルを初期化します: r e s t a r t : 板バネを 3 0 分割してモデル化します: n : = 3 0 : 分割したそれぞれの板に関して運動方程式を生成します。 一方の端は固定しないため最後の板を除き同じパターンの運動方程式となります。 x [ j ] は各板の高さを表し、一階微分は速度、二階微分は加速度となります。 f o r 文により、各板について運動方程式を生成します: f o r j t o n - 1 d o e q [ j ] : = m * d i f f ( x [ j ] ( t ) , t $ 2 ) + k * ( x [ j ] ( t ) - x [ j - 1 ] ( t ) ) - k * ( x [ j + 1 ] ( t ) - x [ j ] ( t ) ) : e n d : 端(30番目) の板は隣がないので別に定義します: e q [ 3 0 ] : = m * d i f f ( x [ 3 0 ] ( t ) , t $ 2 ) + k * ( x [ 3 0 ] ( t ) - x [ 2 9 ] ( t ) ) ; 方程式の集合を生成します: e q u : = { s e q ( e q [ j ] , j = 1 . . n ) } : 各板の質量 m とバネ定数 k を定義します: ・各板の質量 m m : = 5 0 0 : ・バネ定数 k k : = 1 . 0 e 7 :

(2)

> > > > ( 1 . 3 ) ( 1 . 3 ) > > > > > > ( 1 . 2 ) ( 1 . 2 ) > > > > ( 1 . 4 ) ( 1 . 4 ) > > 板バネの元は固定にします。x [ 0 ]は常に0です: x [ 0 ] : = t - > 0 ; 初期値の設定をします。 以降 f o r 文処理のため、空集合を生成しておきます: i n i t : = { } : 30番目( 端) 以外については、初期高さおよび初速は全て 0 にします。 初期高さを x [ j ] 、初速を D ( x [ j ] ) としています。 f o r 文により上記初期条件を定義します: f o r j t o n - 1 d o i n i t : = i n i t u n i o n { x [ j ] ( 0 ) = 0 , D ( x [ j ] ) ( 0 ) = 0 } : e n d : 30番目の板については、初期高さは 0 、初速は 0 . 1 m / s (単位系MKS) とします。 上記初期条件の定義および x 1∼x29 番目の板バネの初期条件を1つの集合にします: i n i t : = i n i t u n i o n { x [ 3 0 ] ( 0 ) = 0 , D ( x [ 3 0 ] ) ( 0 ) = 0 . 1 } : サンプリングの個数 mm とシミュレーション時間 TT 、出力の刻み幅 d を設定しま す。 ・サンプリングの個数 mm mm:=50: ・シミュレーション時間 TT T T : = 1 : ・出力の刻み幅 d d:=TT/mm; サンプリングのセットを A r r a y 型として生成します: s a m p : = A r r a y ( [ s e q ( j * d , j = 0 . . m m ) ] ) ;

(3)

> > > > ( 1 . 5 ) ( 1 . 5 ) ( 1 . 6 ) ( 1 . 6 ) 運動方程式の連立微分方程式系について、数値解を求めます。 ここでは、d s o l v e コマンドに、output=samp のオプションを指定することで、各サン プリング点における独立変数の数値解を求めます: a n s : = d s o l v e ( e q u u n i o n i n i t , { s e q ( x [ j ] ( t ) , j = 1 . . n ) } , n u m e r i c , o u t p u t = s a m p ) ; 次の各独立変数の数値解が求められます: s e q ( a n s [ 1 , 1 ] [ j ] , j = 1 . . 2 * n + 1 ) ;

(4)

> > > > 結果をプロットします。 プロットには、p l o t s および p l o t t o o l s パッケージ内のコマンドを用いるため、2つの パッケージをロードします: w i t h ( p l o t s ) : w i t h ( p l o t t o o l s ) : 解( a n s )の二番目は x [ 1 ] の時間に対する変化です: l i s t p l o t ( [ s e q ( a n s [ 2 , 1 ] [ j , 2 ] , j = 1 . . m m + 1 ) ] , c o l o r = b l u e ) ; 10 20 30 40 50 0

(5)

> > 60番目は x [ 3 0 ] すなわち一番端( フリー) の時間に対する変化です: l i s t p l o t ( [ s e q ( a n s [ 2 , 1 ] [ j , 6 0 ] , j = 1 . . m m + 1 ) ] , c o l o r = b l u e ) ; 10 20 30 40 50 0

(6)

> > > > 板全体の動きをアニメーションとして再現します。 各板のオブジェクトを直方体で用意します: c b : = c u b o i d ( [ 0 , 0 , 0 ] , [ 4 , 1 , 0 . 1 ] ) : d i s p l a y ( c b , s c a l i n g = c o n s t r a i n e d ) ;

(7)

> > > > 壁のオブジェクトを直方体で用意します: k a b e : = c u b o i d ( [ 0 , - 1 , - 3 ] , [ 4 , 0 , 3 ] , c o l o r = g r a y ) : d i s p l a y ( k a b e , s c a l i n g = c o n s t r a i n e d ) ;

(8)

> > > > > > フレームを保存する変数 p を初期化します: p : = [ ] : 時間変化の各フレームを作成します。変位は強調(1500倍) してあります: f o r j t o m m + 1 d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 1 5 0 0 * a n s [ 2 , 1 ] [ j , 2 * i ] ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : アニメーション表示を行います: アニメーションの再生には、グラフを選択し、コンテキストバーにある再生ボタン をクリックします: d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(9)

( 2 . 1 ) ( 2 . 1 ) > > > > > >

固有値問題

この板バネの系の固有値問題を解き固有モードと振動スペクトラムを求めます。 これらの 3 0 個の運動方程式は行列形式で表現することができます。 M を質量行列、K を剛性行列と呼びます。x を変位ベクトル、f を力ベクトルと呼び ます。 このときすべての自由度が同位相で振動すると仮定すれば、以下の行列方程式となりま す。 ( ) これを一般固有値問題( ) と呼んでいます。ここで は固有角振動数です。 の逆行列を両辺にかければ、通常の標準固有値問題( ) となります。 固有値問題を解く為に線形代数パッケージを呼び出します: w i t h ( L i n e a r A l g e b r a ) : 剛体行列を生成します: 対角が質量の単純な対角行列です。 ・出力結果の上でマウス左ボタンをダブルクリックすると行列を確認することができま す M : = D i a g o n a l M a t r i x ( [ s e q ( m , j = 1 . . n ) ] ) ; 剛性行列を生成します。 対角要素を定義しておきます: K : = D i a g o n a l M a t r i x ( [ s e q ( 2 * k , j = 1 . . n ) ] ) :

(10)

> > ( 2 . 2 ) ( 2 . 2 ) > > > > > > ( 2 . 4 ) ( 2 . 4 ) ( 2 . 3 ) ( 2 . 3 ) 上側と下側の s u b d i a g o n a l (対角の1つ上、1つ下) を設定します: f o r j t o n - 1 d o K [ j , j + 1 ] : = - k : K [ j + 1 , j ] : = - k : e n d : K ; 行列 K と M を与えて固有ベクトル( P )と固有値(W)を関数 Eigenvectors で求めます: ( P , W ) : = E i g e n v e c t o r s ( K , M , o u t p u t = [ ' v e c t o r s ' , ' v a l u e s ' ] ) ; 求められた固有値を確認します: s e q ( [ j , W [ j ] ] , j = 1 . . n ) ;

(11)

> > 複素数になっていますが、虚部はすべて 0 です。 実部を取り、固有ベクトル( 実部) をプロットします: ・この行列は固有モード行列あるいはモード行列と呼ばれます m a t r i x p l o t ( m a p ( R e , P ) , s h a d i n g = z h u e ) ; 周波数がだんだん高くなっています。

(12)

> > 最初の振動モード( 最も低周波) をプロットします: ・このモードは一次モードあるいは基本モードとも呼ばれます l i s t p l o t ( [ s e q ( R e ( P [ j , 1 ] ) , j = 1 . . n ) ] , c o l o r = b l u e ) ; 5 10 15 20 25 30 0

(13)

> > > > > > 周波数変化のアニメーションを表示します。 f o r 文処理のために、フレームを保存する変数を空にしておきます: p : = [ ] : 時間変化の各フレームを生成します: f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 1 0 * R e ( P [ i , 1 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : アニメーションを表示します: d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(14)

> > 2番目の振動モードをプロットします: l i s t p l o t ( [ s e q ( R e ( P [ j , 4 ] ) , j = 1 . . n ) ] , c o l o r = b l u e ) ; 5 10 15 20 25 30 0

(15)

> > > > > > アニメーションを表示します: p : = [ ] : f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 1 0 * R e ( P [ i , 4 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(16)

> > > > > > > > 同様のような方法で、3番目、4番目、5番目の振動モードのアニメーションを生成しま す。 3番目の振動モード: l i s t p l o t ( [ s e q ( R e ( P [ j , 6 ] ) , j = 1 . . n ) ] ) ; 5 10 15 20 25 30 0 p : = [ ] : f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 6 * R e ( P [ i , 6 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(17)
(18)

> > > > > > > > 4番目の振動モード: l i s t p l o t ( [ s e q ( R e ( P [ j , 8 ] ) , j = 1 . . n ) ] ) ; 5 10 15 20 25 30 0 p : = [ ] : f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 3 * R e ( P [ i , 8 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(19)
(20)

> > > > > > > > 5番目の振動モード: l i s t p l o t ( [ s e q ( R e ( P [ j , 1 0 ] ) , j = 1 . . n ) ] ) ; 5 10 15 20 25 30 0 p : = [ ] : f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 3 * R e ( P [ i , 1 0 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(21)
(22)

> > > > > > 2番目と3番目の振動モードについて、同時にアニメーションを表示します: p : = [ ] : f o r j f r o m 0 t o m m d o p p : = [ k a b e , c b ] : p p : = p p , t r a n s l a t e ( k a b e , 5 , 0 , 0 ) : p p : = p p , t r a n s l a t e ( c b , 5 , 0 , 0 ) : f o r i t o n d o p p : = p p , t r a n s l a t e ( c b , 0 , i , 6 * R e ( P [ i , 4 ] ) * s i n ( 2 * P i * j / m m ) ) : p p : = p p , t r a n s l a t e ( c b , 5 , i , 6 * R e ( P [ i , 6 ] ) * s i n ( 2 * P i * j / m m ) ) : e n d : p : = p , d i s p l a y ( p p ) : e n d : d i s p l a y ( p , i n s e q u e n c e = t r u e , s c a l i n g = c o n s t r a i n e d ) ;

(23)

> > 各モードの固有角振動( スペクトラム: ) をプロットします: l i s t p l o t ( [ s e q ( s q r t ( R e ( W [ j ] ) ) , j = 1 . . n ) ] , c o l o r = b l u e ) ; 5 10 15 20 25 30 50 100 150 200 250

参照

関連したドキュメント

構文 :SOURce:VOLTage:RANGe:AUTO 1|0|ON|OFF

l 「指定したスキャン速度以下でデータを要求」 : このモード では、 最大スキャン速度として設定されている値を指 定します。 有効な範囲は 10 から 99999990

1 か月無料のサブスクリプションを取得するには、最初に Silhouette Design Store

注:一般品についての機種型名は、その部品が最初に使用された機種型名を示します。

当第1四半期連結累計期間における業績は、売上及び営業利益につきましては、期初の業績予想から大きな変

問題集については P28 をご参照ください。 (P28 以外は発行されておりませんので、ご了承く ださい。)

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

計量法第 173 条では、定期検査の規定(計量法第 19 条)に違反した者は、 「50 万 円以下の罰金に処する」と定められています。また、法第 172