home

8.DCサーボモータを制御

8.1 PI制御

5.2式で算出したトルク指令u(k)に対して高速かつ正確にDCモータを追従させるには,それに見合った制御系が必要になります。 そこで,電流フィードバック系をPI制御で構築することにしました。 以下に利用したデジタルPI制御の制御演算式を示します。

  8-1 ・・・(8.1)

U:操作量  e:制御偏差  TPI:PI制御周期  n:1,2,3・・・

PI制御の基本動作はP動作です。P動作単独でも制御能力はありますが,I動作がP動作の欠点を補い,制御成績を高めます。 P動作の比例ゲインKを増加すれば応答性と定常偏差が改善し,I動作を併用すればP動作で改善できなかった定常偏差を抑えることができます。 各ゲインを最適な値で組み合わせることにより,動作の良好な制御系を構築できます。

図8.1にPI制御系のブロック線図を示しました。赤点線で示したのがデジタルPI演算部です。

8-1PI伝達関数
  eq8-5・・・(8.2)
図8.1 PI制御

8.1式を用いてPI演算を行うにはKとTIの2つのパラメータを求める必要がありますが,その方法として限界感度法を用いました 。 これは制御対象の特性から最適条件を推定する方法です。

8.2 モータドライバ回路

8.2.1 概要

PI制御式8.1で算出する操作量U(n)は,SH/7125からのPWM信号によりHブリッジ回路を動作させることでモータに与えます。 このHブリッジ回路は,「正転」,「逆転」,「加速」,そして「制動」を含めた4象限動作に対応する必要があり, 「制動」動作があることでモータの減速時の制御が可能になります。 また,モータを流れる電流を検出する必要から,モータラインへ電流検出センサを設けました。

8-2
図8.2 モータドライバ概要
8-3
図8.3 モータドライバ回路外観
8-4
図8.4 モータドライバ回路 回路図

モータの4象限動作を可能にするため,Hブリッジ回路はハイサイドMOS-FETとローサイドMOS-FETを相補PWM信号で駆動する仕様にしました。

8-5
図8.5 DCモータ駆動の例

このモータドライバ回路において,モータに電流が流れるのは,A点電位とB点電位のDuty比が異なる時だけです。AB両点のDuty比の差をより大きく設定すれば駆動電流は増加し, AB両点のDuty比を50%へ近づけていくと駆動電流は減少します。そして,両点共に50%になると駆動電流は流れなくなります。さらに,A点とB点のDuty比の大小関係を逆転すると, モータ駆動電流の方向が切り替わります。このようにして,モータの正逆転動作を行うことができます。

このように駆動電流と制動電流・フライホイール電流の配分をPWMで調整することによって,1象限動作や3象限動作はもちろんのこと,回転方向とトルクの発生方向が逆になる2象限動作や4象限動作にも対応することができます。

8.2.2 FET駆動回路

このモータドライバ回路では,ハイサイド・ローサイド共にMOS-FETをスイッチングするため,両サイドが同時にONすると貫通電流が流れ回路がショートしてしまう危険があります。 そこで,両サイドが同時にOFFするデッドタイムを設ける必要があります。そのような理由から,両サイドのMOS-FETはスイッチング特性をそろえることが望ましく,同製品のNch MOS-FET(IRLU3105)を使用しました。

MOS-FETを駆動する際,ゲート電圧はID-VGS特性に基づいて決定します。本件ではハイサイド側にNchを使用するため,そのゲート電圧には電源電圧12[V]を超える電圧が必要です。 しかも,ハイサイド側MOS-FETのソース電圧は0[V]から12[V]まで変動するため,ゲートドライバにはフローティング電源が要求されます。そこで,FETゲートドライバICであるIR2301S(IR社)を使ったブートストラップ回路を用いました。

8-6
図8.6 ブートストラップ回路

まず,ローサイド側MOS-FETがONする間,コンデンサC に充電が行われます。その経路は@に示す方向で,ダイオードを介するためVc = 6[V]の電圧となります。次に,ハイサイド側MOS-FETをONするタイミングになると, コンデンサCからAに示す方向へ放電がなされます。このとき,IR2301SのVB端子はVs端子電圧にVc = 6[V]を足した電圧となります。これが,ハイサイド側MOS-FETをONする電源となります。 このように,コンデンサを充電する時間を設ける必要があるので,相補PWM信号のDuty比は0%または100%にすることができません。

IRLU3105の選定にあたっては,必要なドレイン電流IDが扱え,VDSやドレイン-ソース間損失が安全領域にあること等を確認して利用を決定しています。

表8.1 IRLU3105仕様
h8-1

8.2.3 デッドタイム生成回路

この回路は,相補PWM信号の生成とデッドタイムの生成を併せて行います。SH/7125から1本のPWM信号を入力し,それをハイサイド用とローサイド用に分岐して出力するため,汎用ロジックICである74HC86P(Ex-OR)を利用しました。 論理ゲートの間にCR回路を挟んでおり,信号立ち上がり時の遅延とIC入力の閾値を利用してデッドタイムを生成します。また,信号が立ち下がる際はすばやく応答させるため,コンデンサの電荷を逃すダイオードを抵抗に並列に挿入しました。

8-7
  • 入力の片側をHに固定→インバータとして機能する
  • 入力の片側をLに固定→バッファとして機能する
図8.7 デッドタイム生成回路

所望のPWM信号を得る論理回路の組み合わせはいろいろありますが,この方法を用いれば1種類の汎用ロジックICを1個用いるだけで済むため,回路を簡素にできます。

・・・

デッドタイムを1[μs]程度設けるとする。74HC86PのHレベル閾値電圧VIHはおよそ

  eq8-2

であるから,CRの時定数τが1[μs]程度になるようにCR値の目安を付け,実機で確認しながら決定を行った。結果,C=3300[pF]とR=470[Ω]に決定することにした。

  eq8-3

図8.8は,デッドタイムの生成をオシロスコープで確認した際の様子である。

8-8
図8.8 デッドタイムの確認

8.2.4 電流検出回路

電流フィードバックを構築するため,モータラインに電流センサICであるACS712を接続しました。ACS712はホール素子を利用した電流センサで,電流値に比例した電圧を出力します。 その電圧をSH/7125でAD変換することで電流値を得ます。ACS712はフルスケール(FS)±5[A]を持つセンサですが,実際に流すモータ電流は±1[A]以下です。 そこで,AD変換の分解能を向上させるため反転増幅器で-10倍に増幅してからSH/7125へ入力する仕様にしました。

8-9
図8.9 電流センサ回路
8-98-9
図8.10 ACS712
表8.2 ACS712仕様

8.3 PWM周期の決定

モータを滑らかに動作させるには,PWM周期をできるだけ小さく設定して,1周期あたりのモータ電流変動を抑えれば良いと考えられます。しかし,小さく設定しすぎてもデットタイムの設定やマイコンからの波形出力が難しくなります。 そこで,モータの電気的時定数からPWM周期を検討しました。

8-11
図8.11 DCモータの電気的時定数

DCモータをLR直列回路と考えると,電流Iのステップ応答は以下の通り。

  eq8-4 ・・・(8.3)

表6.1より,選定したモータの端子間抵抗をR,端子間インダクタンスをLとすると,電気的時定数τは以下の通りである。

  eq8-6

この時定数τよりもPWM周期を大きく設定してしまうと,PWMで駆動したつもりが単純なモータのON/OFF制御になってしまう。これを避けるため,PWM周期を20[μs]に決定した。 この場合,Imax = 1[A]と仮定してDuty比を100%から0%に切り替える最も激しい制御を繰り返したとすると,1周期で0.197[A]の立ち上がりになる。これはImax = 1[A]に対して,約20%の電流変動率である。

  eq8-7
8-12
図8.12 モータの電流変動

8.4 PI制御ゲインの決定

8.1式の各ゲインを求めるため,以下に示す手順で限界感度法によるゲイン推定を行いました。

  1. PI制御式8.1をプログラムに実装する。各ゲインをマイコン外部から調整できるように,調整用の可変抵抗をSH/7125に接続する。その出力電圧をAD変換し,ゲインへ反映できる実験環境をつくる。また,モータ軸は固定しておく。
    8-13
    図8.13 外部調整用可変抵抗

  2. 電流フィードバック系のステップ応答を観察するため,トルク(電流)指令u(k)をステップ状に変化させて8.1式へ入力するプログラムを実装する。プログラムには,SH/7125のタイマ割り込み機能を利用する。トルク指令はu(k) = 500[mA]に設定した。
  3. まずはP動作だけの制御系を用意するため,TI = 0にしておく。
  4. 電流センサの出力(図8.9 OUT_MOTOR)をオシロスコープで確認しながら,可変抵抗を調整して比例ゲインKを徐々に増加する。最初は非振動状態から始める。
  5. 振動が持続する状態になったらKの増加を止める。このとき制御系は安定限界であり,これ以上Kを増加すると発散する。図8.14にその際の電流センサ出力を示す。
    8-14
    図8.14 安定限界時のステップ応答
    ※で示したスパイクノイズは,デッドタイムに由来するものと考えられる。

  6. 安定限界時の比例ゲインをKu,そのときの振動周期をTuとして記録する。
  7. KuとTuの値から最適ゲインを推定する。最適ゲインは以下のように知られている。
      eq8-8
      eq8-9
  8. 上で求めた推定値を出発点にして実機で調整を行い,最適なパラメータを決定する。今回は推定値で良好な結果が得られたため,そのまま用いることにした。ゲイン決定後のPI制御式を8.3に示す。
      eq8-10
      eq8-11
      eq8-12・・・(8.3)

    これらのゲイン設定によって,図8.15に示すとおり定常偏差がなく安定した電流応答を得ることができました。

    8-15
    図8.15 ゲイン決定後のステップ応答

    8-16
    図8.16 階段状トルク指令への追従

8.5 AD変換のタイミング

モータ電流には整流子やデッドタイムに由来するノイズが存在し,さらにPWM駆動による脈動も現れます。AD変換する際はこれらの影響を避ける必要があると考え, 図8.17に示すタイミングでAD変換値を取得することにしました。1周期あたり2回のAD変換を行い,それらの平均を取ってその周期のAD変換値としています。 AD変換値取得のタイミングは,MTU(Multi function Timer Unit)の割り込みを用いて決定しています。

8-17
図8.17 AD変換のタイミング
8-18
図8.18 ゲイン調整の実験風景

一連の検討によって,PI制御による電流フィードバック系を構築することができました。


Copyright (C) 2012 maverick engineer
2012年10月20日
http://maverickengineer.web.fc2.com/
inserted by FC2 system