本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 AN706-00032-1v0-J 32-BIT MICROCONTROLLER MB9B100A/MB9B300A/MB9B400A/MB9B500A series インバータ制御における座標変換 ARM is the registered trademark of ARM Limited in the EU and other countries. Cortex is trademark of ARM Limited in the EU and other countries. AN706-00032-1v0-J 注意事項 本資料の記載内容は、予告なしに変更することがありますので、ご用命の際は営業部 門にご確認ください。 本資料に記載された動作概要や応用回路例は、半導体デバイスの標準的な動作や使い 方を示したもので、実際に使用する機器での動作を保証するものではありません。し たがいまして、これらを使用するにあたってはお客様の責任において機器の設計を行 ってください。これらの使用に起因する損害などについては、当社はその責任を負い ません。 本資料に記載された動作概要・回路図を含む技術情報は、当社もしくは第三者の特許 権、著作権等の知的財産権やその他の権利の使用権または実施権の許諾を意味するも のではありません。また、これらの使用について、第三者の知的財産権やその他の権 利の実施ができることの保証を行うものではありません。したがって、これらの使用 に起因する第三者の知的財産権やその他の権利の侵害について、当社はその責任を負 いません。 本資料に記載された製品は、通常の産業用、一般事務用、パーソナル用、家庭用など の一般的用途に使用されることを意図して設計・製造されています。極めて高度な安 全性が要求され、仮に当該安全性が確保されない場合、社会的に重大な影響を与えか つ直接生命・身体に対する重大な危険性を伴う用途(原子力施設における核反応制御、 航空機自動飛行制御、航空交通管制、大量輸送システムにおける運行制御、生命維持 のための医療機器、兵器システムにおけるミサイル発射制御をいう)、ならびに極め て高い信頼性が要求される用途(海底中継器、宇宙衛星をいう)に使用されるよう設 計・製造されたものではありません。したがって、これらの用途にご使用をお考えの お客様は、必ず事前に営業部門までご相談ください。ご相談なく使用されたことによ り発生した損害などについては、責任を負いかねますのでご了承ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても、 結果的に人身事故、火災事故、社会的な損害を生じさせないよう、お客様は、装置の 冗長設計、延焼対策設計、過電流防止対策設計、誤動作防止設計などの安全設計をお 願いします。 本資料に記載された製品を輸出または提供する場合は、外国為替及び外国貿易法およ び米国輸出管理関連法規等の規制をご確認の上、必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は、各社の商標または登録商 標です。 Copyright© 2011 FUJITSU SEMICONDUCTOR LIMITED all rights reserved 1 AN706-00032-1v0-J 改版履歴 版数 日付 内容 1.0 版 2011.08.24 新規作成 2 AN706-00032-1v0-J 目次 改版履歴 ...................................................................... 2 目次 .......................................................................... 3 1 はじめに .................................................................. 4 2 技術的背景 ................................................................ 5 2.1 3 クラーク変換 .............................................................. 6 3.1 理論 .................................................................. 6 3.1.1 クラーク変換の理論................................................. 6 3.1.2 逆クラーク変換理論................................................. 9 3.2 4 概要 .................................................................. 5 応用例 ............................................................... 10 パーク変換 ............................................................... 11 4.1 理論 ................................................................. 11 4.1.1 パーク変換理論........................................................ 11 4.1.2 逆パーク変換の理論.................................................... 13 4.2 応用例 ............................................................... 14 3 AN706-00032-1v0-J 1 はじめに このアプリケーションノートでは、インバータ制御で利用されるクラーク、パーク、逆 クラークおよび逆パーク変換による座標変換について説明します。 また、上記変換について弊社マイコンを利用したサンプルプログラムについて説明します。 4 AN706-00032-1v0-J 2 技術的背景 座標変換の必要性 2.1 概要 モーター制御において、モーターの始動、停止、速度等すべてのものはモーターの磁気 トルク、いわゆるモータートルクを公式により変換して理解することが必要です。 直流モーターの場合: ΦI. 交流モーターの場合: ΦI cos φ . (1) (2) ここで Te は磁気トルク、CT はトルク係数、I は電機子電流、Φ は磁束、φ は力率です。 直流モーターでは、 Φ と I の値を間接的に決定して制御することによりモータートルク を制御します。Φ と I を一定値にするとモータートルクは比例の関係となり、I を変更す るとモータートルクが変化します。このように直流モーターでの制御が電流制御により容 易に行うことができます。 これに対して、交流モーターでのトルク制御は I と Φ だけではなく、φ も重要な係数 となります。Φ はローター電流の周波数と共に変化し、Φ は電機子電流とローター電流に 由来しているため、 モーター負荷の変化に応じて変化します。このように、ダイナミック に動作している交流モーターは直流モーターよりも制御が非常に難しいです。 交流モーターは直流モーターと同様にパラメータ関係を定義・設定する必要があります。 交流モーターはベクトル制御により、直流モーターとしてシミュレーションでき、かつ制 御も単純化することができます。 基本理論として、三相交流モーターを使用している場合、その回転磁界を直流モーター の二相回転磁界軸に変換し、この二相電流を制御することによってトルクを制御します。 5 AN706-00032-1v0-J 3 クラーク変換 クラーク変換の理論 3.1 理論 3.1.1 クラーク変換の理論 図 3-1 のように、モーターの理論では、三相交流モーターは 3 個の固定巻線を有し、 三相交流電流 ia、ib、ic によって回転磁界 Φ と回転速度 ω を発生させます。 B β ω ω F ib ia iβ F iα A α ic C 図 3-2 図 3-1 また、図 3-2 のように、三相固定巻線は回転磁界を生成します。座標変換した二相対称 巻線(位相=90°)についても、二相交流電流を使用することにより回転磁界を表現すること ができます。 三相巻線・二相対称巻線はそれぞれ回転磁界 Φ を発生します。その値と速度が同一なら ば当然三相巻線と二相巻線は同等となります。 図 3-3 のように、クラーク変換は三相(ia,ib,ic)を二相(iα,iβ)に変換します。 a b c α クラーク 図 3-3 6 β AN706-00032-1v0-J クラーク変換は電力を一定と定義して変換します。図 3-4 で示すように、 ib cos 60° ic cos 60° k1 ia iα iβ k1 ib sin 60° ic sin 60° k 1 ia k1 1 i 2 b √3 i 2 b 1 i 2 c √3 i 2 c (3) ここで、 ia , ib , ic は三相電流、 iα , iβ は二相電流、 k1 は平衡係数です。 β Is Iβ b a α Iα c 図 3-4 また、電流成分の式は右の関係があります。 k 1 k 2 ia i0 ib ic (4) この公式をモーターアプリケーションに適用すると、次の行列式が得られます。 iα iβ i0 1 k1 0 k2 1 2 √3 2 k2 1 2 ia √3 ib 2 ic k2 1 2 √3 2 k2 1 2 √3 2 k2 ia CT ib ic (5) ここで: 1 CT k1 0 k2 電力が一定ならば、 この式は次のように変更されます: 1 0 k2 1 √3 k2 CT 1 k1 2 2 1 √3 k2 2 2 1 0 k2 1 1 1 1 √3 2 2 k2 CT 1 CT k12 2 √3 √3 2 0 1 √3 2 2 k2 k k2 k2 2 2 2 7 (6) (7) 1 0 0 0 1 0 0 0 1 (8) AN706-00032-1v0-J 1 k2 すると k 2 , k 1 を CT 1 √2 2 ,k1 3 に代入すると、 1 2 √3 2 1 1 2 0 3 1 CT √2 1 2 √3 2 1 √2 √2 (9) この公式がクラーク変換行列式です。 k 2 , k 1 を CT 1 に代入すると、 1 CT 2 3 1 1 2 1 0 1 2 1 2 √3 2 √3 2 √2 1 √2 (10) この公式が逆クラーク変換行列式です。 モーター理論では、三相交流モーター電流は次のようになります。 sin sin sin k2 1 √2 ,k1 2 3 iα iβ i0 2 0 3 1 √2 iα (11) と式(11)を式(5)に代入すると、 1 ここで 2 /3 2 /3 1 2 √3 2 1 1 2 √3 2 1 √2 sin sin sin 2 /3 2 /3 √2 ia とすると、上式は次のようになります。 iβ iα ia √3ia 2√3ib 3 3 sin sin この変換は次に示す 図 3-5 の波形を示します。 8 /2 (12) AN706-00032-1v0-J ia ib iβ iα ic a b c α β クラーク 図 3-5 3.1.2 逆クラーク変換理論 モーター理論において、固定 α-β 軸で 2 つの電流ベクトル成分が存在する場合、逆変 換を行って三相固定 A、B、C 軸上に戻すことができます。この変換には図 3-6 に示す逆ク ラーク変換を使用します。 a α β 逆 b クラーク c 図 3-6 1 逆パーク行列 CT と図 3-4 により、 逆クラーク変換の式は次のようになります。 β 9 β √3 α /2 β √3 α /2 (13) AN706-00032-1v0-J 3.2 応用例 ここでは、サンプルプログラムで記述している応用例を紹介します。 関数名: ClarkAmplitude C ファイル名: ClarkAmplitude.C、 ClarkAmplitude.H <関数インターフェイス> void ClarkAmplitude(volatile _stDataInThreeAxis *stDataInThreeAxis //Inputs: 3-axis system volatile _stDataInFixAxis *stDataInFixAxis //Outputs: fixed 2-axis system ) typedef struct { Q15_VAL32 a_Q15;// phase-a variable Q15_VAL32 b_Q15;// phase-b variable Q15_VAL32 c_Q15;// phase-c variable }_stDataInThreeAxis; _stDataInThreeAxis *stDataInThreeAxis typedef struct { Q15_VAL32 alpha_Q15;// stationary d-axis variable Q15_VAL32 beta_Q15;// stationary d-axis variable }_stDataInFixAxis; _stDataInFixAxis *stDataInFixAxis 表 1 項目 入力 出力 名称 説明 フォーマット a 平衡三相の相 a Q15_VAL32 b 平衡三相の相 b Q15_VAL32 c 平衡三相の相 c Q15_VAL32 alpha alpha - 固定二相の alpha Q15_VAL32 beta alpha - 固定二相の beta Q15_VAL32 入力ハンドル: stDataInThreeAxis、 出力ハンドル: stDataInFixAxis. このモジュールの使用例を以下に示します。 Main() { } void example_Clarke() { stDataInThreeAxis.a_Q15=INa;//input phase-a stDataInThreeAxis.b_Q15=INb;// input phase-b ClarkAmplitude(&stDataInThreeAxis、 pCurrentInFixAxis);// calculate clarke OUTa=CurrentInFixAxis. alpha_Q15;//Output alpha OUTb=CurrentInFixAxis. beta_Q15;//Output beta } 10 AN706-00032-1v0-J 4 パーク変換 パーク変換の理論 4.1 理論 4.1.1 パーク変換理論 図 4-1 のように、二相対称巻線(△位相=90°)に二相交流電流 iα、iβ を流し、巻線を制 止させると回転磁界 EMF- F1 が生じ、その速度は ω となります。 図 4-2 のように、二相対称巻線(△位相=90° )に二相直流電流 id、iq を流し、巻線を速 度 ω で回転すると回転磁界 EMF-F2 が生じます。 もし EMF-F1=EMF-F2 ならば、 交流電流による二相静止座標システムは、 直流による 二相回転座標システムと同等となることが分かります。 q β ω iβ ω F F iq id iα d α 図 4-2 図 4-1 図 4-3 のように、 パーク変換は二相静止座標(iα、iβ)を二相回転座標(id、iq)に変換し ます。 α β θ d パーク q 図 4-3 ここで、 iα、iβ はクラーク変換により得られ、ローターから得られる θ は電機子座標 系の直軸からローター角 θ だけ変位しています。一般座標系の実軸(x)とローターと共に 回転する座標系の実軸間の角度は θ であるので、 次の図ような関係になります。 11 AN706-00032-1v0-J 図 4-4 図 4-4 に示すように、 id iq iα cos θ iβ sin θ iα sin θ iβ cos θ (14) ここで、 id , iq は回転二相電流、 iα , iβ は静止二相電流、 θ は iα と id . の角度です。 式を行列式に変更すると、 id iq cos θ sin θ iα sin θ cos θ iβ iα CP i β (15) ここで、 CP cos θ sin θ sin θ cos θ (16) この行列式は静止二相システムを回転二相システムに変換するもので、 パーク変換となります。 電力が一定である場合、この式は次のようになります: CP 1 cos θ sin θ sin θ cos θ (17) この行列式は回転二相システムを静止二相システムに変換するもので、 逆パーク変換とな ります。この変換手順は次の図 4-5 に示された波形を使用します。 12 AN706-00032-1v0-J iβ iα id α β θ d パーク q iq 図 4-5 4.1.2 逆パーク変換の理論 モーター理論では、回転する d-q 内に 2 個の電流成分ベクトルが存在すれば、逆変換を行 うことにより二相静止 α-β 軸に戻すことが可能です。この変換には逆パーク変換、 図 4-5 を使用します。 d q α 逆パーク β θ 図 4-6 1 逆パーク行列 CP および図 4-1 により、 逆パーク変換の式が得られます: iα id cos θ iq sin θ iβ id sin θ iq cos θ 13 (20) AN706-00032-1v0-J 4.2 応用例 ここでは、サンプルプログラムの応用例を紹介します。 関数名: Park C ファイル名: Park.C、 Park.H 関数インターフェイス: void Park(_stDataInFixAxis *stDataInFixAxis、 //fixed 2-axis system _stDataInRotAxis *stDataInRotAxis //rotational 2-axis system) typedef struct { Q15_VAL32 alpha_Q15; Q15_VAL32 beta_Q15; }_stDataInFixAxis; _stDataInFixAxis *stDataInFixAxis typedef struct { Q15_VAL32 d_Q15; Q15_VAL32 q_Q15; Q15_VAL32 theta_Q15; }_stDataInRotAxis; _stDataInRotAxis *stDataInRotAxis 表 2 項目 入力 出力 名称 alpha beta Theta d q 関数入出力一覧 説明 固定二相の相 alpha 固定二相の相 beta 静止系と回転系間の相角度 alpha - 回 転 2 軸 シ ス テ ム の alpha alpha - 回転 2 軸システムの beta このモジュールの使用例を以下に示します。 Main() { } void example_Park() { CurrentInFixAxis. alpha_Q15= INa;//Input alpha CurrentInFixAxis. beta_Q15= INb;//Input beta stDataInRotAxis. theta_Q15=Intheta;//input Phase angle Park(&CurrentInFixAxis、 stDataInRotAxis); OUTa= stDataInRotAxis. d_Q15; OUTb= stDataInRotAxis. q_Q15; } 14 フォーマット Q15_VAL32 Q15_VAL32 Q15_VAL32 Q15_VAL32 Q15_VAL32 AN706-00032-1v0-J 関数名: ParkInv C ファイル名: ParkInv.C、 Park.H 関数インターフェイス: void InvPark(_stDataInRotAxis *stDataInRotAxis、 // rotating 2- phase system _stDataInFixAxis *stDataInFixAxis // fixed 2- phase system) typedef struct { Q15_VAL32 d_Q15; Q15_VAL32 q_Q15; Q15_VAL32 theta_Q15; }_stDataInRotAxis; _ stDataInRotAxis * stDataInRotAxis typedef struct { Q15_VAL32 alpha_Q15; Q15_VAL32 beta_Q15; }_stDataInFixAxis; _stDataInFixAxis *stDataInFixAxis 表 3 関数入出力一覧 項目 名称 説明 フォーマット d alpha - 回転二相の d Q15_VAL32 入力 q alpha - 回転二相の q Q15_VAL32 θ 静止系と回転系間の相角度 Q15_VAL32 alpha – 固 定 二 相 シ ス テ ム の alpha Q15_VAL32 出力 alpha beta alpha - 固定二相システムの beta Q15_VAL32 入力ハンドル: stDataInRotAxis、 出力ハンドル: stDataInFixAxis. このモジュールの使用例を以下に示します。 Main() { } void example_ParkInv() { stDataInRotAxis.d_Q15=INd;//input phase-d stDataInRotAxis.q_Q15=INq;// input phase-q stDataInRotAxis.theta_Q15=Intheta;//input Phase angle InvPark (&stDataInRotAxis、 pCurrentInFixAxis);// calculate Inverte Park OUTa=CurrentInFixAxis. alpha_Q15;//Output alpha OUTb=CurrentInFixAxis. beta_Q15;//Output beta } - 以上 - 15