5.2式で算出したトルク指令u(k)に対して高速かつ正確にDCモータを追従させるには,それに見合った制御系が必要になります。 そこで,電流フィードバック系をPI制御で構築することにしました。 以下に利用したデジタルPI制御の制御演算式を示します。
・・・(8.1)制御偏差eに比例した操作量を与える動作。8.1式に示すように,第1項だけでなく全体にかかるように表す。Kを「比例ゲイン」と呼ぶ。
制御偏差の積分に比例した操作量を与える動作。1/TIが比例定数で,TIを「積分時間」と呼ぶ。
PI制御の基本動作はP動作です。P動作単独でも制御能力はありますが,I動作がP動作の欠点を補い,制御成績を高めます。 P動作の比例ゲインKを増加すれば応答性と定常偏差が改善し,I動作を併用すればP動作で改善できなかった定常偏差を抑えることができます。 各ゲインを最適な値で組み合わせることにより,動作の良好な制御系を構築できます。
図8.1にPI制御系のブロック線図を示しました。赤点線で示したのがデジタルPI演算部です。
PI伝達関数 ・・・(8.2) | |
8.1式を用いてPI演算を行うにはKとTIの2つのパラメータを求める必要がありますが,その方法として限界感度法を用いました 。 これは制御対象の特性から最適条件を推定する方法です。
PI制御式8.1で算出する操作量U(n)は,SH/7125からのPWM信号によりHブリッジ回路を動作させることでモータに与えます。 このHブリッジ回路は,「正転」,「逆転」,「加速」,そして「制動」を含めた4象限動作に対応する必要があり, 「制動」動作があることでモータの減速時の制御が可能になります。 また,モータを流れる電流を検出する必要から,モータラインへ電流検出センサを設けました。
モータの4象限動作を可能にするため,Hブリッジ回路はハイサイドMOS-FETとローサイドMOS-FETを相補PWM信号で駆動する仕様にしました。
このモータドライバ回路において,モータに電流が流れるのは,A点電位とB点電位のDuty比が異なる時だけです。AB両点のDuty比の差をより大きく設定すれば駆動電流は増加し, AB両点のDuty比を50%へ近づけていくと駆動電流は減少します。そして,両点共に50%になると駆動電流は流れなくなります。さらに,A点とB点のDuty比の大小関係を逆転すると, モータ駆動電流の方向が切り替わります。このようにして,モータの正逆転動作を行うことができます。
このように駆動電流と制動電流・フライホイール電流の配分をPWMで調整することによって,1象限動作や3象限動作はもちろんのこと,回転方向とトルクの発生方向が逆になる2象限動作や4象限動作にも対応することができます。
このモータドライバ回路では,ハイサイド・ローサイド共に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社)を使ったブートストラップ回路を用いました。
まず,ローサイド側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やドレイン-ソース間損失が安全領域にあること等を確認して利用を決定しています。
この回路は,相補PWM信号の生成とデッドタイムの生成を併せて行います。SH/7125から1本のPWM信号を入力し,それをハイサイド用とローサイド用に分岐して出力するため,汎用ロジックICである74HC86P(Ex-OR)を利用しました。 論理ゲートの間にCR回路を挟んでおり,信号立ち上がり時の遅延とIC入力の閾値を利用してデッドタイムを生成します。また,信号が立ち下がる際はすばやく応答させるため,コンデンサの電荷を逃すダイオードを抵抗に並列に挿入しました。
|
所望のPWM信号を得る論理回路の組み合わせはいろいろありますが,この方法を用いれば1種類の汎用ロジックICを1個用いるだけで済むため,回路を簡素にできます。
・・・
デッドタイムを1[μs]程度設けるとする。74HC86PのHレベル閾値電圧VIHはおよそ
であるから,CRの時定数τが1[μs]程度になるようにCR値の目安を付け,実機で確認しながら決定を行った。結果,C=3300[pF]とR=470[Ω]に決定することにした。
図8.8は,デッドタイムの生成をオシロスコープで確認した際の様子である。
電流フィードバックを構築するため,モータラインに電流センサICであるACS712を接続しました。ACS712はホール素子を利用した電流センサで,電流値に比例した電圧を出力します。 その電圧をSH/7125でAD変換することで電流値を得ます。ACS712はフルスケール(FS)±5[A]を持つセンサですが,実際に流すモータ電流は±1[A]以下です。 そこで,AD変換の分解能を向上させるため反転増幅器で-10倍に増幅してからSH/7125へ入力する仕様にしました。
モータを滑らかに動作させるには,PWM周期をできるだけ小さく設定して,1周期あたりのモータ電流変動を抑えれば良いと考えられます。しかし,小さく設定しすぎてもデットタイムの設定やマイコンからの波形出力が難しくなります。 そこで,モータの電気的時定数からPWM周期を検討しました。
DCモータをLR直列回路と考えると,電流Iのステップ応答は以下の通り。
・・・(8.3)表6.1より,選定したモータの端子間抵抗をR,端子間インダクタンスをLとすると,電気的時定数τは以下の通りである。
この時定数τよりもPWM周期を大きく設定してしまうと,PWMで駆動したつもりが単純なモータのON/OFF制御になってしまう。これを避けるため,PWM周期を20[μs]に決定した。 この場合,Imax = 1[A]と仮定してDuty比を100%から0%に切り替える最も激しい制御を繰り返したとすると,1周期で0.197[A]の立ち上がりになる。これはImax = 1[A]に対して,約20%の電流変動率である。
8.1式の各ゲインを求めるため,以下に示す手順で限界感度法によるゲイン推定を行いました。
※で示したスパイクノイズは,デッドタイムに由来するものと考えられる。 |
これらのゲイン設定によって,図8.15に示すとおり定常偏差がなく安定した電流応答を得ることができました。
モータ電流には整流子やデッドタイムに由来するノイズが存在し,さらにPWM駆動による脈動も現れます。AD変換する際はこれらの影響を避ける必要があると考え, 図8.17に示すタイミングでAD変換値を取得することにしました。1周期あたり2回のAD変換を行い,それらの平均を取ってその周期のAD変換値としています。 AD変換値取得のタイミングは,MTU(Multi function Timer Unit)の割り込みを用いて決定しています。
一連の検討によって,PI制御による電流フィードバック系を構築することができました。