FPGA活用回路&サンプル記述集(2) ―― モータやLEDを駆動するパワー回路
tag: 半導体 電子回路 ディジタル・デザイン
技術解説 2009年3月 9日
事例6.IGBTモジュールを利用したブラシレス・モータ駆動回路
相田泰志
- 回路図:図6-1
- 主要部品:IGBTモジュール,電流検出アンプ
- VHDL記述:リスト6-1
- 外部入力:CLK1,m_flg,t_flg,t_mode
- 外部出力:HI_V,LO_V,HI_V,LO_V,HI-W,LO_W,U_SNS,U_OC,V_SNS,V_OC
- 内部入力:なし
- 内部出力:なし
- パラメータ:なし
- Xilinx社,Spartan-3評価ボード,ISE WebPACK
ブラシレス・モータはステッピング・モータのように,コイルの相間に電流を流して回転します.回転数やトルクが制御できるため,いろいろな用途に利用されています.
図6-1に駆動回路の一例を示します.これは駆動用のIGBTモジュール「IRAMX16UP60A」(米国International Rectifier社)を使用したものです.スイッチング素子およびハイ・サイド,ロー・サイドのドライバが一つになっており,FPGAと簡単に接続できます.また,内部温度上昇を検出できるようにサーミスタが内蔵された品種も用意されています.
● 電流波形からロータの位置を知る
ブラシレス・モータの場合,回転に合わせて駆動をしていく必要があるため,ロータの位置を知る必要があります.位置を知るセンサが付いた品種と,エアコンや冷蔵庫のコンプレッサのようにセンサが付いていない品種があります.
センサがない品種の場合,電流波形によりロータの位置が分かります.図6-2に駆動波形を示します.この順番で駆動を行います.リスト6-1に波形発生モジュールのVHDL記述を示します.図6-3に駆動波形と電流波形を示します.このように電流方向が変わったタイミングを電流センサにて検出できるので,このタイミングを利用して,図6-2の波形を発生させていきます.
図6-2 ブラシレス・モータを3相励磁方式で駆動
図6-3 ブラシレス・モータの位置を電流波形から把握する
signal t_mode : std_logic_vector(3 downto 0);
signal step_out : std_logic_vector(5 downto 0);
-- HU HV HW LU LV LW
signal m_flg : std_logic;
begin
motor_m: process (CLK1)
begin
if(CLK1'event and CLK1 = '0')then -- CLK1↓
if(m_flg = '0') then
t_mode <= "0000";
else
if(t_mode < 6 ) then
t_mode <= t_mode + 1;
else
t_mode <= "0001";
end if ;
end if;
case t_mode is
when "0001" => step_out <= "100010"; --0deg
when "0010" => step_out <= "100001"; --30deg
when "0011" => step_out <= "010001"; --60deg
when "0100" => step_out <= "010100"; --90deg
when "0101" => step_out <= "001100"; --120deg
when "0110" => step_out <= "001010"; --150deg
when others => step_out <= "000000"; --off
end case;
end if;
end process motor_m;
end Behavioral;
ステッピング・モータの場合は,パルス周波数だけで回転速度を変更できます.ブラシレス・モータの場合には,駆動電圧を変化させることで,回転数とトルクを変化させていきます.そこで図6-4のようにPWM方式を利用することによって,(2),(3) のように見かけの電圧値を変化させたり,(4) のようにAC波形に近似させます.
図6-4 PWM方式で回転数を制御する
そうだ・やすし
tag: FPGA