では最初に、バネマス系の動特性である2次遅れ系(2次遅れ要素)を、ステップ状の指令に対して時間応答させる、ステップ応答を確認してみましょう。図201は、1項の"ブロック線図の作成、ブロック線図から静特性と動特性を抽出する方法"で求めた、バネマス系のブロック線図です。
ブロック線図は、図201のような機械系を時間応答させたり、制御系(自動制御回路)を実時間で実行させたりする場合の設計図にもなります。私はブロック線図を、そのように使用しています。
計算を分かり易く(行い易く)する為、時間積分(1/S)を介す毎にパラメータ化し、一度に行う計算値に区切りを付けると良いでしょう。つまり、時間系列順に、加速度(dX2/dt2)、速度(dX/dt)、位置(X)をパラメータ化します。
計算機はパソコン、時間応答等の数値計算が行えるソフトウェアは様々存在しますが、今回は実時間で行う必要は無い為、最も一般的と思われるMs.エクセルを使用します。
図202に、Ms.エクセルを使用した、バネマス系の動特性である2次遅れ系のステップ応答計算例を示します。
図202を説明します。3行目、A列には経過時間を示します。先ず、計算周期(計算間隔)は0.001sとして行います。計算周期は大きくとも、今回計算するバネマス系の(動特性=2次遅れ系)の角固有周波数179.86rad/sの逆数0.00556sより小さくしなければ計算できません。この計算周期0.001sを行方向に積算して経過時間を生成します。B列には、力を入力します。図4に相当するステップ応答を計算する為、経過時間が0.009sまでは0、0.01s以降は10000kgfを入力します。C列からF列には粘性C、バネ係数K、質量M、重力の加速度gを示す定数を入力します。G列には加速度を、図201ブロック線図の通り、同時間(同行)内の力から粘性×速度とバネ係数×位置を減じた値にg/Mを乗じた値を演算します。H列には速度を、ここには時間積分が作用する為オイラー法に従って、1サンプル(1計算周期)前の速度に1サンプル前の加速度×計算周期0.001sを加算して求めます。オイラー法は、計算周期間は一定の積分対象(ここでは加速度)が作用するものとして時間積分する最も単純な数値計算法であり、計算周期が荒い程計算値に誤差を生じます。しかし、計算が単純な為計算機CPUの能力を温存するのに有効です。I列には位置を、H列と同様にオイラー法に従って、1サンプル(1計算周期)前の位置に1サンプル前の速度×計算周期0.001sを加算して求めます。K列では、入力 力fをバネ係数kで除して、単位を出力と同じ位置に合わせています。こうして生成した3行目(0.001s)を122行(0.12s)までコピーします。
図203に、図202のJ列を横(時間0~0.12s)軸にして、入力K列(青色の線)、出力L列(桃色の線)の時間応答結果を示します。併せて、計算周期(と積分時間)が このバネマス系の角固有周波数の逆数のおよそ1/10倍、1/50倍、1/100倍に相当する 0.0005s、0.0001s、0.00005sにおける場合の出力L列も示します。
オーバーシュートしたり、アンダーシュートしたりする時の絶対値のピークは、計算周期が小さい程小さくなっており、計算周期が0.0001s以下では小さくなる度合いが減少し一定のピーク値に収束しつつあります。これは、ステップ状の入力信号の序盤には高周波数成分が多く含まれており、計算周期が小さい(細かい)程 高周波数成分に対して演算誤差が生じ難くなる為です。
では次に、同じバネマス系の動特性である2次遅れ系(2次遅れ要素)を、正弦波状の指令に対して時間応答させてみましょう。最初は、角固有周波数179.86rad/sより小さい角周波数100rad/sの正弦波の指令fを入力してみましょう。
図204に、Ms.エクセルを使用した、バネマス系の動特性である2次遅れ系の正弦波状の入力に対する時間応答計算例を示します。図202に対して、力fの与え方が異なります。B列の12行目には、そこ(0.01s)から始まる100rad/s正弦波状の力を演算します。これを162行(0.16s)までコピーします。
図205に、図204のJ列を横(時間0.08~0.16s)軸にして、入力K列(青色の線)、出力L列(桃色の線)の時間応答結果を示します。併せて、計算周期(と積分時間)が このバネマス系の角固有周波数の逆数のおよそ1/10倍、1/50倍、1/100倍に相当する 0.0005s、0.0001s、0.00005sにおける出力L列も示します。
図203ステップ応答の場合と比較して、時間応答結果に計算周期毎の差異(誤差)が少なくなっています。これは、入力信号が一定の(角固有周波数より小さい)100rad/sの角周波数成分に限られる為です。
なお、本計算例では誤差が最小となる計算周期0.00001sの場合に、出力信号(の振幅β)と入力信号(の振幅α)との振幅比(ゲイン)β/αはおよそ1.32、入力信号から出力信号までに位相は23.7度遅れています。これらは、2次遅れ系のゲイン、位相の理論計算値とほぼ(小数点以下2桁まで)一致します。
<201>式~<204>式には、2次遅れ系のゲイン、位相の理論計算式を示します。ωnは角固有周波数(rad/s)、ζは減衰比(無次元)、ωは計算する角周波数(rad/s)を示します。この導入方法は、殆どの(自動制御に関する)専門書に記載されているので、ここでは割愛します。図5に示したバネマス系の2次遅れ要素の周波数特性線図(ボード)線図は、1項で求めたこのバネマス系の角固有周波数179.86rad/s、減衰比0.27を本式に適用して演算したものです。
続いて、角固有周波数179.86rad/sの正弦波の指令fを入力してみましょう。図204 B列の12行目に、そこ(0.01s)から始まる179.86rad/s正弦波状の力を演算します。これを202行(0.2s)までコピーします。
図206に、この時間応答結果を示します。併せて、計算周期(と積分時間)が このバネマス系の角固有周波数の逆数のおよそ1/10倍、1/50倍、1/100倍に相当する 0.0005s、0.0001s、0.00005sにおける出力L列も示します。
入力角周波数が100rad/sの場合と比較して、計算周期毎のゲイン演算誤差が増しています。計算周期が0.00001s時に、理論値1.83に対して、演算値は1.86です。
さらに、より高周波数 角固有周波数500rad/sの正弦波の指令fを入力してみましょう。図204 B列の12行目に、そこ(0.01s)から始まる500rad/s正弦波状の力を演算します。これを82行(0.08s)までコピーします。
図207に、この時間応答結果を示します。併せて、計算周期(と積分時間)が このバネマス系の角固有周波数の逆数のおよそ1/10倍、1/50倍、1/100倍に相当する 0.0005s、0.0001s、0.00005sにおける出力L列も示します。
入力角周波数が角固有周波数179.86rad/sの場合と比較して、さらに計算周期毎のゲイン演算誤差が増し、計算周期が0.0005s以上では位相も乱れています。計算周期が0.00001s時に、理論値0.14に対して、演算値は0.13です。
では、どのくらいの計算周期で計算を行うべきでしょうか?
一般的に計算周期は、(一次遅れ系では)時定数、(本例の2次遅れ系では)角固有周波数の逆数の「1/10程度をとれば大まかにみて妥当な解が得られる」と言われています。しかし、図205~図207の時間応答結果で示したように、本例の角固有周波数の逆数のおよそ1/10に相当する0.0005sで行った場合において、高周波数領域で演算誤差が目立っています。
ブロック線図の時間応答は、私の場合、サーボコントローラ(自動制御器)内で(入力値に作用させるデジタルフィルタ、制御補償要素、さらには機械系(制御対象)のシミュレータとして)演算することが多く、コントローラのCPUを温存する為に、基本的に演算周期は0.001sで行っています。そして、このように角固有周波数を要す部分に対しては、用途や角固有周波数の値に応じて、その部分だけ計算周期を小さく(細分化)する場合があります。例えば、今回のように角固有周波数が179.86rad/sの場合は、デジタルフィルタとして用いるのなら0.0001s、機械系のシミュレータとして用いるのなら(実機の制御に影響しない為)小さくせずそのまま0.001sで行います。いずれにしても、入力信号が高周波数領域成分を多く含む場合は誤差が大きくなりますが、サーボ(自動制御)演算において制御結果を支配(制御結果に強く影響)し易いのは角固有周波数より低周波数の領域である為、やみくもに計算周期を小さくする必要は無いと考えています。
今回は、バネマス系のブロック線図を時間応答させましたが、バネマス系に限らずブロック線図で表現できるものは機械系、電気系、制御系、それらを含めたシステムにおいても、同様に時間応答させることができます。
内容 | サーボの背景② 系の時間応答、系の動特性が有す周波数特性の確認方法 (ex.バネマス系(2次遅れ要素=2次系)) |
---|---|
Eメール | hydro-servo-k@ab.auone-net.jp |
作者 | サーボバカセ |
アップロード日 | 2020年5月24日 |