20
Ⅱ.材料力学的手法による衝撃応力解析 1.動的フックの法則と図式解法 ここでは,応力波の伝ぱ現象を簡単に評 価し縦衝撃問題の特徴を把握する方法として, 動的フックの法則を定義し,これを利用した 図式解法について述べる.その後,一次元波 動方程式に基づくラプラス変換解を材料力学 的手法で求める方法をいくつかの例題ととも に示し,数値ラプラス逆変換法によって時間 域での解を求める手順を示す. a. 動的フックの法則 u,v N, σ N+dN, σ+dσ A, ρ,E dx x 2.1 縦衝撃を受ける丸棒 2.1 のような縦衝撃を受ける丸棒の基礎 式は次の波動方程式となる. 2 2 2 2 2 x C t φ = φ ρ = E C (2.1) ここで、 は変位 u,変位速度 v,応力 φ σ あるいはひずみ であり, はそれぞれ ヤング率,密度および縦波の伝ぱ速度である. また,変位とひずみ,応力,変位速度及び軸 の関係は次のようである ε C E , , ρ N σ = = = σ = ε A N t u v x u E x u , , (2.2) ただし,A は断面積 (2.1)の一般解は ) ( ) ( L R ct x ct x + φ + φ = φ ) ( R φ 0 > x ) ( L φ 0 ここで, 方向へ伝ぱする波 < x 方向へ伝ぱする波 であるから,変位を とおけば,変位速度は より ) ( ) ( ct x u ct x u u L R + + = u v = L R L R u C u C v v t / + = + と書け,応力は ( ) x u E = σ / L R L R u E u E より + = σ + σ C Ev C Ev L L R R / , / = σ = σ ξ と書けるから となる.ここで, ξ φ = φd d / ) ( を表す. 以上まとめると応力と変位速度の関係は 次のようになる. E C v m = σ ρ = E C 0 > (2.3) ただし, x 0 : 方向へ伝ぱするとき, < + x : 方向へ伝ぱするとき (2.3)を動的フックの法則と定義する.な お,これは波動として伝ぱしている成分につ いて成立するものであり,ある位置のある時 刻における応力と変位速度は,その時までに そこに到達した波動成分を全て加え合わせた 値になり,これらトタールの応力とひずみの 間には静的なフックの法則が成立している. b. 応力波の発生と反射透過 (σ 2 ,v 2 ) (σ 1 ,v 1 ) C 2 1 A 1 ,E 1 ,ρ 1 2A 2 ,E 2 ,ρ 2 V 0 x a C 1 2.2 棒の衝突による応力の発生 10

Ⅱ.材料力学的手法による衝撃応力解析 1.動的 …da.ms.t.kanazawa-u.ac.jp/lab/hojo/impact/chapter2.pdfⅡ.材料力学的手法による衝撃応力解析 1.動的フックの法則と図式解法

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Ⅱ.材料力学的手法による衝撃応力解析

1.動的フックの法則と図式解法 ここでは,応力波の伝ぱ現象を簡単に評

価し縦衝撃問題の特徴を把握する方法として,

動的フックの法則を定義し,これを利用した

図式解法について述べる.その後,一次元波

動方程式に基づくラプラス変換解を材料力学

的手法で求める方法をいくつかの例題ととも

に示し,数値ラプラス逆変換法によって時間

域での解を求める手順を示す.

a. 動的フックの法則

u,vN, σ N+dN, σ+dσ

A, ρ,E dx

x

図 2.1 縦衝撃を受ける丸棒

図 2.1 のような縦衝撃を受ける丸棒の基礎

式は次の波動方程式となる.

2

22

2

2

xC

t ∂

φ∂=

φ∂ ,

ρ=

EC (2.1)

ここで、 は変位 u,変位速度 v,応力φ σ

あるいはひずみ であり, はそれぞれ

ヤング率,密度および縦波の伝ぱ速度である.

また,変位とひずみ,応力,変位速度及び軸

力 の関係は次のようである

ε CE ,,ρ

N

σ=

∂∂

=∂∂

=σ∂∂

AN

tuv

xuE

xu ,,

(2.2)

ただし,A は断面積

式(2.1)の一般解は

)()( LR ctxctx +φ+−φ=φ

)(Rφ 0>x)(Lφ 0

ここで, : 方向へ伝ぱする波 : <x 方向へ伝ぱする波

であるから,変位を とおけば,変位速度は より

)()( ctxuctxuu LR ++−=

uv ∂=

LRLR uCuCvv

t∂/′+′−=+

と書け,応力は ( )xuE ∂∂=σ /

LRLR uEuEより

′+′=σ+σ

CEvCEv LLRR /,/ =σ−=σ

ξ

と書けるから となる.ここで, ξφ=φ′ dd /)( を表す. 以上まとめると応力と変位速度の関係は

次のようになる.

ECv

m=σ , ρ

=EC

0>

(2.3)

ただし, − x0

: 方向へ伝ぱするとき, <+ x: 方向へ伝ぱするとき

式(2.3)を動的フックの法則と定義する.な

お,これは波動として伝ぱしている成分につ

いて成立するものであり,ある位置のある時

刻における応力と変位速度は,その時までに

そこに到達した波動成分を全て加え合わせた

値になり,これらトタールの応力とひずみの

間には静的なフックの法則が成立している.

b. 応力波の発生と反射透過

(σ2,v2) (σ1,v1)C2

棒1: A1,E1,ρ1 棒2:A2,E2,ρ2 V0

x

a

C1

図 2.2 棒の衝突による応力の発生

-10-

図 2.2 のように棒 1 が相対速度V で棒 2 に

衝突すると,衝突面には次の応力波が発生し

各棒中を伝ぱする.

0

棒 1

+−=

+−=σ

021

21

11

0

21

21

VZZ

Zv

ECV

ZZZ

(2.4) σ

棒 2

+=

+−=σ

021

12

22

0

21

12

VZZ

Zv

ECV

ZZZ

21 ZZ ,

1111 CAZ ρ= 22 A ρ=

(2.5)

ここで, は音響インピーダンス ,Z (2.6) 22C

(

である. ∵衝突後,棒 1,2 にはそれぞれ ( )11 v,σ

0

の成分を持つ応力波が発生すると考

えると,棒 1 を伝わる応力波は

( 22 v,σ )<x

/

方向,

棒 2 を伝わる応力波は 方向に伝ぱする

から,動的フックの法則より ,σ そして,衝突面 a の応力と変位速度は 棒 1 では ,σ

棒 2 では ,σ となる.衝突面では,両棒の変位速度は等し

く,力の釣合が成立しているから , これらより上式が得られる.なお,エネル

ギー保存測からも同様の結果となる 1)

0>x

2 Ev−=

1a

22 σ=a

111 CE /

Vv =1a

vv =2a

2a 11σA

1 v=σ

1a vv =

2C22

1v+ =

2= A

0

2

剛体壁への衝突 (C , , ) であるから

ただし

C=1∞=2Z

1 σ−=σ

EE =1 ∞=∴∞= 22 CE

0 EC

V00 =σ

Sec[m ⋅= 5120C

]Sec

(2.7)

鋼材, ∴ V の単位は

], -1

/

[GPa]200[MPa]040V[m

=E

1 ≈σ

0

同質同断面積の棒の衝突 (C , , )

であるから,

CC == 21 EEE == 21 21 AA =

21 ZZ =

2200 σ

−=−= EC

V

021 20V−≈σ=

21 σ=σ

σ

(2.8)

鋼材, [MPa]

C= EE == 21CC = 21 E

+=

+−=σσ

+

21

120

2

21

120

2

2

AAA

vVA

AA

A

,

,

+−=

−=

1

11

AA

AA

C1

棒1 A1,

σ0,v0)

同質異断面積の棒の衝突 ( , )

σ

01

02

Vv

A

(2.9)

E1,ρ1x

a

C1C2

(σ1,v1) (σ2,v2)

棒2 A2,E2,ρ2

図 2.3 応力波の反射・透過

次に,図 2.3 のように棒中を伝播してきた

応力波が境界で反射透過する場合を考える.

棒1中を伝ぱする応力波 ( が棒2との

境界で反射透過し,棒 1 には応力波

が反射し,棒 2 には応力波 ( が透過す

るとすれば,応力及び変位速度の反射率,透

過率は次のようになる.

)00 v,σ

2 v,σ

( )11 v,σ

)2

+=

σσ

≡α

+−

=σσ

≡α

2

1

21

2

0

212

21

12

0

111

2AA

ZZZ

ZZZZ

(2.10)

+=≡β

+−

=≡β

21

1

0

212

21

21

0

111

2ZZ

Zvv

ZZZZ

vv

(2.11)

∵反射透過後,棒1の境界面 a の応力と速度は ,σ

棒2の境界面では ,σ

そして , また, , これらより上式が求まる.

10 vvv +=1a

0 E−=σ

2 E−=σ

10 σ+σ=1a

22a vv =

2a

1a vv =

10 Cv / 1 E=σ

22 Cv /

2σ=2a

1a =σ1A

111 Cv /

2aσ2A

1

2

-11-

自由端反射( ) であるから , (2.12) 自由端では応力は常に0, 変位速度は入射応力波の2倍となる

00 22 =∴= CE

111 =β02 =Z

11 −=α 1棒

これらは,それぞれ棒1の上端,棒2の下

端で自由端反射し次式の引張応力波 ( ) ( 2211 vv ,:2,,:1 σ−σ 棒 [c] )

固定端反射( ) であるから , (2.13) 固定端の応力は入射応力の2倍となり,

速度は不変.

∞=∴∞= 22 CE

111 −=β∞=2Z111 =α

が引き返す.時刻 には棒1を

応力波が一往復し,この時点で棒1は CLt /11 2=

応力0,速度 021

21 VAAAA

+−

[d]

となる.

音響インピーダンスが同じ場合 であるから

21 ZZ =

1122

112 A

A

0= 12 A=σ

0

0

11

11

,

,

0 11 =σ v,

(2.14)

すなわち , , となり,応力波の反射は生じない

20 A/σ 02 vv =

[2]その後は,棒の断面積比によって次のよ

うにふるまう. [a] の場合 21 AA =

・衝突面における応力の反射率は0

であるから,応力波 ( ) ( )0011 5050 Vv .,., −σ≡−σ はそのまま棒2へ透過し,棒2の応

力,速度も打ち消して行く. ・時刻 t に棒2下端で反射

した引張応力が衝突面に到達. CL /22 2=

材質が同じ場合

α=βα−=β+

=α+−

1212111121

112

21

1211

2

,

,AA

AAAAA

(2.15) ・この時点で,衝突面は既に応力0

となっているので,引張応力は衝

突面を通過できず,両棒は離れる.

これ以後棒1は完全に静止し棒2

には2つの応力波が自由端反射を

繰返し伝ぱする.

c.図式解法

以上の結果を基に,棒中に発生伝播する

応力波を図式解法から求める方法を,図 2.4の同じ材質の2本の棒の衝突を例に示す.

[b] の場合 21 AA <

・棒2の速度は負,すなわち図の上

方へ動くので両棒は離れ衝突面は

自由端となる.

同図は横軸に時間,縦軸に棒に沿った距

離をとったグラフ上に,応力波頭の伝ぱ軌跡

を直線で描いたものであり,各軌跡にはその

応力波の応力と変位速度を記してある. ・棒1には新たな応力波は発生せず

これ以後応力0で,最初飛んでき

た方向と逆方向へ飛び去る. [1]棒1が速度V で同じ材質の棒2に衝突す

れば,式(2.9)より,両棒には次の圧縮

応力が発生しそれぞれ,上方及び下方

へ向かって伝ぱしはじめる. [a] ここで, σ とおいて

0

1 ,−σ

0

( ) ( 221 2 vv ,,:1 σ−−   棒 棒

CEV /0=

・棒2には既に生じていた応力を打

ち消すために, ( の応力波

が新たに発生し伝ぱする. ), 22 v−σ

)[c] の場合 21 AA >

021

210

21

21 V

AAAv

AAA

+=σ

+=σ ,

021

120

21

12 V

AAAv

AAA

+=σ

+=σ , [b]

・棒1から2へ伝ぱする応力波が衝

突面で反射透過した後も衝突面の

応力は圧縮となり接触は保たれ,

次の応力波が伝ぱする.

-12-

・時刻 t に棒2下端からの

反射波

CL /22 2=

( )22 v,σ が衝突面へ到達し,

この時両棒は離れ,衝突面の応力

が0とならねばならないから,両

棒の衝突面には,

[e]

ただし,

( )( )

β−ασβ−ασ

121121

111111vv

,,

棒2

棒1

+=β=α

+−

=β−=α

21

11212

21

121111

2AA

AAAAA

[f] ( )( )

βασ−β−ασ−

121121

111111v

v,,

棒2

棒1 [g]

の応力波が発生し伝ぱする.

L2

-σ2

(-σ1,-v1)

(σ2,-v2)

(-σ2,v2)(σ2,v2)

t

A

A 点の応力

σ2

L1

t1 t2

(σ1,-v1)

(-σ2,-v2)

x

(2)

(1)

L2

-σ2

(-σ1,-v1)

(σ2,-v2)

(-σ2,v2) (σ2,v2)

t

A

A 点の応力

σ2

L1

t1 t2

(σ1,-v1)

(-σ2,-v2)

x(2)

(1)

の場合 a][ 21 AA = [ の場合 b] 21 AA <

L2

-σ2

(-σ1,-v1)

(-σ2,v2)

(σ2,v2)

t

A

A 点の応力

L1 t1 t2

(σ1,-v1)

σ1α12

(σ1α12,-v1β12) (-σ1α12,v1β12)

(α11σ1,-v1β11)

(-α11σ1,-v1β11)

x

σ1α12σ1α12

(2)

(1)

の場合 c][ 21 AA >

図 2.4 2本の棒の衝突による応力

-13-

このような軌跡図を基に,棒の任意位置

における応力あるいは変位速度は,各波頭が

その位置を横切る時間に,その値を順次加え

る事によって求まる.図ではこのようにして

求めた A 点における応力-時間関係を示し

てあるが,速度成分を加え合わせれば同様に

速度-時間関係もわかる. ねじり衝撃

x

θ , ω

T 2R

T+dT τ+dτ

Ip,ρ,G dx

図 2.5 ねじり衝撃を受ける丸棒

ねじり衝撃の場合基礎式及び一般解は次

のようである

2

22

2

2

xC

t ∂

φ∂′=∂

φ∂

ρ=′ EC (2.16)

ただし,断面の回転角を ,回転角速度を

,半径を ,外表のせん断ひずみ及び応

力をそれぞれ

θ

ω Rτγ, として は , ,φ θR ωR γ ある

いは であり,G は横弾性係数,τ C ′ はせん

断波の伝ぱ速度である.また, τω,,θ 及びト

ルクT の関係は次のようである.

τ=∂θ∂

∂θ∂

∂θ∂

RI

Tt

xG

RG

RxR

p,

,

)()( LR tCxtCx ′+φ+′−φ=φ

(2.17)

式(2.16)の一般解は

となり,これらは, 変位速度 を v :断面の回転角速度ω垂直応力 を σ :棒外表のせん断応力

と外半径の比 R/τ 垂直ひずみ を ε :棒外表のせん断ひず

みと外半径の比 R/γ断面積 を A :断面二次極モーメン

ト I 24 /p Rπ=

ヤング率 E を :横弾性係数G 伝ぱ速度C を : ρ=′ /GC

に置き換えれば,縦衝撃の基礎式(2.1),(2.2)に一致する.したがって,縦衝撃の結果に上

の置き換えを行えば,同様の議論および結果

がねじり衝撃についてもあてはまる. すなわち,動的フックの法則は

GCR ′ω

m ,ρ

=′ GC (2.18)

一端に回転角速度 0Ω を受ける丸棒外表に

生じるせん断応力は

GCR ′Ω

−=τ 00 (2.19)

回転角速度 0Ω の棒1を静止している棒2

に急激に連結したとき棒1,2に生じるねじ

り応力波は

棒1

Ω′+′

′−=ω

′Ω

′+′′

−=τ

021

21

11

0

21

2

1

1

ZZZ

GCZZ

ZR

(2.20)

棒2

Ω′+′

′=ω

′Ω

′+′′

−=τ

021

12

22

0

21

1

2

2

ZZZ

GCZZ

ZR

p1IC11

(2.21)

Z1 ′ρ=′ , p2ICZ 222 ′ρ=′ (2.22)

(ねじりの音響インピーダンス)

棒1中を伝ぱしてきたねじり応力波の境

界面での反射率と透過率は

′+′′

=ττ

≡α′

′+′′−′

=ττ

≡α′

2

1

21

2

20

1212

12

12

0

111

2p

p

II

ZZZ

RR

ZZZZ

(2.23)

-14-

′+′′

=ωω

=β′

′+′′−′

=ωω

=β′

21

1

0

212

21

21

0

111

2ZZ

Z

ZZZZ

>x

),( vσ

(2.24)

σ=τ 21

1 aARI p Va =ω

111

GCR ′ω

−=τ

(

a=αR1 x

σ,v)

E2, A2,C2

2R

V0

x

x

C2

C'1 (τ,ω)

R1,G1, A1,C'1,Ip1

(a)ねじり応力波の発生

x

C2

C'1(τ,ω)

(σ0,v0)

(σ,v)

(b)応力波の反射透過

R1=12.5mm, l1=1900mm, α=2.12 R2=20mm, l2=540mm V0=3.13m/sec, l=340mm C'1=3170m/sec, C2=5120m/sec

(c)実験値との比較

l 1 l 2

l

0 0.2 0.4 0.6 0.8 1.0 0

4

2

時間 msec

せん断応力

g

f/mm

2

実験値

計算値

となる. 注)図 2.5 のように,回転角,回転角速度は右

ねじの進む方向が 方向となるものを正,

内力としてのトルクとせん断応力は断面の外

向き法線ベクトルの方向と一致するものを正

とする.

0

ねじりと縦衝撃の組合せ

ねじり衝撃と縦衝撃の組合せ例として,

図 2.6 のように横棒1に取り付けたピンを落

下棒2で打撃するとき横棒に発生するねじり

応力波について考える. 同図(a)のように,落下棒2が速度V で横

棒1に取り付けたピンに衝突した瞬間,落下

棒には の縦波、横棒には ( のねじり

波が発生それぞれの棒中を伝ぱすると考える.

0

),ωτ

簡単のためにピンを剛体と見なせば,力

の釣合及び変位の条件は

, v+0

動的フックの法則より

, 22

ECv

これらより

11

0 G′1

1κ+α

−=τ)( C

V,

lV0

11

κ+=ω

2E2

01 C

Vκ+

κ−=σ , 0V

κ+κ

1v −=

ここで,222

2111CEA

CGAα

GIAR ,,,

2=κ

となる.ここで、 はそれぞ

れ横棒の半径,断面積,断面極二次モーメン

ト,横弾性係数及びせん断波の伝ぱ速度.

, , はそれぞれ落下棒の断面積,ヤン

グ率及び縦波の伝ぱ速度, はピンの

長さである.上式によれば が大きいすなわ

11111 Cp ′,

1Ra α=

α

2A 2E 2C

図 2.6 棒にとりつけたピンの打撃 によるねじり波

ちピンが長くなると発生トルクは小さくなり

静的な場合とは逆である事がわかる.

-15-

a.FFT法と数値ラプラス逆変換 次に,落下棒中を伝ぱする応力波 (がピンとの接触部に達するとき,ねじり応力

波 ) が横棒中に透過し,縦波 が落

下棒中を引き返すとすれば

), 00 vσ

),v,( ωτ (σ

ラプラス変換の基礎

はじめに,基本となるラプラス変換及び

数値ラプラス逆変換について,本方法で必要

となる程度の事項を記しておく. 力の釣合及び変位の条件:

動的フックの法則:

RIaA p /)( 102 τ=σ+σ vva +=ω 0

22

00 E

Cv

−=σ , 2E2C

v=σ , G

CR 1′ω

−=τ

ラプラス変換及び逆変換の定義式と,主

な基本的性質は以下のとおりである.

ラプラス変換

(2.25) )(~)()( pydtetytyLap pt =≡ ∫∞ −

0

逆変換

∫∞γ

∞γ

π≡

i

ipt dpepypyLap

+

-1 )(~

i21)(~ (2.26)

ただし, 1−= γi , :実数

が成立するから,応力の反射率及び透過率は

つぎのようになる.

11

022 +κ

−κ=

σσ

=α ,)( κ+

α=

στ

=1

41

2

021 A

基本的性質 以上の結果を用いて,縦衝撃の場合と同

様に,横棒に取り付けたピンを落下棒で打撃

したとき横棒に生ずるせん断応力-時間関係

を求め実験値と比較したものが図 2.6(c)であ

る.各棒の寸法等は図中に示すとおりである.

図を見れば,実験値と計算値は良く一致して

おり,図式解法の有用性がわかる.

1. 線形性

)(~)(~

)()(

21

21 pypy

tytyLap⋅β+⋅α

=⋅β+⋅α

2. 時間軸移動

)(~)]([

)(~)]()([

α−=

=α−⋅α−α

α−

pytyeLap

pyetHtyLapt

p

なお,同図によれば,横棒の直径の2倍

程度の太さの打撃棒を用いれば,横棒にはほ

ぼ長方形状のねじり荷重波が発生することが

わかる.

3. 時間軸拡大 ( ) 0>ααα=α ,)(~/ pytyLap

4. 畳込み )(~)(~)()( pypytytyLap 2121 ⋅=∗

∫ ⋅τ⋅τ−=∗t

ytytyty0

d)()()()( 2121

ただし

τ

2.FFT法を利用した数値解法 段付き部が多い場合や不静定問題など,

図式解法では手順が煩雑になり実用的ではな

い場合がある.そのような場合には次に示す

数値ラプラス変換を利用して,波動方程式の

解を直接求めた方が良い.また最近はパソコ

ンを利用できるので,この手法を骨組み構造

解析に用いれば,トラスやラーメン構造の衝

撃応答解析が短時間で行える.

5. 初期値,最終値

)()(~Limp

0+=∞→

ypyp

)()(~Limp

∞=→

ypyp0

-16-

6. 微分

)()(~)( 0ypypdt

tdyLap −=

∑ −

−−−

=

n

k=k

kkn

nn

n

dttydp

pypdt

tydLap

11

1

0=t

)(

)(~)(

7. 積分

ppydyLap

t )(~)(

0=

ττ∫

n

t

ppydddyLap )(~

)(0

12nn1n

=

ττττ∫ ∫ ∫τ τ −1

0 0LL

8. 簡単な関数のラプラス変換

(ステップ関数) (デルタ関数)

ptHLap /)( 1=

1=δ )(tLap

( ) n1n

pntLap

1

1=

2α+2α

=αp

tLap sin

2α+

p2=α

ptLap cos

ラプラス変換を用いた微分方程式の解法

基本的性質 6.によれば,導関数のラプラ

ス変換は変数 との積となるから,常微分方

程式は変換域では代数方程式となる.ばねの

運動方程式を例にその計算手順を示す.

p

例]運動方程式

000

02

2==−=

=tdtdyyyKy

dtydm ,)(, [a]

基本的性質 6.より2階導関数のラプラス変

換は

0=t

)()(

)(~)(

dttdypy

pypdt

tydLap

−−

=

0

22

2

(2.27)

したがって,式[a]のラプラス変換は

( ) yKpyypm ~~ −=− 02 [b]

上式より直ちに次の解を得る.

02 yp

p+

m

220Kmp

mpypyω

=+

=)(~

K /=ω2

)(

[c]

ただし, そして, ~ py について逆変換

∫∞+γ

∞−γ

∞+γ

∞−γ

+ωπ=

π=

i

i 20

i

i

2i1

)(~2i1)(

py

epyty

)cos( tyy ω= 0

2dte

p

dp

pt

pt

を行えば,時間域での結果が得られる. 今の場合は 8. より直ちに [d]

また,初期条件が 00 Vdt t ==( 0 dy /,0y ) =

ならば運動方程式は ( ) yK~−=0Vyp ~ −2m と

なるから,変換域での解は

ω+ω

ω= 0

22V

ppy )(~

ωω= /)sin( tV0

[e]

∴ y [f]

以上のように,変換域での解は極めて簡

単に求まるので逆変換さえ可能ならばこの方

法は有力な方法と言える.多くの関数につい

てラプラス変換,逆変換が求められており

3),常微分方程式についてはこれらを用いれ

ば解析的に逆変換解が得られる場合も多いと

思われる.しかしながら,偏微分方程式の解

法にこの手法を応用した場合変換解は複雑な

関数形,あるいはいくつかの関数の組合せと

なり,逆変換は容易ではない.また,逆変換

が解析的に得られたとしても,級数解となる

ことが多く最終的には数値計算にたよること

になる場合が多い. 一方,FFT 法 4)による数値ラプラス逆変

換法 5)は極めて簡単でしかも高速高精度な

手法である.実際,はりの衝撃問題等,解析

-17-

解を数値計算するよりも高速高精度な場合が

多いと思われる.そこで,これを実行するプ

ログラムをパソコン上に作っておけば,これ

をツールとして用いることで,静的荷重に対

する「材料力学」と同程度の解が多くの衝撃

問題に対しても得られる.そこで,逆変換は

数値計算にたよることとし,その方法を示す. 数値ラプラス逆変換法

ラプラス変換のパラメタを πω+γ= 2ip

);(~)( :実数)と変数変換すれば ,

ω

dp ωπ= d2i i(~)(~ ωγ≡πω+γ= y∞

ypy 2−∞=ω⇒∞+

γ∞−γ= ~i

t eeγ ⋅= i~i

tπω

ppte

, であるから,式(2.26)は次のようになる.

2

∫∞

πωγ ωωγ=+

-i);(~)( deyety tt 2

この右辺の積分は をパラメタと見なせば

の関数

γ

ω );(~ ωγy のフーリエ逆変換に他なら

ない.したがって,計算には高速フーリエ変

換(FFT)アルゴリズムを利用できる.

FFT 法におけるデータの並び順やサンプリン

グ定理の影響等を考慮すれば,具体的な計算

手順は以下のようになる. 数値ラプラス逆変換の手順

[1] 解が必要な時間幅 T と計算点数 を決める.

は2のべき乗とする. が大きいほど

細かい結果が得られ計算精度もよくなる. は の刻みすなわち周波数の分解能

となるから,

N

N

/1

N

T ω

T を小さくすると詳細な結

果が得られない場合がある. [2] の値を決める.

一般に を大きくすれば,精度はよくな

ると考えられるが,後で をかけるの

γ

γteγ

t が大きいところで解が発散すること

がある. TT /~/ 73=γ が適当である.

[3] 1102−=

π+γ= Nk

Tkp ,,,,i L (2.28)

と置き,次のデータ列をFFT法計算プロ

グラムのデータ配列に順次格納する.

2

10 Nk ,,, L= までは

π

+⋅π

+γ=N

kT

kyTNyk

2121 cos)i2(~~

(2.29)

112

−+= NNk L, では

kNk yy −= ~~ (2.30)

ここで, kNy −~ は kNy −

~ の共役複素数

なお, 221 /)/cos( Nkπ+

2/N

k

はハニング関

数でありこれをかけることによって計算

精度が向上する6). また,時間域で実数となる関数は複素

数域では実部は偶関数,虚部は奇関数と

なるので実際の関数計算は 個でよ

い.

~y

1-,0,1,=, / NkNkTt L=

ky′

ky′ teγ

1,,1,0,/ −=⋅′= γ Nkeyy NTkkk L

)/(k NkTy≈

CpxCpx eexpu //),(~21 α+α= −

[4] FFT逆変換プログラムを実行する. 普通FFT法の計算プログラムでは,[3]で計算した を順に格納した配列と同じ配

列に時間域での値が時刻 の順に得られる.これを とする.

[5] [4]で得られた結果 に をかける.

(2.31) となり,時間域での結果が

得られる.

y

章末に,本文で用いたプログラムリスト

を示す.計算手順を理解する参考にされたい.

b.棒の縦衝撃

縦衝撃を受ける棒の波動方程式 (2.1)のラ

プラス変換域における一般解は次式となる.

変位:

(2.32)

変位速度:

-18-

( )CpxCpx eepxpv //),(~21 α+α= −

(2.33) 応力:

( )CpxCpx eeCEpxp //),(~

21 α−α−=σ −

(2.34)

21 α,2222 xuCtu ∂∂=∂∂ //

00 =),( xu 0/),( 0 =∂∂=ttxtu

2222 dxudCup /~~ =

)/exp()/exp(~ CpxCpxu 21 α+−α=

up~= uEd /~=

V0H(t) x

A,E,C

l

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0.0 1.0 2.0 3.0 4.0 5.0

x=0.5l

τ

V 0 E

/C

σ

00 0 =σ= ),(,)(),( lttHVtv

20

21pV

=α+α

021 =α−α − CplCpl ee //

種々の衝撃荷重に対する解はこれらの式

を用いて,境界条件を満足するように未知係

数 を決定することに帰着される. α∵変位の波動方程式 を初

期条件 ,

2

の下でラ

プラス変換すれば となり,

一般解は である.そして, 変位速度は v~ ,応力は dx~σ である.

[例 1] 一端にステップ状衝撃速度を受ける他

端自由棒

図 2.7 ステップ状荷重を受ける棒の応力

境界条件 より

[a]

∴ 20

1pV

eee

CplCpl

Cpl⋅

+=α

− //

/,

20

22

pV

eee

CplCpl

Cpl⋅

+=α

//

/ [b]

応力の解は

( )( )Cplp

Cxlpeeee

pCEVxp

plCpl

pCxlp

/cosh/)(sinh

/),(~

/

(/)(

−=

+

−=

σ−

−−10

)(

C

Cxl

/

/)−

[c]

ラプラス変換の性質 3.によれば に関する

変換解

t~ py

)/( Cl p

lCt /

において,全体に をかけ

を と書き直したものは τ に

関するラプラス変換解に等しいから, 無次元時間

l

=

C /

p lCt /

=τ に関する変換解は

( )

( )plxp

cosh)/(

psinh

CExp

/),

V(~ −

−0

1

50.

[d]

となる. 図の計算値は / =lx として式[d]を数値

逆変換した結果で,計算点数は 256 点で

ある.計算値はほぼステップ状であり,

応力波が右端で自由端反射,衝撃端で固

定端反射する事がわかる.

M 0

l x V0

A,E,C M

-2.0

-1.5

-1.0

-0.5

0.0

0.51.0 2.0 3.

τ 0 5.0

V 0 E

/C

σ

βτ)/ β

例 2] 質量 の剛体が速度V で衝突する他

端固定棒

-2.5

0 0 4.

β=0.5 x=0.5l

sin(

図 2.8 剛体衝突による棒の応力

-19-

剛体の変位をU とすれば,運動方程式は

00

2

20 V

tdUdUA

tdUdM

t==σ=

=

,),0t,(

[a] ラプラス変換は

),(~~ 02 pAVUpM σ− 0 = [b]

一方棒の変位と応力より

( )

α−α−=σ

α+≡

21

21

0

0

p

puU

),(~),(~~

α=

CpE [c]

∴ ( )21012 α−α−=−+α

CpAEVpM )( 2α

[d] 棒右端の変位は0であるから

[e]

01 =α − CplCpl ee //2α+

⋅−β+

⋅−β+

pV

CplCCpl

eCl

pV

CplCCpl

eCl

Cpl

Cpl

2

2

02

01

)/cosh()/

)/cosh()//

/

M/=

pl

pl

sinh(

sinh(

Alρ

[f]

ただし,β [g]

∴応力は

( ))/cosh(

/

)/sinh(

(cosh/

),( )~

Cpl

C

CplCpl

lpCl

CEVxp

+=

σ

0

x

β

−−

[h] 無次元化時間 τ に関する解は

lCt /=

( )( )( ) p)

pplxp

CEVxp

coshsinh/(cosh

/),(~

β+−

−1

0 [i]

なお,Ⅰ.1で示したように,これをば

ね質量系とみなしたときの解は

( )τβ⋅β

−=σ

sin/

10 CEV

b [j]

となり図中細線はこれを示す. 図を見れば,応力波伝ぱを考慮した解

はばね質量系の解を中心とした鋸刃状と

なり,ばね質量系の解に対して高々 σ

(ここで, )程度大きくなる

と考えられる.一方ばね質量系の解の最

大値は

0

CEV /00 =σ

βσ であるから,このときの応

力波伝ぱによる応力の増加はは

/0

β の程度

であり, 10.=β ならば 32%,β なら

ば 10%程度である. なお,この問題については応力波の伝

ぱを追跡し漸化式として解を得たものも

あるが 7),本方法の簡便さがわかるであ

ろう.

010.=

l2

A2,E

2.5

2.0

1.5

1.0

0.5

0.0

-0.50 2.

−=σ+(

) 11tu

A

不静定問題

以上は静定問題であるが,不静定問題も

同様にして解ける.以下に例題を示す.

[例 3] 段付き部にステップ状の衝撃荷重を受

ける両端固定段付棒

x2

l1

A1,E1,C12,C2

P0H(x)

x1

0 4.0 6.0 8.0 10.0

棒2 x=0.5l

τ

P 0 (A

1+A 2

) σ

2

図 2.9 両端固定段付棒

棒 1,2 について座標系を図のようにとる.

荷重点の力の釣合,変位の条件は

[a]

棒の左右端は固定されているから

σ=

),),(),(),((

0000

21

220tu

tAttHP

-20-

[b]

∴ 棒1,2のラプラス変換解をそれぞ

[c]

とおけば,

02211 == ),(),( ltultu

α+α=α+α=

22

11

212

12111Cpx

Cpx

eueu

/

/

~~

22

11

22Cpx

Cpx

ee

/

/

( ) ( )

ααα

20

pPA

=α+=α+=α+α+α+

−=α−α−α−α

000

2222

1111

/22

/21

/12

/11

22211211

22212

221211

1

11

CplCpl

CplCpl

eeee

CEA

CE

2111 α~

EEECC ==== 2121 , ll = 21

[d]

これを解けばα が得られる. , なら

ば,

C l=

21

α−

α−=

22=+

⋅+

=

+⋅

+−=

2

2

221

012

2221

011

1

11

Cpl

Cpl

Cpl

ee

EpAACP

eEpAACP

/

/

/

)(

)(

α

α

[e] 棒1,2の応力は

C

Cpl

Cpx

e

ep

AAPxp

AAPxp

/

/(),(

xlpe )(

)

~

)/(),(~

−−+ 2

2

+

⋅=

−=+

σ

2

10

2

210

1

1

1

1

lCt /=τ

[f] に対する解は

)//

/(,(

(

))~

)/(),(~

lp

lpx

ee

p

APxp

AAPxp

−⋅

+⋅=

−=+

σ

2

10

2

210

1

11 xpe

A

−−+ 12

2

1

[g]

[例 4] 不静定トラス(同径同質部材)

0.0

0.2

0.4

0.6

0.8

1.0

0.0 1.0 2.0 3.0 4.0 5.0 6.0

P= P0H(t)

部材1,2: A,E,C

τ

θ=30°,x=0.5l

σ 1

P 0 A

θ

1 2

l

2

z

θ

x

図 2.10 不静定トラス

部材1について,変位,荷重点に及ぼす

力,荷重点の変位をそれぞれ

CpxCpx eexpu //),(~12111 α+α= −

1Q 1

,U [a]

とおけば

−=α

−=

112

111

11

2

2

UCpl

e

UCpl

e

UCplC

AEpQ

Cpl

Cpl

~)/sinh(

~)/sinh(

~)/tanh(

~

/

/

12111 α+α=

[b]

∵U~ , 012 =α+ Cpl

e11α−

Cpl

e

( ) C/AEpQ~ 1211 α−α=

Cpz eep /

1

u (

z),

より

同様に部材2についてこれらを,

Cpz /~2221 α+α −

2

2Q

=

2

,U [c]

と置いて

-21-

θ−=α

θ=α

θ−=

θ−

θ

222

221

22

2

2

UCpl

e

UCpl

e

UCplC

AEpQ

Cpl

Cpl

~)cos/sinh(

~)cos/sinh(

~)cos/tanh(

~

cos/

cos/

PQ =θ+ cos2 21 21 U=θcos

[d]

,U より

Q

=θ+

21

02211

~cos~

cos~2~

UU

pP

KUKU

[e]

ただし,

θ

−=

−=

1

2

1

1

costanh

tanh

Cpl

CAEp

K

Cpl

CAEpK

[f]

∴[e]を解けば

θ+

θ⋅=

θ+⋅=

221

02

221

01

cos2cos~

cos21~

KKpP

U

KKpP

U

[g]

Cpl

Cpl

lCp

⋅θ

⋅θ

K

eK

2cos21

sinh2cos1

22

22

+

2

⋅−=α

+⋅=α

KpP

KpP

1

012

1

011

−e

lCp

sinh

h]

θ

θ

θ−

θ

cos

cos

cos

cos

Cpl

Cpl

Cpl

pl

⋅θ

θ

⋅θ

θ

sinh2coscos

sinh2cos

22

2

eK

e C

+⋅−=α

+⋅=α

2cos

1

022

1

021

KpP

KKpP

2

2

[i] に対する部材1の応力は

lCt /=τ

ppxlp

pp

pp

APxp

sinh)(cosh

tanhcoscos

tanh

tanhcos

tanh

/),(~

−×

θ+θ

θ=σ

20

1

[k]

F+dF

x

F

M+dM

M

y

w

θ

dx

θ

c.棒のねじり衝撃

棒のねじりについては,前出の変数の置

換えを行えば,縦衝撃の場合と全く同様であ

るのでここでは省略する.

d.はりの曲げ衝撃

図 2.11 はりのたわみ

たわみ w,たわみ角 ,曲げモーメント M,

せん断力 F を図 2.11 のように定義するとき,

たわみに関するオイラーの運動方程式は次式

となる.

04

42

2

2=

∂+

xwc

tw

b (2.35)

ただし、単純曲げを仮定しているので,

たわみとたわみ角,曲げモーメント,せん断

力の関係は次式で与えられる.

−=σ∂

∂−=

∂=

∂∂

IMyxwEIF

xwEIM

xw

/

,, 3

3

2

2

(2.36)

ここで, AEIcb ρ= / (2.37)

I :断面二次モーメント

これらのラプラス変換域での解は,

-22-

(2.38)

ただし,

ηα−=

ηα=

ηα=θ

α=

=

η

=

η

=

η

=

η

4

1

3

4

1

2

4

1

4

1

k

xkk

k

xkk

k

xkk

k

xk

k

k

k

k

eEIxpF

eEIxpM

exp

expw

),(~

),(~

),(~

),(~

φ−⋅= ieRcp

b2

2π<φ− , ≤ 20 として

43214

124

,,,

)(exp

=

−π+φ

k

kiRk (2.39)

はりの問題は,これらの式より境界条件

を満たす未知係数α を決定することに

帰着する. 41 α~

[例 5] 先端にステップ状集中荷重を受ける片

持ちはり

t [Sec]

-2.5

-2.0

-1.5

-1.0

-0.5

0

0.5

0 0.1 0.2 0.3 0.4 0.5

b

x l

P0H(t)

A,E,I,ρ h

l=300 [mm]b=10 [mm] h=20 [mm] 材質:鋼材

M

P 0 l

図 2.12 衝撃荷重を受ける片持ちはり

境界条件は , ,00 =),(tw 00 =θ ),(t 0=),( ltM ,

であるから

)(t),( PltF −= H0

kα は次の連立方程式の解であ

る. bA =⋅ α [a] ここで,

ηη−ηηηηη

ηη

ηη−ηηη

η

)exp()exp()exp()exp(

)exp())exp()

llll

llll

4343

33

4243

23

43

2321

2221

2

11

1

−η

ηexp(

exp(3

η−ηη

=

1

21

1

1

A

( )

( )T

T

100

43 αα

p01

2

α

EIP0

1

−=

α=

b

α

図 2.12 は,式[a]の連立方程式の解も数

値的に得たものである.問題が複雑にな

る場合は,このように連立方程式の解も

数値的に行えば計算ミスも防げ便利であ

り,計算時間はやや長くなるが解の精度

はほとんど同じである.

3.動的剛性マトリクスと骨組み構造

解析 前節で棒の引張圧縮,曲げの問題につい

てラプラス変換域での解を示した.棒の数が

少ない場合は,これに境界条件を与え直接解

を導き逆変換ルーチンにかけることで時間域

での解を得ることが出来る.しかしながら,

部材の数が多くなるとこれを直接解くことは

かなり面倒になる.そのような場合には,有

限要素法(骨組み構造解析の)の手法を利用

するのが便利である.そこで,以下では骨組

要素のラプラス変換域における剛性マトリク

スを以下に示す.

a.トラス

x lE,A, ,Ι,ρ

u1x f 1

x u2 , f 2 x x

図 2.13 トラス部材の接点変位,節点力

-23-

図 2.13 のようにトラス部材の左端及び右

端の節点変位ベクトルをu 節点力

ベクトルを F とすれば,縦衝撃

を受ける棒の解より

Txx uu ),( 21=

Txx ff ),( 21=

211 α+α=xu ,u [a] CplCpl

x ee //21

2 α+α= −

(以下では,ラプラス変換域の値 であって

も単に φ と記し,記号~は省略する)

φ~

応力と節点力の関係は

01

=σ−= xx Af , であるから, lxx Af =σ=2

( )

( α−

α

− Cpl ee /2

2

)

Cpl /1α−=

α=

x

x

CAEpf

CAEpf

2

11

[b]

[a]より を求め,[b]に代入すれば,次

式を得る. 21 αα ,

ukF ⋅= ,k (2.40)

ただし,

=

=

abba

kkkk

TT

TT

2221

1211

b ⋅−=

⋅=

)/sinh(1

)/sinh()/cosh(

CplCAEp

CplCpl

CAEpa

(2.41) ηη 33

k はラプラス変換域における要素の動的剛

性マトリクスである.

b.ラーメン

x

y

lE,A, ,Ι,ρ

θ2 M 2

u1 x f 1 x

u1 , f 1 y y u2 , f 2 y y

θ 1 M 1

u2 , f 2x x

図 2.14ラーメン部材の接点変位,節点力

曲げ変形のみを考え,節点変位ベクトル

(たわみと,たわみ角) ,

と節点力ベクトル(せん断力と曲げモーメン

ト)

( )Tyy uu 2211 θθ= ,,,u

( )Tyy MfMf 2211 ,,,=F

∑=

ηα=4

1kkk x)exp(

∑=

α=4

1kk θ

∑=

ηα−=4

1

21

kkkEI f

∑=

ηα=

4

1k

lk

ke

∑=

ηηα=

4

1

22

k

lkk

keEI

∑=

ηηα−=

4

1

32

k

lkk

keEI

B

を図のようにとり

たわみの解を

uk ⋅= B

434241

333231

232221

131211

=

BBB

BBB

BBB

BBB

B

kkkkkkkkkkkkkkkk

ηηη

ηηη=

ηη

ηη

ll

ll

eeeee

21

21

321

21

11

ηη

η−η−

η−η−=

ηη

η

l

l

eeee

EI

1

1

22

21

32

31

22

1

21

( )Tyxyx uuuu 222111 θθ= ,,,,,

( yxyx MffMff 22111 ,,,,,=

uk ⋅=

と置けば

, θ

yu

1yu

M

2yu

M

yf

∑=

ηα=4

1

1

kkk

∑=

ηα=4

1

1

kky EI

∑=

ηα=4

1

2

kkk e

3k

η lk

であるから,要素の曲げ成分に関する剛

性マトリクスk は次のようになる. F

k

B

(2.42)

ここで,

(2.43)

1

44

34

24

14

−⋅=

BD

B

B

B

B

η

η

ηη

ηη

ll

ll

eee

43

43

4

43

11

ηη

η−η−

η−η−ηη

ηη

ηηη

lll

lll

eeee

432

432

24

23

34

33

24

23

2

34

33

D

(2. 44)

これに軸力が加わるから,結局,ラーメ

ン要素の剛性マトリクスは次のようになる.

u

)T2F

F

とおいて

-24-

( )

==

BBBB

BBBB

BBBB

BBBB

ij

kkkkkkkk

abkkkkkkkk

ba

k

44434241

34333231

24232221

14131211

0000

00000000

0000

k (2.45)

y

l E,A, ,Ι,ρ

θθ 1=0 M 1=0

u1 x f 1 x

c.トラスとラーメンの混合構造

x

2 M 2

u2 x f 2 x

u1 , f 1 y y u2 , f 2 y y x

yθ 1 M 1

lE,A, ,Ι,ρ

θ2=0 M 2=0 u1 , f 1

y y u2 , f 2y y

u1 , f 1x x

u2 , f 2 x x u2 , f 2x x

図 2.15 1端回転自由部材の接点変位,節点力

図 2.15 のようなトラスとラーメンの混合構造の剛性マトリクスは以下のようになる.左端

回転自由の場合,要素の節点力,節点変位関係は次のようになる.

[a]

3行目より,

θ

θ

=

2

2

2

1

1

1

44434241

34333231

24232221

14131211

1

2

2

1

1

0000

00000000

0000

0

y

x

y

x

bbbb

bbbb

bbbb

bbbb

y

x

y

x

uu

uu

kkkkkkkk

abkkkkkkkk

ba

Mff

ff

( ) bbbby kkkuku 24

223

221

11 /θ++−=θ

−−

=

4322214241

3322213231

1322211211

2

2

2

1

1

1

000000

00000000

000000

bbbbb

bbbbb

bbbbb

y

x

y

x

kkkkkkkkkk

ab

kkkkkba

Mff

Mff

//

/

22

−−

であるから, を消去し次のように書ける

[b]

34

14

00

0

b

b

b

kk

k

θ

θ

−−

2

2

2

1

2

1

22244244222342

222432222332

222412222312

y

x

y

x

bbbbbb

bbbbbb

bbbbbb

uu

uu

kkkkkkkkkkkk

kkkkkk

////

//

∴要素の剛性マトリクスは

(2.46) である.

−−−−−−

−−−

=

bbbbbbbbbbbb

bbbbbbbbbbbb

bbbbbbbbbbbb

kkkkkkkkkkkkkkkkkkkkkkkk

ab

kkkkkkkkkkkkba

222442442223424322214241

222432342223323322213231

222412142223121322211211

000000

0000000000

0000000

//////

///

k

-25-

同様に,右端が回転自由の場合は ( ) bbbby kkukku 4443

242

141

12 /+θ+−=

−−

−−−−

0000

0000

00

43343344423432

43242344422422

43141344421412

bbbbbbb

bbbbbbb

bbbbbbb

kkkkkkka

kkkkkkkkkkkkkk

b

/

//

)(tH

θ より

(2.47)

( )

−−

==

0000000000000

4444413431

3444412421

4444411411

bbbbb

bbbbb

bbbbb

ij

kkkkkb

kkkkkkkkkk

a

k

//

////

k

N

)(t

∫ ⋅ττ

+⋅=t

H ddftMftM

00 )()()()(

)(tM

ττ−H dtM )(

E

L

φd

H

a

a

l

h

l=189ha

mm =207 mm =10 mm

L=10d

00 mm =15 mm

H=50 mm

ヤング率:200 GP

a

以上のように要素の剛性マトリクスが得られれば,静的な有限要素法と同じ手順で数値ラプ

ラス逆変換法の手順 3]で決定される p の値毎に有限要素法の解をデータ点数 だけ求め,こ

れらを FFT 逆変換ルーチンにかければ時間域での解が得られる.なお,この方法は骨組み構

造解析に限らず,平板等の動的有限要素法や境界要素法にも有効であることが示されている

8)~10). 門形フレームに丸棒が衝突する問題の計算と実験値を比較した結果を図 2.5 に示す.これは,

打撃点に単位の大きさのステップ状荷重 が加わる時の打撃点の曲げモーメントの解

を求め,これと打撃棒下端に貼付したひずみゲージによって測定された打撃力 と

の次のデュアメル積分 M H )(tf

(2.48)

によって解 を求めたものである.ひずみゲージによる測定値と計算値は良く一致してい

る事がわかる.また,縦波の影響はほとんど無く計算時間を短縮するためにこれを省略しても

良いことが判る. なお,このように衝撃問題ではステップ関数に対する解を求めておけば,任意関数に対する

解は上のデュアメル積分によって得られる事を付記して置く.

30

22.5

15

7.5

0

-7.5

-15

MOME

NT(MNm)

TIME (msec)

縦波も考慮した場合

測定波形曲げだけを考えた場合

1 2 3 4

図 2.16 中央に衝撃をうける門形フレーム荷重点直下 E 点の曲げモーメント

参考文献 1)松本浩之ほか:機械学会論文集, 30, 215(1964), 759. 2) 茶谷・放生:機械学会論文集, 44, 381(1978), 1445. 3)F.Oberhettinger,L.Badii Tables of Laplace Transforms,Springer-Verlag,(1974) 4)E.Oran Brigham,宮川,今井訳「高速フーリエ変換」科学技術出版社,(1979)

-26-

5)W.Krings,H.Waller,:Int.Num.Mech.Eng., 14(1979), 1183. 6)放生ほか:機械学会論文集, 63, 616(1997), 2526. 7)前川一郎:機械学会誌, 84, 750(1981), 448. 8)松本浩之ほか:機械学会論文集, 54, 501A(1988), 1024. 9)足立忠晴ほか:機械学会論文集, 56, 524A(1990), 917. 10)松本浩之ほか:機械学会論文集, 59, 556A(1993), 2362.

ビジュアルベーシック言語によるプログラム例

本文の例題を逆変換するために用いたプログラム中,逆ラプラス変換,逆変換データ作成及

びFFT計算のためのサブルーチンのプログラムリストを以下に掲載する.使用言語はマイク

ロソフト社ビジュアルベーシックである.

逆ラプラス変換サブルーチン Sub InvLapSub(Ganma0 As Double, T0 As Double, n As Integer, Y() As Double) '****************************************************************** ' Ganma0=γ×T, T0=T, n=N, Y():逆変換結果を記憶し持帰る配列 ' このサブルーチンで作製使用する配列 ' FFTDataArray():FFTサブルーチンで使用する ' cst() :FFTサブルーチンで使用するコサイン表を記憶する '****************************************************************** Dim k As Integer Dim r As Double Dim cst() As Double Dim FFTDataArray() As ComplexDbl '注1) ReDim FFTDataArray(n - 1) '計算時に使用する配列を作製 ReDim cst(n / 4) SetInvLapDataSub Ganma0, T0, n, FFTDataArray() 'FFT用の配列に関数値を準備する r = 2 * PAI / n 'コサイン表作製 For k = 0 To n / 4 cst(k) = Cos(k * r) Next FFTInvSub n, FFTDataArray(), cst() 'FFT逆変換ルーチン呼出し r = Ganma0 / n 'exp(γt)をかける For k = 0 To n - 1 Y(k) = FFTDataArray(k).x * Exp(r * k) '結果は実部のみを採用すればよい Next Erase FFTDataArray, cst '不要になった配列を消去 End Sub

逆変換データ作成サブルーチン Sub SetInvLapDataSub(Ganma0 As Double, T0 As Double, n As Integer, FFTDataArray() As ComplexDbl) '****************************************************************** 'Ganma0=γ×T ,T0=T,n=N,FFTDataArray()=FFTサブルーチンで使用する配列 '****************************************************************** Dim p As ComplexDbl, fvalue As ComplexDbl Dim Hw As Double, Hw2 As Double Dim k As Integer, k2 As Integer p.x = Ganma0 / T0 For k = 0 To n / 2 k2 = n - k Hw = 0.5 * (Cos(k * PAI * 2 / n) + 1#) p.Y = 2 * k * PAI / T0 fvalue = Laplacefunction(p) '逆変換したい関数の計算 注2) FFTDataArray(k).x = n / T0 * Hw * fvalue.x FFTDataArray(k).Y = n / T0 * Hw * fvalue.Y If k <> 0 And k <> n / 2 Then FFTDataArray(k2).x = FFTDataArray(k).x FFTDataArray(k2).Y = -FFTDataArray(k).Y '共役複素数 End If Next End Sub

-27-

FFT サブルーチン Sub FFTSub(NW As Integer, x() As ComplexDbl, cst() As Double) '*********************************************** '* x(0~nw-1) を FFT する '* Cst(i)=cos(2pai/nw*i)[i=0~nw/4]: コサイン表 '*********************************************** Dim n1 As Integer, n2 As Integer, n3 As Integer, StageNo As Integer Dim ButterflyNo As Integer, GroupNo As Integer, Stage As Integer Dim Group As Integer, Butterfly As Integer Dim i As Integer, j As Integer, j1 As Integer, k As Integer Dim DataIndex As Integer, TableIndex As Integer, iw As Integer Dim wc As ComplexDbl, Wt As ComplexDbl n1 = NW ¥ 4 n2 = n1 * 2: n3 = n1 * 3 StageNo = Log(NW) / Log(2) ButterflyNo = NW GroupNo = 1 For Stage = 1 To StageNo ButterflyNo = ButterflyNo / 2 DataIndex = 0 For Group = 1 To GroupNo TableIndex = 0 For Butterfly = 0 To ButterflyNo – 1 i = DataIndex + Butterfly j = DataIndex + Butterfly + ButterflyNo GoSub CalcuButterfly TableIndex = TableIndex + GroupNo Next DataIndex = DataIndex + 2 * ButterflyNo Next GroupNo = 2 * GroupNo Next 'ビット反転 For i = 1 To NW – 1 j = 0: k = i : j1 = NW / 2 Do While k > 0 j = j + (k Mod 2) * j1 k = k ¥ 2 j1 = j1 ¥ 2 Loop If j > i Then wc = x(i): x(i) = x(j): x(j) = wc End If Next Exit Sub CalcuButterfly: If TableIndex < n1 Then Wt.x = cst(TableIndex) Wt.y = -cst(n1 - TableIndex) ElseIf TableIndex < n2 Then iw = TableIndex - n1 Wt.x = -cst(n1 - iw) Wt.y = -cst(iw) ElseIf TableIndex < n3 Then iw = TableIndex - n2 Wt.x = -cst(iw) Wt.y = -cst(iw) Else iw = TableIndex - n3 Wt.x = cst(n1 - iw) Wt.y = cst(iw) End If wc = ComplexSub(x(i), x(j)) '複素数 x(i), x(j) の引き算 x(i) = ComplexAdd(x(i), x(j)) '複素数 x(i), x(j) の足し算 x(j) = ComplexMul(wc, Wt) '複素数 wc, Wt のかけ算 Return End Sub

-28-

-29-

逆 FFT サブルーチン Sub FFTInvSub(NW As Integer, x() As ComplexDbl, cst() As Double) '*********************************************** '* x(0~nw-1) を 逆FFT する '* '* cst(i)=cos(2pai/nw*i)[i=0~nw/4]: コサイン表 '*********************************************** Dim r As Double Dim wc As ComplexDbl Dim k As Integer FFTSub NW, x(), cst() r = 1# / NW For k = 0 To NW – 1 x(k).x = r * x(k).x x(k).y = r * x(k).y Next For k = 1 To NW / 2 – 1 wc = x(k) x(k) = x(NW - k) x(NW - k) = wc Next End Sub

複素数の演算例 ' a+b 足し算 Function ComplexAdd(a as ComplexDbl, b as ComplexDbl) as ComplexDbl ComplexAdd.x = a.x + b.x ComplexAdd.y = a.y + b.y End Function ' a-b 引き算 Function ComplexSub(a as ComplexDbl, b as ComplexDbl) as ComplexDbl ComplexSub.x = a.x - b.x ComplexSub.y = a.y - b.y End Function ' a×b かけ算 Function ComplexMul(a as ComplexDbl, b as ComplexDbl) as ComplexDbl ComplexMul.x = a.x* b.x – a.y * b.y ComplexMul.y = a.x * b.y + a.y * b.x End Function ' a/b 割り算 Function ComplexDiv(a as ComplexDbl, b as ComplexDbl) as ComplexDbl On Error Resume Next ' b=0 のとき0による割り算エラーでプログラムが dim r As Double ' 停止しないための処置 r = b.x * b.x + b.y * b.y ComplexDiv.x = (a.x* b.x + a.y * b.y) / r ComplexDiv.y = (a.y * b.x - a.x * b.y) / r End Function ' exp(a) 指数関数 Public Function ComplexExp( a As ComplexDbl) As ComplexDbl Dim r As Double r = Exp(a.x) ComplexExp.x = r * Cos(a.y) ComplexExp.y = r * Sin(a.y) End Function 注1)ユーザ定義データ型ComplexDblは複素数を記憶するデータ型で定義文は以下のとおり Type ComplexDbl x as Double '実数部 y as Double '虚数部 End Type 注2)ユーザ定義関数 Laplacefunction() はComplexDbl型であり,ここに逆変換したい関数の計算手順を記述する.以下は 1/p(ステップ関数)の例である. Function Laplacefunction( p As ComplexDbl) As ComplexDbl Dim b as Double b=p.x * p.x + p.y * p.y Laplacefunction.x = p.x / b Laplacefunction.y = - p.y / b End Function