サーボの実践トレーニング
1.モータのトルク制御実験

 ここでは、サーボコントロールの要であるモータのトルクを自動制御します(モータをサーボ化します)。普段はモータメーカに委ねている機能ですが、「自分ならどう制御するか?」を自問しながら実践しましょう。
 机上の(シミュレータ上の)DCロータリーモータ実験装置に対して、疑似実験を重ね 実験結果を確認しながら、トルク制御機能を構築していきます。
 まず、トルクをオープンループで可能な限り精度良く制御します。
 つぎに、トルク(に比例する電流)をフィードバックしてクローズドループで制御します。この時 先のトルクオープンループ制御部は、クローズドループ制御に対して フィードフォワード補償として機能します。
 さいごに、角速度をフィードバックして、電圧(逆起電圧)の(フィードフォワード)補償を追加し、トルク制御機能を完成させます。
 では順番に考えて行きましょう!

サーボの実践トレーニング_DCモータトルク制御実験装置

サーボの実践トレーニング DCモータトルク制御実験装置

目次

                     
1.1 モータトルクオープンループ制御実験
                     
サーボの実践トレーニング_DCモータトルク オープンループ制御実験装置

                     
1.2 モータトルクフィードバックループ 
                制御実験 

サーボの実践トレーニング_DCモータトルク フィードバックループ制御実験装置
                     
1.3 モータトルク 最終形 制御実験  
                     
サーボの実践トレーニング_DCモータトルク制御実験装置



1.1 モータトルクオープンループ制御実験

 1.1a 制御実験装置             
 1.1b 制御実験装置ブロック線図       
 1.1c ブロック線図の時間応答計算方法    
 1.1d モータトルクオープン制御実験     

<1.1a モータトルクオープン制御実験装置>
 図1.1に、モータトルクオープン制御実験装置を示します。

サーボの実践トレーニング_DCモータトルク オープンループ制御実験装置
図1.1 モータトルクオープンループ制御実験装置

 図1.1は、DC駆動の(整流子、ブラシ付き 永久磁石をステータ側、コイルをロータ側に配備した)ロータリーモータを、160Vの直流電源をトランジスタTR1,TR2およびTR3,TR4をそれぞれセットで(パルス幅を変調させて)スィッチングすることで、コイルに所定の正負方向の電流を流し、電流に比例する正逆方向のトルクを発生させる実験装置を示します。
 各トランジスタに付随するダイオードは、正逆スイッチング反転時にコイルに残存する誘導電流(の前スイッチング方向の残量)を逆流(減少)させる通路として機能します。
 回転軸は固定したり、(図示しない仕掛けによって)角速度を強制的に発生させたりできるようになっています。現段階(トルクオープンループ制御実験段階)では固定しています。
 回転軸の角度を検出するエンコーダ、コイルに作用する電流を検出する電流センサが装備されています。これらは現段階では使用しません。
 デジタル演算器は2μs間隔で、数値演算し接点信号を出力することが可能です。各(4点の)接点信号は(詳細は省略する)ベースドライブ回路を経て、各(4個)のトランジスタにベース電流を与え(トランジスタを駆動し)ます。
 また、デジタル演算器ではトルクオープンループ制御用の、0~1の指令信号に沿ったパルス幅変調指令を演算します。例えば 図1.2に示すように、指令信号が0の時は終始OFF、1の時は終始ON、その間は数値に応じてパルス周期のON時間が調整できるように演算します。それらのパルス信号に同期させて接点信号を出力しトランジスタのベース電流を駆動します、正側のトルクを制御する場合はトランジスタTR1とTR2を、負側のトルクを制御する場合はトランジスタTR3とTR4を駆動します。 
 実験装置の各構成要素の物理量は表1.1に示します。
 このタイプの(DCブラシ付き)モータは、コイルが回転するため慣性モーメントが大きくなったり、定期的なブラシ交換が必要になったりし、大容量(高トルク)化やサーボ(モータ)化には不向きと考えられますが、インバータにより交流を発生させる必要がないなど、サーボ化が比較的容易なため、本書の意に沿って機械のサーボ技術を基本から実践して学ぶには適すると考え、採用しています。
 それでは、図1.1および図1.2が示すDCロータリーモータのトルクオープンループ制御実験装置のブロック線図を描いてみてください。私が描いたものは、図1.3に示します。ブロック線図は、自動制御装置(サーボコントローラ)のソフトウェアを実装したり、機械(シミュレータ)を動的および静的に動作させたりする(計算方法や計算ソフトには依存しない万国 万人に共通の)設計図になります。 

サーボの実践トレーニング_DCモータトルク制御用パルス幅変調指令
図1.2 DCモータトルク制御用パルス幅変調指令

表1.1 実験装置 物理量
要素パラメータ物理量
*****
機械(シミュレータ)
*****
DCロータリーモータ
コイル抵抗Rm0.16(Ω)
コイルインダクタンスLm1.92×10-4(H)
トルク定数
逆起電力係数
Km0.745(Nm/A)
     (V・s/rad)
最大トルクTmmax350(Nm)
定格トルクTmrat100(Nm)
ロータ慣性モーメントJm0.05(kgm訂正1
ロータ粘性抵抗係数Dm0.03(Nm・s/rad)
ロータ摩擦トルクfm1.5(Nm)
エンコーダ分解能θRES9.614×10-5rad(16bit)
電流センサ分解能RES7.65×10-3(A)
電流センサ応答性(一次近似 時定数)Cur20(μs)
電気・電子回路
直流電源電圧DC160(V)
トランジスタON/OFF応答(遅延)時間TLtraON/OFF各遅延1(μs)(注1)
モータ回転軸に接続する機械
回転軸の(カップリング主体の)捻り剛性sht234×10(Nm/rad)
*****
自動制御器(サーボコントローラ)
*****
パルス発生器
PWM周期PWM100(μs)
(注1)立ち上がりおよび下降時間は省略し、その分ON/OFF時の遅延時間を多めに考慮しています。

 23年5月22日 訂正1 
 内容:慣性モーメントの単位をkgmsからkgmに変更
   (それに伴い値を換算しました。)
 理由:ブロック線図(図1.3および図1.13)に物理用が不適合なため
(先(速度制御のストーリー)を考案中に気が付きました。申し訳ございません。この変更によって、モータが回転動作する場合の実験結果(図1.20、図1.21、図1.24、図1.25)が変わります。これらも合わせて変更し(差し替え)ました。)

<1.1b モータトルクオープン制御実験装置・ブロック線図>

サーボの実践トレーニング_DCモータトルク オープンループ制御実験装置ブロック線図
図1.3 モータトルクオープンループ制御実験装置ブロック線図

 図1.3は、図1.1をブロック線図化したものです。機能や装置をどのように捉えブロック線図化するかは、人(毎の感性)により異なると思います。私(サーボバカセ)はこのように描きます。
 PWM発生器は、周期TPWMの複数の正弦波信号を利用して、トルク指令とその正/逆符号に基づいてそれら信号の位相をずらし正領域の積を得ることで、パルス幅が可変化するようにしています。
 演算および出力周期は2μsにしています。理由はモータコイルに流れる電流の応答性(電気的時定数)が(L/R=)1.2msであり、これを(デジタル)制御するにはその1/10前後の演算周期100μsが必要であり、そこで演算したトルク指令(∝電流指令)をトランジスタをON/OFFさせるパルス幅変調パターン数(分解能)は最低でも(100/2=)50得たいからです。
 機械(シミュレータ)は主に、モータの電流応答部とロータの運動部から構成されています。
 それぞれの描き方は、サーボの習得ページ(以下)を参考にしてください。
(ただし、ロータの運動部は角座標を用いていますが、参考例は直交座標系を用いています。そのぐらいの違いはあります。)

★微分方程式を基に(例として1次遅れ要素(1次系)
 =ローパスフィルタを)誘導する場合は
 ここをクリックしてください!

★運動力学を基に最も自然に(例としてバネマス系
 =2次遅れ要素(2次系)を)誘導する場合は
 ここをクリックしてください!

 なお、逆起電力係数はトルク乗数(K)と同じです。同じでなければ、物理的に矛盾するからです。モータから外部へ与える(ロータを回転させる)機械的な仕事率は、モータ駆動トルクをT、角速度をω(rad/s)とすれば、T・ω であり、モータ内部で消費する電気的な仕事率は、逆起電圧をV、電流をIとすれば、V・Iであり、 この2つの仕事率は等しくなるはずだからです。
 また、構造を端折った 強制角速度発生装置を描いており、この先 モータが回転動作中においてもきちんとトルクが制御できるか(否か)を確認できるようにしています。現在は、強制角速度指令が0なので、モータ軸はカップリングを介して固定されてい(ることを示してい)ます。
 演算および出力周期は1μsにしています。この機械はその構成要素内で最も速い電流応答部の時定数(1.2ms)の1/10前後の演算周期100μsが本来必要とされますが、2μsのPWM発生器とトランジスタから成るスィッチング素子の遅れ1μsに反応させるためにそうしています。

<1.1c ブロック線図の時間応答計算方法>
 つぎは 図1.3ブロック線図を時間応答させますが、そのためには計算機とその中に数値計算が行えるソフトウェアがあれば基本的に可能です。計算機をパソコンとすれば、①C言語などのプログラミング言語を使用して行う方法、②Ms.エクセルなど汎用表計算ソフトを使用して行う方法、③MATLAB-Simulinkなど制御系専用のブロック線図・時間シミュレーションソフトを使用して行う方法があります。
 私は先ず③の方法で行い、考えている制御が機能するか否か(なるべく迅速に)確認します。そして機能することが確認できたら、制御器に実装するプログラミングを兼ねて①の方法で再度行います。しかし シミュレーションだけを行う仕事なら③の方法でのみ行ったり、より急ぎで制御プログラミングを行う場合は①の方法でのみ行ったりもします。
 また、この”サーボの習得と実践のHP”において、①や③の方法が使用できない(使用するパソコン環境を有していない)読者用に、②Ms.エクセルを使用する方法で行ってみました。
(参考: ★系の時間応答、
      系の動特性が有す周波数特性の確認方法
      ex.バネマス系(2次遅れ要素=2次系)
      はここをクリックしてください!
 )
 ①~③それぞれの方法には一長があります。表1.2を参照ください。  

表1.2 ブロック線図を時間応答計算させる方法
ブロック線図を時間応答計算させる方法 **長所**
①C言語など
 プログラミング言語を使用して行う方法
プログラミング
 の小回りの良さ
・制御器実装
 の適用性
・実行の速さ
②Ms.エクセルなど
 汎用表計算ソフトを使用して行う方法
・扱いの良さ
誰でもどこでも
 すぐ使える)
③MATLAB-Simulinkなど
 制御系専用ブロック線図
 -時間シミュレーション
 ソフトを使用して行う方法
・線図描写
 の迅速さ
・実行の容易さ

 今回はまず③の方法で行い(図1.3を専用のソフトウェアに書き写し)、全体の最後に一部①で行い(プログラムサンプルを示し)ます。
 いずれの方法で行うにしても、図1.3ブロック線図がプログラミングの設計図になります。私は、ブロック線図のみを見ながらログラミングを行います。どの手法においても、ブロック線図の”まんま”プログラミングすれば良い(感覚)です。
 ブロック線図内で小刻みに物理演算量をパラメータ化している理由は、①や②の方法で行う場合に、計算し易いようにそこで一旦計算を区切るためです。
 つぎは、いよいよ図1.3に基づいて(PWM発生器を使用して、機械(シミュレータ)を駆動し)実験してみましょう!。

<1.1d モータトルクオープン制御実験>
<電気的時定数>
 実験はじめに、モータにおける電気的時定数と機械的時定数を実験を通して確認してみましょう。
 まず、電気的な時定数に関して確認しましょう。
 図1.3において、トルク指令を実験(計算)開始時(0s時)に、0.01s後ににしました。そうすると 正側PWM指令は0s~0.01sは、0.01s以降はになります。
 つまり モータ軸を固定した状態でDC電源電圧をそのまま(非パルス状に)正方向に作用(ON)させ解除(OFF)させます。この時のトルク信号(kN)応答波形を図1.4に示します。

サーボの実践トレーニング_DCモータトルクステップ応答
図1.4 モータトルク正方向ON/OFF応答実験結果

 図1.4に示されるトルク信号は、(電気的)時定数Tの一次遅れ応答を示します。
 なお 図1.3のトルク応答部分は、電気的時定数Tを含んで図1.5に示すように伝達関数で表現することができます。

サーボの実践トレーニング_DCモータトルク応答伝達関数
図1.5 モータトルク応答伝達関数

 一次遅れ要素は、図1.4に示すように指令をONさせた後、時定数T(s)経過後に指令のおよそ63%、時定数2・T(s)経過後に指令のおよそ86%、時定数3・T(s)経過後に指令のおよそ95%、時定数6.5・T(s)経過後に指令のおよそ99.8%応答します。
 ”時定数は100%応答時間に対してこのように短い”という感覚を身につけておくとよいでしょう。
 いずれにしても トルク応答は電圧ON/OFFによって、このような時間遅れの特性を有して上下します。この特性を上手く利用してトルクを制御します。つまり ON時間とOFF時間の割合を調整して、それを一定時間(一周期)で繰り返すことによって、最大値と最小値の間で所定の(トルク指令に応じた)トルクを定常化させ発生させます。
 この時、時定数Tが本例のように1.2msの場合は、周期はそれ以下で およそ1/10程度が目安になります。これがパルス幅変調(PWM)制御の作用原理です。

<機械的時定数>
 つぎに、機械的な時定数に関して確認しましょう。
 図1.3において、図1.6に示すように 外部作用トルクの結線を外し、先と同様に トルク指令を実験(計算)開始時(0s時)に、0.015s後ににしました。そうすると 正側PWM指令は0s~0.015sは、0.015s以降はになります。

サーボの実践トレーニング_DCモータトルク オープンループ制御実験装置ブロック線図_回転軸フリー
図1.6 モータ回転軸をフリー化

 つまり モータ軸をフリーにした状態でDC電源電圧をそのまま(非パルス状に)正方向に作用(ON)させ解除(OFF)させます。この時のトルク信号(kN)と角速度信号の応答波形を図1.7(①)に示します。  

サーボの実践トレーニング_DCモータ角速度ステップ応答
図1.7 モータ角速度正方向ON/OFF応答実験結果

  図1.7には、モータに粘性抵抗トルクと摩擦トルクが無い場合(②)と、さらに図1.8に示すように(定義上の)機械的時定数Tを含んで、電気的時定数の影響を割愛した場合の伝達関数を応答させた場合の結果(③)をも併示します。

サーボの実践トレーニング_DCモータ角速度応答伝達関数、機械的時定数
図1.8 機械的時定数を使用したモータ角速度応答伝達関数

 モータ単体の粘性抵抗トルクや摩擦トルクは小さいため ①と②はほぼ同じ結果を示しますが、③は①より遅く安定した(時定数Tの)一次遅れ応答を示します。(①は電気的な特性を含み、ほぼ2次系の挙動を示しています。)
 しかし、①~③いずれの応答もさほど意味を有す特性は示しません(サーボバカセはそう感じています)。
 その理由は2つあり、
 1つは モータ軸に何も接続せずに使用することはなく 実際には外部作用トルクが作用し、実質的な慣性モーメントはより増大化するため(そうなれば応答性はその程度により低下し、この応答は”絵に描いた餅”になるから)、
 もう1つは 誘導起電圧に伴う速度フィードバックラインは(この先)トルク制御系構築の一環で誘導起電圧が補償されると実質的な作用が消滅するため(この応答はトルクがきちんとサーボ化された後では無効だから) です。
 サーボモータのカタログにはよく、電気的時定数と機械的時定数が記載されています。電気的時定数は基幹のトルク応答性の目安になるため比較的に重視していますが、機械的時定数は重視していません。その代わり、ロータの慣性モーメントを重視しています。

<モータトルクオープンループ制御>
 つぎに 本題の、モータトルクオープンループ制御機能を確認しましょう。
 図1.3において、外部作用トルクの結線は元に戻し(接続し)、先と同様に トルク指令を実験(計算)開始時(0s時)に0.4、0.01s後ににしました。そうすると 正側PWM指令は0s~0.01sは1周期100μsの内40μs間が1(60μs間が0)、0.01s以降はになります。    
 この時のトルク応答結果を図1.9に示します。

サーボの実践トレーニング_トルク指令0.6におけるトルク応答
図1.9 トルク指令0.6におけるトルク応答

 図1.9では、トルクがおよそ この実験装置の最大発生トルク(否許容トルク)745Nmの0.4倍を示す298Nm発生しています。
 図1.9下側の図に示されるように、DC電源電圧がPWM周期100μsの内40μs間ON(60μs間OFF)することにより、トルクは小刻みに振動しながら ほぼ298Nmに定常化しています。
 この作用をより分かり易く示すために、敢えてPWM周期を100から500μsに大きくした場合の同トルク応答結果を図1.10に示します。

サーボの実践トレーニング_トルク指令0.6、PWM周期500μsにおけるトルク応答
図1.10 トルク指令0.6、PWM周期500μsにおけるトルク応答

 図1.10下側の図に示されるように、DC電源電圧がPWM周期500μsの内200μs間ON(300μs間OFF)すると、トルクは298Nmを鋏み やや大刻みに振動します。概ねこの振動状態で定常化しているとはいえ、これではトルクを制御できているとは言い難いと思われます。
 この実験を通して最終的に トルク指令に物理量を持たせるべく、トルク指令(0~±1)信号をTr0_1、トルク指令(Nm)をTrefとし、Tr0_1をTrefで与えれば、式1.1のようになります。

 r0_1=1.3423×10-3・Tref <式1.1>

 図1.11には、式1.1を使用してトルク指令Trefを緩やかに0~350Nm~-350Nm~0と変化させた場合のトルク応答結果を示します。  

サーボの実践トレーニング_トルク指令0~350~-350~0Nmスウィープ時のトルク応答
図1.11 トルクオープンループ制御時の
      トルク指令0~350~-350~0Nm変化時のトルク応答
  

 これで、モータトルクのオープンループ制御は完成です。次項では、トルクをより精度よく応答良く制御するためにフィードバック補償を追加します。

1.2 モータトルクフィードバックループ制御実験

 1.2a 制御実験装置             
 1.2b 制御実験装置ブロック線図       
 1.2c 安定なフィードバックゲインの決定   
 1.2d モータトルクフィードバック制御実験  

<1.2a 制御実験装置>
 図1.12に、モータトルクフィードバック制御実験装置を示します。

サーボの実践トレーニング_DCモータトルク フィードバックループ制御実験装置
図1.12 モータトルク フィードバックループ制御実験装置

 図1.12には、トルクオープンループ制御実験装置(図1.1)に対して、トルク制御器を追設しました。トルク制御器には 上位制御器からトルク指令Tref(Nm)と 実験装置から電流信号(A)が入力され、トルク制御器からは PWM制御器にトルク指令Tr0_1(0~±1信号)を出力します。
 演算周期および入出力周期は100μsです。トルクの基幹応答性を示す電気的時定数T(=1.2ms)に対して、その1/10程度を目安として決定しました。

<1.2b 制御実験装置ブロック線図>
 図1.13に、モータトルクフィードバック制御実験装置ブロック線図を示します。

サーボの実践トレーニング_DCモータトルク フィードバックループ制御実験装置ブロック線図
図1.13 モータトルク フィードバックループ制御実験装置ブロック線図

 図1.13には トルクオープンループ制御実験装置ブロック線図(図1.3)に対して、トルク制御器ブロック線図を追設しました。
 トルク制御器は主に、フィードフォワード補償器とフィードバック比例補償器および積分補償器で構成されています。
 フィードフォワード補償器を構成するトルクフィードフォワードゲインKff_torqueは、トルクオープンループ制御時の数式(式1.1)の値1.3423×10-3です。
 上位制御器から入力するトルク指令Trefが過度応答成分を含む場合に、それに反応して電圧が飽和することを防ぐために、Trefに対して時定数T(=200μs)のローパスフィルタ(一次遅れ要素)を介したトルク指令Tref_f(Nm)を用いています。
 なお、トルク制御器では 演算結果が-1~1の範囲内でのみ有効なため、PWM制御器に出力するトルク指令Tr0_1(0~±1信号)は、念のため 演算結果の-1~1以外はカットする制限器を介して決定するようにしています。

<1.2c 安定なフィードバックゲインの決定>
 では、ここでの主役(主機能)であるトルクフィードバック比例補償ゲインKp_torqueを決定するプロセスを踏みます。
 トルクフィードバック比例補償ループのブロック線図を、PWM制御部分を比例要素で表現・整理して図1.14に示します。

サーボの実践トレーニング_DCモータトルク フィードバックループ制御実験装置伝達関数
図1.14 モータトルクフィードバック比例補償ループのブロック線図

 図1.14では、トルク偏差(トルク指令-トルク信号)Xは、比例定数4つと 電流の応答性および電流センサの応答性を示す一次遅れ要素2つの積を経てトルク信号Yに一巡して到達しています。
 まず このX→Y間 一巡伝達関数の周波数特性線図を作成します。 Ms.エクセルを用いて作成してみましょう。
 ★古典制御理論上
  安定/不安定を見極める考え方は
  ここを参考にしてください!

 ★サーボの安定/不安定判断用
  一巡伝達関数の周波数特性線図(ボード線図)
  MS.エクセルを使用して作成する方法は
  ここを参考にしてください!


 比例補償ゲインKp_torqueをとりあえず1とした場合のX→Y間の一巡伝達関数の周波数特性線図を図1.15に示します。

サーボの実践トレーニング_DCモータトルクフィードバック比例補償一巡伝達関数周波数特性線図
図1.15 モータトルクフィードバック比例補償一巡伝達関数・周波数特性線図

 図1.15では、示した角周波数領域から推測する限り位相余裕は10度前後しか確保出来ない(極不安定な)ことがわかります。(古典制御理論上)安定の目安である位相余裕65度を得るためには、ゲインを暫定の1から 1/21.834に下げる必要があります。
 つまり、安定な比例補償ゲインKp_torqueは、(1/21.834=)0.045程度ということになります。
 わざわざ一巡伝達関数の周波数特性線図を描画し位相余裕を算出せずとも、比例ゲインは小さな(安定で安全な)値から徐々に大きくすべく実験的に調整すれば良いのでは?と思われるかもしれませんが、このプロセスを踏むことで、描いている制御系(ブロック線図)の妥当性が確認できます。
 扱う物理単位が一箇所でも間違えば、今後構築する制御性に支障が生じるため、実験を経て確認・確定した比例補償ゲインが算出値前後であることを確認できれば、比例ゲインが適当であることのみならず、今までの検討が全て妥当であることも実証されたことになるので、安心感が得られます。いわば、中間自己チェックのような役割を果たします。

<1.2d モータトルクフィードバック制御実験>
<実験1>
 では 実験してみましょう。最初は、以下の条件でトルクを制御してみます。トルク指令はステップ状に300(Nm)とします。
 フィードフォワードゲイン  Kff_torque=1.3423×10-3 
 フィードバック比例補償ゲインKp_torque=0.045(位相余裕から算出した値のまま)
 フィードバック積分補償ゲインKi_torque=0

 実験結果を図1.16に示します。本来、予め理論に基づいて比例ゲインを算出しているとは言え 間違いも生じうるので、小さな比例ゲインから徐々により大きく追い込みますが、ここは机上の(架空の)実験なのでいきなり行います。これも机上実験の強みです。失敗しても機械を壊すことがないので 思い切って実験できます。実際には怖くてできないような試み(制御補償上の冒険)も行うことができるため、新しい制御補償の誕生につながることもあります。

サーボの実践トレーニング_DCモータトルクステップ応答(フィードバック比例補償G0.045+フィードフォワード補償1.3423eー3)
図1.16 モータトルク制御実験1結果
ff_torque=1.3423×10-3、Kp_torque=0.045、Ki_torque=0

 図1.16では トルクは全体的に安定していますが、トルク立ち上がり時直後と下降時直後にやや不安定さが見られます。理由はここで 応答性が(トルク制御周期に対して)桁違いに速く遅延要素を含んだトランジスタが頻繁に反応しているため、および 図1.15に示した一巡伝達関数はこの部分の影響を線形化(し無視)した図1.14に基づいているためです。フィードバック比例補償ゲインは下げた方が良さそうです。
 また トルクオープンループ制御時と比較して格段に応答性が向上していますが、理由はトルク立ち上がり時に実作用電圧が大きくなっている(トルク下降時には、負側の電圧が作用している)ためです。
 実作用電圧は、実際には正逆電圧のパルス幅の濃薄度合いでしか分りませんが、図1.16下段に示すように電流値に抵抗と位相進み補償{(1+TS)/(1+0.0001S)}を乗じると、その仮想上の姿が連続的に現われます。

<実験2>  
 つぎに、先のトルク制御実験結果1(図16)に対して、フィードバック比例補償ゲインKp_torqueを0.015に下げた場合の実験結果を図1.17(実験結果2の①)に示します。
 図1.17には、フィードバック比例および積分補償を行った場合(②)、フィードバック比例補償のみを行った場合(③)、フィードフォワード補償のみを行った場合(④)、フィードフォワード補償とフィードバック比例および積分補償を行った場合(⑤)も比較すべく併せて示します。

サーボの実践トレーニング_DCモータトルクステップ応答(ff,fb比例、積分補償作用比較)
図1.17 モータトルク制御実験2結果
① Kff_torque=1.3423×10-3、Kp_torque=0.015、Ki_torque=0
② Kff_torque=0          、Kp_torque=0.015、Ki_torque=5
③ Kff_torque=0          、Kp_torque=0.015、Ki_torque=0
④ Kff_torque=1.3423×10-3、Kp_torque=0.   、Ki_torque=0
⑤ Kff_torque=1.3423×10-3、Kp_torque=0.015、Ki_torque=5

 図1.17では フィードフォワード補償とフィードバック比例補償を行った①と、フィードバック比例補償とフィードバック積分補償を行った②が、応答性、精度、安定性に関してほぼ同等の結果を示しています。それなら 3つの補償を併用すれば良いのですが、フィードフォワード補償とフィードバック積分補償はトルク偏差(トルク指令-トルク信号)を伴うトルク立ち上がりや下降過程では互いの偏差修復作用が阻害し合う(ケンカする)副作用が生じるため、併用は条件付きで行います(下記)。
 フィードバック比例補償のみを行った③は、応答性と安定性は良好ですが、(定常)精度が低下しています。理由は 図1.13ブロック線図に示すように 電流が積分要素を介さずに発生しているためです。(速度も同様です。一方で位置は積分要素を介して発生するため、摩擦や外乱荷重が影響しない限りフィードバック比例補償のみでも精度は確保できます。)
 フィードフォワード補償のみを行った④は、安定性と精度は良好ですが応答性が低下しています。理由は 先に述べた通りですが、トルク指令にローパスフィルタを作用させているため オープンループ制御時に対してさらに低下しています。
 図1.18には、モータトルク フィードバック比例補償 および フィードバック比例・積分補償一巡伝達関数・周波数特性線図を示します。
 ②が③に対してフィードバック積分補償を追加しても安定性を崩さない理由は、図1.18に示す通り、積分補償(ゲインKi_torque=5)を加えても、一巡伝達関数-周波数特性線図上の位相余裕は殆ど変化しないためです。積分補償を加えると、位相は低周波数領域でより遅れますが、位相余裕を判断する25000rad/s付近のおよそ-115度遅れる領域では変わりません(より遅れることはありません)。
 また ②が③に対して精度が向上した理由は、図1.18に示す通り、低周波数領域で②が③よりゲインが増加しているためです。

サーボの実践トレーニング_DCモータトルクフィードバック比例および比例・積分補償一巡伝達関数周波数特性線図
図1.18 モータトルク フィードバック比例補償
および
フィードバック比例・積分補償一巡伝達関数・周波数特性線図
 フィードバック比例補償ゲインKp_torque=0.015
 フィードバック積分補償ゲインKi_torque=5

 そして フィードフォワード補償とフィードバック比例補償とフィードバック積分補償を(トルク立ち上がり時と下降時を除いて)限定的に行った⑤も、①,②と応答性、精度、安定性に関してほぼ同等の結果を示しています。
 では わざわざ限定条件を加味した⑤は不要か?と思われるかもしれませんが、積分補償は制御系に依りますが 図1.18に示すように副作用を生じないのなら使用した方が(低周波領域でゲインが増加することによって)温度や(比較的緩やかな)速度変化に対して制御の頑強さが得られるため必要です。したがって ここでは⑤を選択します。サーボバカセは、仕事が遅く急かすと暴れやすい積分補償を、サーボを担うサーバントとしてなるべく使用したくないのですが、その使用可否は客観的かつ総合的に判断します。
 ★積分補償の副作用に関しては
  ここを参考にしてください!

    
 また フィードフォワード無しの②でも良いのでは?と思われるかもしれませんが、これがあることでフィードバック比例および積分補償の負担を軽減できるため、さらに過度応答時の制御安定化に有効です。

 図1.19には、フィードフォワード補償とフィードバック比例・積分補償制御を(⑤)を使用して、トルク指令Trefを緩やかに0~350Nm~-350Nm~0と変化させた場合のトルク応答結果を示します。

サーボの実践トレーニング_トルク指令0~350~-350~0Nmスウィープ時ff&fb比例・積分補償制御時のトルク応答
図1.19 フィードフォワード補償
+フィードバック比例&積分補償制御(⑤)時の
 トルク指令0~350~-350~0Nm変化時のトルク応答
  

 図1.19に示されたトルク線図は、図1.11に示されたオープンループ制御時のものと比較すると、精度が向上していることが分ります。

<実験3>
 つぎに 強制的にモータに角速度100rad/sを与えてみます。角速度は正弦波で与え、その周波数は20Hzと100Hzの2通りで行います。実験方法は今まで(の軸固定)に対して、図1.13(ブロック線図)右下のブロック要素”強制速度周波数”に所定値を、”強制角速度”に"100"を入力して演算を実行させます。
 この条件下でいままでと同様に300Nmのトルク指令をON/OFFさせる実験を、先の実験2(図1.17)に示した5制御方案の内、①(ff+fb比例補償)と⑤(ff+fb比例+fb積分補償)の2方案で行いました。実験結果は20Hzの場合を図1.20に、100Hzの場合を図1.21に示します。図の上段にトルク指令および信号を、下段にモータ角速度を示します。

サーボの実践トレーニング_DCモータトルクステップ応答(強制速度100radps 20Hz 積分補償有無比較) サーボの実践トレーニング_DCモータトルクステップ応答(強制速度100radps 100Hz 積分補償有無比較)
図1.20 モータトルク制御実験3a結果
強制角速度100rad/s 20Hz
図1.21 モータトルク制御実験3b結果
強制角速度100rad/s 100Hz
① Kff_torque=1.3423×10-3、Kp_torque=0.015、Ki_torque=0
⑤ Kff_torque=1.3423×10-3、Kp_torque=0.015、Ki_torque=5
 訂正1によって、モータ角速度は正弦波状の強制角速度に対して、加減速トルクが大きくなった分、ねじれが大きくなりゆがみが見られるようになりました。20Hzに対して100Hzの場合はより顕著です。 

 図1.20(角速度の周波数が20Hz)では、積分補償を効かせた⑤が効かせない①よりトルクの変動がおよそ1/3程度に減少しています。これは図1.18周波数特性線図に示された20Hz(125.7rad/s)近傍の両ゲインの差異に基づいています。
 図1.21(角速度の周波数が100Hz)では、積分補償を効かせた⑤が効かせない①よりトルクの変動が極僅かに減少しています(ほぼ同等にも見えます)。これも図1.18に示された100Hz(628.3rad/s)近傍の両ゲインの差異に基づいています。
 このように積分補償を適所機能させることで、比較的緩やかな速度変動が生じた場合にトルク制御精度を向上させることができます。これで モータトルクのフィードバックループ制御でできることは行いました。
 しかし このように 角速度に応じてトルクがダイナミックに変動するのではサーボとは言えません(サーボモータとは言えません)。次項では、速度変動によらずトルクを精度よく制御するため さらにフィードフォワード補償を追加し、トルク制御機能を完成させます。

1.3 モータトルク 最終形 制御実験

 1.3a 制御実験装置          
 1.3b 制御実験装置ブロック線図    
 1.3c モータトルク 最終形 制御実験 
 1.3d サーボモータ使用の常識と疑問  
 1.3e トルク応答とN-T特性(最終) 

<1.3a 制御実験装置>
 図1.22に、モータトルク 最終形 制御実験装置を示します。

サーボの実践トレーニング_DCモータトルク制御実験装置
図1.22 モータトルク 最終形 制御実験装置

 図1.22には、トルクフィードバックループ制御実験装置(図1.12)に対して、PWM制御器内にモータ角速度の演算部を、トルク制御器内に誘導機電圧によるトルク変動を補償するフィードフォワード補償要素(詳細は図1.23)を追設しました。PWM制御器には 実験装置(エンコーダ)からモータ角度信号(rad)を入力しトルク制御器にはモータ角速度信号(rad/s)を出力し、トルク制御器には PWM制御器からモータ角速度信号(rad/s)を入力します。
 モータ角速度の演算は、角度の微分処理に伴う遅れを抑制するため、演算周期が速いPWM制御器内で行います。 

<1.3b 制御実験装置ブロック線図>
 図1.23に、モータトルク 最終形 制御実験装置ブロック線図を示します。

サーボの実践トレーニング_DCモータトルク 最終形 制御実験装置ブロック線図
図1.23 モータトルク 最終形 制御実験装置ブロック線図

 図1.23には トルクフィードバックループ制御実験装置ブロック線図(図1.13)に対して、PWM制御器内とトルク制御器内を追加変更しました。
 PWM制御器内では、入力した角度信号を(サーボバカセの言葉では不完全)微分し、角速度信号を生成しています。
 ★微分の基本作用、
  不完全微分の特性に関しては
  ここを参考にしてください!

 トルク制御器内では、モータ角速度発生に伴う誘導起電圧分のトルクをフィードフォワード量として演算し、元のフィードフォワード補償量に加算しています。
 誘導機電圧は機械のブロック線図が示すように、モータ角速度に比例する成分なので、それを逆手にとって制御器で補償しているに過ぎません。このようにブロック線図を物理的に描けば、それをじっくり眺めることで 実験で生じた問題の対処(戦略)が脳裏に浮かび上がります。
 このような意味から 私は、機械のブロック線図を描いた段階で、機械-制御性能のおよそ8割は確定すると確信しています。反対に言えば、機械のブロック線図を描くことなく、あるいは制御性能を支配する大事な要素を端折って描いたブロック線図を元に(サーボ)制御を構築することはとても無謀なことと考えています。

<1.3c モータトルク 最終形 制御実験>
 1.2d項(フィードバック制御実験)実験3で行ったことと同様、強制的にモータに角速度100rad/sを 周波数20Hzと100Hzの2通りの正弦波で与えた状態下で、同様に300Nmのトルク指令をON/OFFさせる実験を行いました。実験結果は20Hzの場合を図1.24に、100Hzの場合を図1.25に示します。図の上段にトルク指令および信号を、下段にモータ角速度を示します。

サーボの実践トレーニング_DCモータトルクステップ応答(強制速度100radps 20Hz 誘導起電圧補償追加) サーボの実践トレーニング_DCモータトルクステップ応答(強制速度100radps 100Hz 誘導起電圧補償追加)
図1.24 モータトルク制御実験a結果
強制角速度100rad/s 20Hz
図1.25 モータトルク制御実験b結果
強制角速度100rad/s 100Hz
ff_torque=1.3423×10-3 誘導起電圧補償有り、Kp_torque=0.015、Ki_torque=0
 訂正1によって、モータ角速度は正弦波状の強制角速度に対して、加減速トルクが大きくなった分、ねじれが大きくなりゆがみが見られるようになりました。20Hzに対して100Hzの場合はより顕著です。 

 トルクの変動は、図1.25(角速度の周波数が100Hz)では+5~-3Nmと感じる程度生じていますが、図1.24(角速度の周波数が20Hz)では、±1Nmと殆ど感じない程生じています。誘導機電圧補償を行わなかった図1.21、図1.20と比較比較すると激減しています。
 これなら、このDC(ブラシ付き)モータのトルク制御機能を使用するのなら、機械を様々な目的、目標に応じてサーボ化できるのではないかと考えています。
 トルク制御器に使用した制御パラメータ(最終値)を表1.2に示します。

表1.2 実験装置 物理量(追加分)
*****
自動制御器(サーボコントローラ)
*****
トルク制御器
トルク指令フィルタ200(μs)
トルク
フィードフォワード
ゲイン
ff_torque1.3523×10-3
トルク
フィードバック
比例ゲイン
p_torque0.015
トルク
フィードバック
積分ゲイン
i_torque5.0

 
<1.3d サーボモータ使用の常識と疑問>
 今まで検討してきたとおり、モータのサーボ化(サーボモータ)に重要な性能はトルク制御性です。つまり トルク指令に対してトルクが、速度など外乱に依らず精度良く高応答に制御できる性能です。

 ここで1つ疑問が生じます。疑問とは、市販のサーボモータを使用する(使用して機械をサーボ化する)ユーザは(その殆どの方が)常識的に、サーボモータに対して速度指令を与えていることです。
 一方で ユーザの1人私(サーボバカセ)はトルク指令を与えています。そうする以外に機械をサーボ化する(サーバントのように私の意図通りに機能させる)術が考えつかないためです。お付き合いがあったモータメーカさんは「そうしているお客さんはバカセさんだけです。」とうかがったことがあることからすれば、圧倒的多数決で私が非常識なのでしょうけど!。
 非常識かもしれませんが、私が何故そうしているかは、このつづきとして今後 機械の位置や速度を制御して行く過程で納得していただけるかもしれません。

 このようにサーボモータに速度指令を与える常識的な使用方法が広く一般的にユーザ間に浸透している理由は以下のようなことが考えられるのではないでしょうか?
<一般的にサーボモータへは速度指令を与えて使用する理由の推測>
 理由1.一般的な機械の位置制御機能も力(圧力)制御機能も共通して、モータの角速度制御機能を下位制御機能に必要だから
 理由2.モータの速度制御応答性は比較的高く、ユーザが使用する制御器の一般的な制御周期1ms前後では不足すると考えられているから
 理由3.そうした方がユーザ制御器が(位置制御器や力制御器を構築するだけで済み)簡素になり保守し易いから
 理由1~3供に基本的に理に適っていると思える
反面、
 理由1に関しては 位置や力を指令に対して偏差少なく応答させるには不十分なこと、また 特殊な制御対象には不十分なこと、
 理由2に関しては 大方のケースにおいて機械の慣性がモータのそれに対して十分に大きく、制御周期は1ms前後で足りる可能性があること、
 理由3に関しては (ユーザ制御器でできることが限られるため)ユーザあるいはメーカ間で機械の性能差が生じ難く差別化し難いことなど、理に適っていないと思える点もあります。

 
<1.3e トルク応答とN-T特性(最終)>
 ここでは、ここで構築したサーボモータの最終的なトルク応答性と回転数(N)-トルク(T)特性を実験で確認します。

 <トルク応答性>
 図1.23ブロック線図において、強制角速度を0(モータ軸固定)とし、トルク指令をステップ状に0→350Nm→0と変化させた場合の、時間軸に対してトルク指令とモータ駆動トルク信号を図1.26に示します。

サーボの実践トレーニング_トルク指令に対するトルク応答(最終)
図1.26 モータトルク応答性(最終)

 トルクを0から350Nm、350kNから0にステップ状に変化させる応答性は、およそ1ms程度です。このぐらいのトルク応答性なら、次項以降の機械制御を十分に担えると考えられます。
 この特性は、サーボモータの動特性(動的特性)の一つです。 

 
 <回転数(N)-トルク(T)特性>
 図1.23ブロック線図において、強制角速度を0min-1から10s間を要して2000min-1相当の角速度(rad/s)まで変化させ、トルク指令を350Nm一定とした場合の、モータ回転数とモータ駆動トルク信号との関係を図1.27に示します。

サーボの実践トレーニング_回転数(N)-トルク(T)特性(最終)
図1.27 回転数(N)-トルク(T)特性

 回転数がおよそ1087からmin-1からから2000min-1までに、トルクは350Nmからおよそ18.5Nmまで低下します。この(このサーボモータはこのN-T特性である)ことを踏まえて、次項以降の機械制御を考える必要があります。 
 この特性は、サーボモータの静特性(静的特性)の一つです。

つぎ(機械の速度制御)に進む場合は   
ここをクリックしてください!


モータのトルク制御 目次に戻る場合は  
ここをクリックしてください!


サーボの実践トレーニング最初に戻る場合は
ここをクリックしてください!


サーボの習得と実践に戻る場合は     
ここをクリックしてください!

ご質問やご要望は遠慮無くEメールしてください。
内容 サーボの実践トレーニング
モータトルク制御
Eメール hydro-servo-k@ab.auone-net.jp
作者 サーボバカセ
更新日 2023年 5月22日