Journal of the Korea Academia-Industrial cooperation Society Vol. 14, No. 2 pp. 816-821, 2013 http://dx.doi.org/10.5762/kais.2013.14.2.816 김동기 1, 윤덕용 1* 1 공주대학교대학원전기전자제어공학과 The Design of Low-Cost Vector-Controlled Inverter for Induction Motor Using ARM Cortex-M4 Microcontroller Dong-Ki Kim 1 and Duck-Yong Yoon 1* 1 Department of Electrical, Electronic and Control Engineering, Graduate School of Kongju National University 요약본논문은 ARM Cortex-M4 마이크로컨트롤러를사용하여 3상유도전동기용의저가형벡터제어인버터를설계하는방법을제안한다. 이 MCU는냉장고, 에어컨, 세탁기와같은가전제품을제어하기위하여기존의값비싼 DSP 소자를대신할수있다. 본논문에서는전동기제어에필요한 Cortex-M4의주요기능들을정리하고, 이를사용하여벡터제어인버터를설계하는방법을기술한다. 실험용벡터제어인버터를설계제작하여 200[W] 의 3상유도전동기에적용하였고, 이를사용한실험결과는기존의 TMS320F28335 DSP와유사한수준의제어성능을보였다. Abstract This paper proposes the design method of low-cost vector control system for induction motor using the ARM Cortex-M4 microcontroller. This MCU can be used instead of expensive DSP to control the home appliances such as refrigerator, air conditioner, washing machine and so on. This paper explains the major features of Cortex-M4 for motor control and how to realize a vector-controlled inverter using it. The developed system is applied to 3-phase induction motor of 200[W] and experimental results show good performance similar to the system using TMS320F28335 DSP. Key Words : ARM, Cortex-M4, induction motor control, vector-controlled inverter, low-cost inverter 1. 서론 반도체및제어기술의발전으로벡터제어인버터가쉽게구현됨으로써이제유도전동기는산업용가변속제어시스템에널리사용되고있다. 그러나, 산업용제어기와달리냉장고, 에어컨, 세탁기등과같은가전제품에서는수백와트정도이하의소용량전동기를사용하고있어서전동기자체에비하여컨트롤러의가격이높고, 또한전동기제어시스템의가격이전체제품의가격에서차지하는비중이상당히높으므로이를저렴한가격으로구현하는것이무엇보다도중요하다. 이때문에현재산업 용에서보편적으로사용하고있는벡터제어인버터기술을가전제품에서는최근까지도거의사용하지못하고있는실정이며, 2000년대들어서야이를가전제품에적용할수있도록저가격화하려는노력이적극적으로이루어지기시작하였다. 가전제품에사용할수있는정도의소용량벡터제어인버터를저가격화하기위한노력은크게다음과같이 4가지의분야로나누어설명할수있다. 첫째는전력회로부분으로서, 반도체기술의발전으로 3상인버터를구성하는 6개의반도체스위칭소자와이를위한구동회로및각종보호회로등을하나의소자로모듈화한 IPM(Intelligent Power Module) 또는 SPM 본논문은중소기업청산학공동기술개발사업의과제와관련하여수행되었음. * Corresponding Author : Duck-Yong Yoon (Kongju National University) Tel: +82-41-521-9165 email: yoon3m@kongju.ac.kr Received November 5, 2012 Revised January 2, 2013 Accepted February 6, 2013 816
(Smart Power Module) 이상품화되고있으므로이를전력회로에사용하는것이다 [1]. 둘째는제어알고리즘을실행하는마이크로컨트롤러로서, 이것의성능이빠르게향상되고전동기벡터제어에필요한 PWM 제어모듈이나 A/D 컨버터등의주변장치를내장한전동기제어용의 DSP(Digital Signal Processor) 소자가꾸준히개발되고있으므로이를사용하여인버터를설계하는것이다 [1]. 셋째는전동기의입력전류를측정하기위한전류센서부분으로서, 그동안널리사용되어온홀전류센서는가격이높아서소용량시스템의경우이것이제품의원가에서차지하는비중이높으므로션트저항을사용하여저가격으로전류를측정하는것이다 [2]. 넷째는전동기의회전속도를측정하는부분으로서, 현재까지전동기의외부에장착하여사용해온로터리엔코더나타코제너레이터는가격이비싸고사용환경의제약이있으므로이를전동기에간단하게내장하거나속도측정장치없이소프트웨어적으로회전속도를추정하여사용하는센서리스제어기술이연구되어왔다 [3]. 본논문에서는이러한벡터제어인버터의저가격화기술과관련하여주로마이크로컨트롤러문제에초점을맞추어연구하고자한다. 유도전동기의벡터제어를위해서는속도및전류제어기에서 PI 제어알고리즘을수행하고전압과전류의좌표변환등을실시간으로처리해야하는데, 여기에는삼각함수등많은부동소수점연산을필요로하므로고속실수연산처리가가능한마이크로컨트롤러가사용되어야한다. 전통적으로전동기벡터제어인버터에서는부동소수점데이터의고성능실시간연산이가능한 TI(Texas Instruments) 사의 TMS320F28x 계열 DSP를널리사용하여왔다. 그러나, 실시간운영체제를바탕으로하는모바일제품의시장에서압도적인우위를보여온 ARM사에서 2010년에 DSP 명령어및 FPU(Floating Point Unit) 기능을내장한 32비트고성능마이크로컨트롤러 Cortex-M4 코어를발표하고, 이후 STMicroelectronics사를비롯한여러반도체회사에서이 Cortex-M4 코어가탑재된마이크로컨트롤러제품을출시하면서 DSP 시장에큰변화를일으키고있다. 이들 ARM 마이크로컨트롤러는 ARM사에서제공하는검증된 DSP 코어를내장하고있어서가격이훨씬저렴하며, 여기에많은반도체회사에서경쟁적으로마이크로컨트롤러로서의다양한 I/O 기능을추가하여상품화하고있으므로기능이우수하고수급불안정의문제가발생할우려가적다. 본논문에서는 ARM Cortex-M4 코어를장착한 32비트마이크로컨트롤러를사용하여어떻게벡터제어인버터를구현할수있는지기술하고, 이것이기존의부동소 수점연산형 DSP처럼벡터제어인버터를구현하는데충분한성능을가지고있는지실험적으로확인한다. 2. 벡터제어인버터의저가격화방안 가정용단상전원을사용하는 3상유도전동기를위한벡터제어인버터의기본구성은 Fig. 1과같다. 단상교류전원은다이오드정류기를사용한컨버터에의해직류전원으로변환되고, 이는다시 3상인버터에의하여전동기를구동하는 3상교류전원으로변환된다. 이러한벡터제어인버터를가전제품에사용할수있도록수만원대의저가격으로구현하기위한방안을 4가지의주요부분으로나누어살펴보면다음과같다. [Fig. 1] Vector-controlled inverter of induction motor 2.1 컨버터및인버터의전력회로벡터제어인버터의전력회로는단상컨버터와 3상인버터로나누어지는데, 컨버터는다이오드모듈을이용하여간단히구성되며, 여기에돌입전류방지용써미스터와커패시터를사용한평활회로가추가된다. 3상인버터를구성하기위해서는최소 6개의반도체스위칭소자와이를위한게이트구동회로및게이트구동용으로 4개의독립적인전원이필요하며, 여기에안전운전을위한여러가지의보호기능이추가된다. 최근에는이러한기능을모두내장하고부트스트랩회로를사용하여게이트구동전원을 1개로처리한 IPM 또는 SPM 소자가개발되어이를사용하면시스템의비용절감은물론이고제품의소형화가가능하다 [4]. 2.2 고성능마이크로컨트롤러벡터제어인버터에서는여러가지의제어알고리즘및삼각함수를사용한좌표변환등의실시간연산이필요하므로제어기가고성능부동소수점연산형이어야하며, 전 817
한국산학기술학회논문지제 14 권제 2 호, 2013 체시스템의소형화를위해서전동기제어에필요한모든 I/O 기능이하나의칩에내장된마이크로컨트롤러인것이바람직하다. 정수연산만가능한마이크로프로세서를사용할때는삼각함수등을실시간으로연산하는대신에미리작성해놓은조견표 (look-up table) 를참조하는방법으로처리하기도하였으나, 부동소수점연산형 DSP를사용하면이러한연산을실시간으로수행하여벡터제어인버터를쉽게구현할수있다. 32비트고성능마이크로컨트롤러코어인 Cortex-M4는 DSP 명령어및 FPU 기능을내장하고있어서기존의부동소수점연산형 DSP를대체하는저가격컨트롤러로사용할수있다 [5]. 정인데, 이를저가화한다면 1[kW] 급정도의벡터제어인버터를수만원대에구현할수있다. 이문제를해결하려면가전제품회사에서저가격형의로터리엔코더를개발하여전동기에내장하는것이바람직하다. 다른방법으로는별도의속도측정장치를사용하지않고소프트웨어적으로전동기의회전속도를추정하여사용하는센서리스벡터제어기술이연구되고있다 [3]. 2.3 전동기의 3상전류측정벡터제어인버터에서는전동기로입력되는 3상전류를실시간으로측정하는것이필수적으로요구된다. 전통적으로홀전류센서를이용한전류측정방법을널리사용해왔지만이는가격이비싸서저가형시스템에서는사용하기어렵다. 3상의교류전류를측정하기위해서는적어도 2개의홀전류센서가필요한데, 특히소형시스템에서는이것의부피도문제가될수있다. 이러한문제점을해결하기위하여최근에는션트저항을이용하여전동기의상전류를측정하는방법이활발하게연구되었다. 션트저항을이용한전류측정방법에는직류링크의하단에 1개의션트저항을사용하여유효벡터구간에서상전류를측정하는방법과, 3상인버터의아래쪽스위치하단에 3개의션트저항을사용하여영벡터구간에서상전류를측정하는방법이있다 [2]. 션트저항을이용한이러한전류측정방법은특정유효벡터또는영벡터구간에서만전류를측정할수있어서사용할수있는운전영역에제한을받으므로이런단점을보완할수있는추가적인연구가필요하다. 2.4 전동기의회전속도측정간접벡터제어방식을사용하는오늘날의모든유도전동기벡터제어인버터에서속도제어를위해서는물론이고벡터제어알고리즘을적용하는데필요한자속각을계산하기위하여전동기의속도측정이필수적으로요구된다. 전동기의회전속도를측정하려면로터리엔코더와같은기계적인장치를전동기의회전축에부착해야하므로가격이비싸고설치가까다로우며사용환경에제한을받는경우도있다. 현재가전제품과같은저가형양산제품에서가격을낮추는데가장어려운부분이바로전동기의회전속도측 [Fig. 2] Block diagram of inverter control board 3. Cortex-M4 를사용한벡터제어인버터 ARM Cortex-M4는 32비트 RISC 구조의마이크로프로세서로서고속연산을위한 DSP 명령어를지원하며, 삼각함수, 지수함수, 제곱근등의부동소수점연산을실시간으로처리하는단정도의 FPU를내장하고있다. 이는고성능의부동소수점연산처리성능을가지면서도소비전력이매우적고가격이저렴하여전동기제어를비롯한전력제어, 산업용자동화, 자동차, 멀티미디어분야에적합한특성을가지고있다 [5][6][7]. 본논문에서는 STMicroelectronics사의 Cortex-M4형마이크로컨트롤러 STM32F407VET6을사용하여벡터제어인버터를설계하였으며, 컨트롤보드의블록도는 Fig. 2와같다. 3.1 STM32F407VET6의특징 STM32F407VET6은 32비트부동소수점연산형마이크로컨트롤러로서전동기제어에필요한 I/O 기능을모두갖추고있어서단일소자로간단하게시스템을구성하는것이가능하다. 이것은최고 168[MHz] 의높은시스템클록주파수로동작하며소비전력이 1[MHz] 당 230 [μa] 로저전력형이고, 기존의 DSP 소자에비하여가격이매우낮아서가전제품과같은양산용제품에적용하기유리하다. 818
Table 1 에 STM32F407VET6 의주요특징을요약한다. [Table 1] Features of STM32F407VET6 Item CPU Memory Peripherals Features ARM 32bit Cortex-M4F core System clock of max. 168[MHz] 210DMIPS Single precision FPU DSP instruction 512KB Flash Memory 192KB SRAM 3 12bit A/D converter 12 16bit timer 2 32bit timer PWM output and encoder interface mode 3.2 벡터제어알고리즘의연산속도비교 STM32F407VET6 마이크로컨트롤러를벡터제어인버터에사용할수있는지를판단하기위하여몇가지연산처리속도를측정하고, 이를 TMS320F28335의연산처리속도와비교하여 Table 2에보였다. [Table 2] Arithmetic performance of STM32F407VET6 Model STM32F407VET6 TMS320F28335 System clock 168[MHz] 150[MHz] sin(x) 0.68[μs] 0.5[μs] cos(x) 0.68[μs] 0.5[μs] Vector control 36[μs] 27[μs] Compiler IAR EWARM V6.30.6 arm_math of CMSIS CCS V5.1.1 ramfuncs 여기서보는것처럼 STM32F407VET6의부동소수점연산속도는 TMS320F28335보다약 30% 정도낮은것으로측정되었지만, 보통벡터제어인버터에서 1개의전류제어또는샘플링주기를 100[μs] 로설계하는데비하여실제벡터제어알고리즘을처리하는시간은 36[μs] 로측정되었으므로이는벡터제어인버터에서충분히만족할만한연산처리속도이다. 3.3 전류제어및속도제어알고리즘 본논문의실험용벡터제어인버터에서전류제어는타이머 TIM1이 0으로될때마다 100[μs] 의주기적인인터럽트를발생시켜 PI 제어기로수행하였고, 속도제어는 5[ms] 의주기로전동기의회전속도를측정하여 PI 제어알고리즘으로처리하였다. 3.4 전류측정 전동기의 3 상전류를검출하기위해서는적어도두상 의전류를측정하고나머지한상은이로부터계산하여얻는다. 각상의전류는홀전류센서를사용하여 A/D 컨버터로측정하며, 적어도두상의전류를동시에읽어야만나머지상의전류를올바르게계산할수있다. TMS320F28x 계열의 DSP는동시에 2채널을 A/D 변환할수있고기준전압이특정값으로지정되는데비하여, STM32F407VET6은최대 3채널까지동시에 A/D 변환이가능하고기준전압은지정된범위에서임의로인가할수있다. 특히 3채널을동시에변환할수있다는것은 2개의상전류와직류링크전압을동시에측정하거나또는 3개의션트저항을사용하여전류를측정할경우에상당히유리하다. 본논문에서는전류측정을위하여인버터의 a상과 b상출력에홀전류센서를사용하였고, 여기에직류링크전압을추가하여 3채널을동시에 A/D 변환하였다. 3.5 회전속도측정전동기의회전속도를측정하려면증가형로터리엔코더를널리사용한다. STM32F407VET6의타이머에는 TMS320F28x 계열 DSP의 QEP기능과유사하게전동기의회전속도와방향을측정하기위한 Encoder interface mode를가지고있으며, M/T 방식을사용할수있고엔코더신호를 4체배하여속도측정의분해능을높일수있다. 본논문의실험용인버터에서는 32비트타이머 TIM2 를 Encoder interface mode로사용하였고, 3600[ppr] 의로터리엔코더신호를 4체배하여전동기의회전속도를측정하였다. 3.6 공간전압벡터 PWM 본논문에서는전류제어기의응답특성이우수하고출력전류의고조파가적은공간전압벡터 PWM(Space Voltage Vector PWM ; SVPWM) 을사용하여 3상인버터를구동하였다. SVPWM에서는제어기가요구하는임의의기준벡터를생성하기위하여 1개의샘플링시간내에 2개의인접벡터및영벡터를 3상대칭변조법으로인가한다 [8]. 이러한 PWM 출력신호를발생하는기능은 STM32F407VET6과 TMS320F28x 계열 DSP가거의유사하여 2개의독립적인 3상대칭형 SVPWM 출력모듈을가지고있으며, 여기에데드타임 (dead time) 을부여하는기능을포함하고있다. 본논문에서는 16비트타이머 TIM1을사용하여 SVPWM을구현하였고, 샘플링시간은 100[μs] 로하였으며, 데드타임은 1[μs] 로설정하였다. 819
한국산학기술학회논문지제 14 권제 2 호, 2013 4. 실험결과 본논문에서사용한실험장치의사진을 Fig. 3에보였다. 컨버터와인버터로구성되는전력회로와제어회로를하나의통합보드로제작하였으며, 200[W] 급 3상유도전동기와직류발전기를 M-G세트로구성하여부하시험이가능하도록하였다. 모든제어프로그램은 C언어로작성하였고, 개발툴로는 IAR EWARM과저가형에뮬레이터 ST-LINK/V2를사용하였다. (b) 1/2 load test (+1200-1200 0[rpm]) [Fig. 4] Speed response characteristics of motor [Fig. 3] Photograph of experimental equipment 기동및가변속특성실험으로전동기를무부하와 1/2 부하에서각각기준속도 +1200[rpm] 으로스텝기동하고, 0.8[sec] 후에이를 -1200[rpm] 으로역회전시키며, 다시 0.8[sec] 후에정지시킨경우의실험결과는 Fig. 4와같다. 벡터제어가잘수행되어전동기의회전속도가기준속도에빠르게응답하는것을볼수있다. (a) Load increment (no load 1/2 load) (b) Load decrement (1/2 load no load]) [Fig. 5] Transient characteristics of load variation (a) No load test (+1200-1200 0[rpm]) 부하변동에대한과도응답특성실험으로전동기를 +900[rpm] 에서무부하로운전하다가 1/2부하를스텝인가한경우와 1/2부하로운전하다가무부하로스텝제거 820
한경우의실험결과를 Fig. 5에보였다. 부하가갑자기증가하는경우에는전동기속도가약간감소하고, 반대로부하를제거한경우에는속도가약간증가하지만곧안정화되어기준속도를추종하는것을볼수있다. 5. 결론 본논문에서는 DSP 기능이내장된 32비트 ARM Cortex-M4 마이크로컨트롤러를사용하여가전제품등을위한유도전동기의저가형벡터제어인버터를구현하였다. 이를 200[W] 급의 3상유도전동기에적용한결과벡터제어인버터를수만원대의초저가로구현할수있었으며, 기존의전동기제어용 DSP에버금가는양호한벡터제어성능을확인함으로써이제는 Cortex-M4 마이크로컨트롤러가저가격으로기존의전동기제어용 DSP 소자를충분히대체할수있다는것을보였다. References [1] Jeong-Gyu Lim, Seok-Hwan Kim, Se-Kyo Chung, Implementation of Compact Vector Control System for Induction Motor Using TMS320F2812 DSP and Smart Power Module, Symposium of Power Electronics, pp.11~14, 2004. [2] Seung-Min Shin, Jong-Soo Kim, Rae-Kwan Park, Byoung-Kuk Lee, In-Soung Jung, Analysis of variable speed motor drive performance according to current sensing methods, ICEMS(International Conference on Electrical Machines and Systems), pp. 748~752, Oct. 2010. [3] Seung-Ki Sul, Bong-Hyun Kwon, Jun-Koo Kang, A Study on the Vector Control of Induction Motor Based on Speed Estimation, Journal of KIEE, Vol. 39, No. 9, pp. 928~933, 1990. [4] LS Power Semitech, CIPOS IGCM06F60GA datasheet, 2011. [5] ARM, Cortex-M4 Technical Reference Manual, 2010. [6] STMicroelectronics, STM32F405xx, STM32F407xx data sheet, 2012. [7] STMicroelectronics, RM0090: STM32F4xx Reference Manual, 2011. [8] Duck-Yong Yoon, Soon-Chan Hong, Speed Control of Permanent Magnet Synchronous Motor Using Space Voltage Vector PWM, Journal of KIEE, Vol. 43, No. 7, pp. 1112~1120, 1994. 김동기 (Dong-Ki Kim) [ 준회원 ] 2009 년 2 월 : 공주대학교전기전자제어공학부제어계측공학전공 2011 년 3 월 ~ 현재 : 공주대학교대학원전기전자제어공학과석사과정 2009 년 1 월 ~ 현재 : ABB 코리아산업자동화사업본부저압드라이브사업부품질보증팀근무 < 관심분야 > 3 상유도전동기벡터제어, 풍력발전시스템 윤덕용 (Duck-Yong Yoon) [ 정회원 ] 1983 년 2 월 : 서울대학교대학원전기공학과 ( 공학석사 ) 1995 년 2 월 : 단국대학교대학원전기공학과 ( 공학박사 ) 1982 년 12 월 ~ 1984 년 5 월 : 삼성전자종합연구소주임연구원 1985 년 3 월 ~ 현재 : 공주대학교전기전자제어공학부교수 < 관심분야 > 전동기서보제어, 마이크로프로세서응용설계 821