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

ハーモニックバランス

ドキュメント内 2017年版PDF (ページ 148-152)

19 drawnow; //画面更新

20 xxmax(i)=max(xx(1, 250:300)); //xx(250,1)〜xx(300,1)の最大値

21 end

22 subplot(2,1,2); plot(om1, xxmax, "o");

23 xlabel("om"); ylabel("max x(t)");

24 xtitle("Response Curve");

25 save("vib_res.dat","om1","xxmax"); // vib-res2.sceで使うデータの保存

Code 3を実行すると,次のような結果が得られる.なお,最後に表示されるグラ

フを,共振曲線(resonance curve)というが,これは14.3.4p142で使う.

-4 -2 0 2 4 6 8

0 20 40 60 80 100

x(t)

t Waveform (om = 0.3)

f(t) x(t)

-4 -2 0 2 4 6 8

0 20 40 60 80 100

x(t)

t Waveform (om = 1.0)

f(t) x(t)

-4 -2 0 2 4 6 8

0 20 40 60 80 100

x(t)

t Waveform (om = 1.5)

f(t) x(t)

まず,(1)波形の細かさだが,入力f(t) =Pcosωtの振動数ωを増加させている のだから,当然,f(t)の山と谷の間隔は狭くなる.x(t)の間隔も似たようなもので,

見た感じ,x(t)とf(t)は同じ振動数に見える.次に,(2)応答x(t)の振幅Rの増 減だが,単調ではない.いったん5倍程度に逹してから,減少に転じている.最後 に,(3)入力f(t)に対するx(t)の遅れϕだが,ωが小さいとき(om=0.3)は,f(t) とx(t)は重なっている.ところが,ωが増えると,f(t)に対してx(t)が遅れ始める (x(t)が相対的に右にずれる).さらにωを増やすと(om=1.5),f(t)に対するx(t) の遅れは,半周期程度に逹する(f(t)の山とx(t)の谷が重なる).

以上の観察をグラフにすると,だいたい次のようになる.この2枚のグラフを,周

14.4 周波数応答のグラフ(概形)

波数応答(frequency response)またはボード線図(Bode diagram)という.共振現 象の特徴は,この2枚のグラフによってもれなく説明できる.

14.3. ハーモニックバランス 141

14.3.1 解析モデルの簡略化

調和入力を受ける強制振動系m¨x+cx˙+kx=Pcosωtは,章末A14p147の 方法を使うと,振動波形を相似に保ったまま,次のように変形できる.

¨

x+ 2ζx˙+x=F(t) =AcosΩt, A= P n2 =P

k, = ω ωn

(14.12) ζωnは表13.2p129の減衰比と固有振動数,Ωは入力振動数ωの固有振動数ωn

の比である.以下,簡略化した(14.12)を使って,周波数応答を計算する.

14.3.2 定常応答の数式表現

実習14.2p139の(1)でも観察したが,一般に,次の物理法則が成立する15)

力学法則14.1 (調和応答の性質) 入力が三角関数ならば,定常応答も三角関数16).振

動数も同じ.

したがって,入力AcosΩtを受ける強制振動系(14.12)の定常応答β(t)は,振動 数の三角関数となる.応答振幅Rと位相差ϕを含めて,式で書くと,

β(t) =Rcos(Ωt+ϕ) (14.13)

となる.ここで,ハーモニックバランスを楽にする工夫として,(14.13)を加法定理で,

β(t) = (Rcosϕ

| {z }

a1

) cosΩt+ (−Rsinϕ

| {z }

a2

) sinΩt

と展開した,

β(t) =a1cosΩt+a2sinΩt (14.14) を使うことにする.元に戻すには,

a21+a22=R2(cos2ϕ+ sin2ϕ) =R2R=√ a21+a22,

−a2

a1

= Rsinϕ

Rcosϕ = tanϕϕ= tan1−a2

a1

=tan1 a2

a1

(14.15) とすればよい.tan−1 はtanの逆関数である17)

14.3.3 ハーモニックバランス法

(14.14)で仮定したβ(t) =a1cosΩt+a2sinΩtが,強制振動系(14.12)の解にな るように,a1, a2 を調整してやれば,定常応答β(t)の数式表現が求まる.

(14.14)のβ(t)とその時間微分,

15)この法則は数学の定理としても導ける.

17)正確には,(2.4)p13 atan を使ってϕ=atan (a1, a2)である.

β(t) =˙ −a1sinΩt+a2cosΩt, β(t) =¨ −a12cosΩt−a22sinΩt を(14.12)のx,x,˙ ¨xに代入すると,

(−a12cosΩt−a22sinΩt) + 2ζ(−a1sinΩt+a2cosΩt)

+ (a1cosΩt+a2sinΩt) =AcosΩt となる.これに,ハーモニックバランス法(三角関数釣合い法)を適用する.全部左辺 へ移項して,cosΩtとsinΩtをくくり出すと

(−a12+ 2ζa2+a1−A) cosΩt + (−a222ζa1+a2) sinΩt= 0 となる.この式が任意の時刻tで成立する(釣合う)には,cosΩtとsinΩtの係数が 常に0でなければならない.ゆえに,

−a12+ 2ζa2+a1−A= 0, −a222ζa1+a2= 0

という2元2連立方程式が導かれる.以上の操作をハーモニックバランスという.

未知数a1, a2を求めるため,ベクトル表示すると,

1−Ω2 2ζΩ

−2ζΩ 1−Ω2

a1

a2

=

A 0

より

a1

a2

= 1

1−Ω2 −2ζΩ 2ζΩ 1−Ω2

A 0

= A

1−Ω2 2ζΩ

となる.ただし= (1−Ω2)2+ (2ζΩ)2は行列式である.

(14.15)p141で元に戻すと,

R=√

a21+a22=

A2(1−Ω2)2+A2(2ζΩ)2

2 =

A2

2 = A

√∆,

ϕ=tan1a2

a1

=tan1 A(2ζΩ)

A(1−Ω2) =tan1 2ζΩ

1−Ω2 (14.16) となる.これらが,図14.4p140でスケッチした応答振幅Rと,位相差ϕのグラフの 数式表現である.(14.16)のRϕを用いて,¨x+ 2ζx˙+x=AcosΩtの定常応答は,

β(t) =Rcos(Ωt+ϕ) = A

√(1−Ω2)2+ (2ζΩ)2cos (

Ωt−tan1 2ζΩ 1−Ω2

)

(14.17) のように数式表現できる.目標達成!

14.3.4 共振曲線

Code 3で最後に出てくるグラフ,

14.3. ハーモニックバランス 143

1 1.5 2 2.5 3 3.5 4 4.5 5

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

max x(t)

om Response Curve

を,共振曲線と呼んだ.作り方を,Code 3の抜粋で説明しよう.

om1 = linspace (0.2,1.6,15); //外力周波数0.2〜1.6を15等分

for i = 1:15 //i=1,2,…,15を順に繰り返し

om = om1(i); //i番めの外力周波数を代入

xx = ode(x0, 0, tt , model); //振動波形を求める :

xxmax(i)=max(1,xx(250:300)); //xx(1,250)〜xx(1,300)の最大値 end //i<15なら9行目に戻る

plot(om1, xxmax); //横を周波数,縦を振幅としてプロット

抜粋の3行目で,ωに0.2,0.3,· · ·,1.6が順に代入される.4行目で,各ωでの振動 波形が計算される.6行目で,振動波形が定常応答になった後半部分を抜き出し,その 最大値を振幅xxmaxのi番目に代入.8行目で,(振動数,振幅)をプロットしてい る.これが共振曲線の実験的な求め方である18)

次に,(14.17)p142からβ(t)の振幅を求めると,

max

t β(t) = max

t Rcos(Ωt+ϕ) =R= A

√(1−Ω2)2+ (2ζΩ)2 (14.18)

となる.これが共振曲線の数式表現である.

実習14.3 (共振曲線) Code 4を実行し,Code 3で実験的に求めた振幅maxx(t)

と,(14.18)で数式表現された振幅Rを,重ねて比較せよ.

Code 4 “vib-res2.sce” (Scilab)

1 clear; clf();

2 load("vib_res.dat","om1","xxmax"); // vib-res.sceで保存したデータ

3 m=1; c=0.2; k=1; P=1;

4 zeta = c/( 2*sqrt(m*k) ); // 3.1

5 omn = sqrt(k/m); // 3.1

6 function y = K(Om)

7 global zeta;

8 y=1/sqrt((1-Om^2)^2 +(2*zeta*Om)^2);

9 endfunction

10 om2 = linspace(0.2,1.6,100);

11 A = P/(m*omn^2);

12 for i=1:100

13 R(i) = A*K(om2(i)/omn);

14 end

15 plot(om1, xxmax,"o", om2, R,"-" );

16 xlabel("om"); ylabel("Amplitude");

17 xtitle("Response Curve (o max(x); - R)"); xgrid();

18 g=gca(); g.data_bounds=[0.2,0;1.6,6]; xgrid(); //座標軸の設定

Code 4を実行すると,図14.5p144の結果が得られる.

18)この例は,数値実験だが.

0 1 2 3 4 5 6 7

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

Amplitude

om Response Curve

max x(t) R

14.5 共振曲線

ドキュメント内 2017年版PDF (ページ 148-152)