Scilab

減衰振動の特性計算

減衰振動の特性方程式

s^2 + 2ζω s + ω^2 = 0
振幅の減衰はexp(-ζω)t、振動周期はω √(1-ζ^2)

2次モデル

伝達関数多項式の係数を特性方程式の係数と比較することで、ζ、ωの解析解が得られる。

3次以上のモデル

多項式から代数的に根を求められるのは3次まで。カルダノの公式など利用可能だが困難。数値計算によれば、高次の多項式の根を求められる。

数値計算による手法

SciLabではdamp()で計算できる。
計算原理
1)多項式から極を計算する。
 多項式の係数よりコンパニオン行列を作成する。その固有値が極になる。
2)各極に対応する固有振動数、減衰係数を求める。
ω = |s|, ζ= -cos(<s)
ω = |ln(z)/T|, ζ= -cos(<ln(z))

sample
K1=7/16;
K2=1/16;
// H(z)=N(z)/D(z)
N=poly([0,-K1,K1+K2],'z','c');//c:係数指定
D=poly([1-K1,(K1+K2-2),1],'z','c');

//**************************************
//減衰振動の固有振動数(ω)、減衰係数(ζ)を計算
//**************************************
//(1) 線形システムを作成してから解析する方法
H=syslin('d',N/D);//離散時間伝達関数から線形システムを作成
[wn,z] = damp(H);

//(2) 伝達関数から解析する方法(ΔTを指定)
dt=1.0;
[wn,z] = damp(N/D,dt);

//**************************************
//ステップ応答
//**************************************
x=ones(1,100);
y=flts(x,H);
t=1:length(x);
plot(t,x,t,y);