https://e2e.ti.com/blogs_/b/motordrivecontrol/archive/2014/11/20/start-your-brushless-dc-journey-with-motor-startup-part-i
https://www.infineon.com/dgdl/ap0801810_Sensorless_Variable_Inductance_Sensing.pdf?fileId=db3a304412b407950112b40c7c150b39


빠르고 신뢰성 있는 startup는 많은 시스템 설계자가 이미 해왔던 것처럼 도전입니다. 가장 어려운 도전은 거의 모든 센서리스 해법이 위치 추정을 위해서 BEMF(back electromotive force) 감지에 의존하기 때문에 정지 상태로부터 출발이라는 것입니다. BEMF는 모터 속도에 비례하고 startup 전에는 '0'입니다. 결과적으로 초기 위치 감지(initial position detection; IPD)를 위해서는 inductive sense, mutual inductance 등 혹은 모터를 간단히 회전시키는 방법(blindly spin up; "align and go") 등 다른 방법을 찾을 필요가 있다는 것입니다. 이들 2가지 방법은 장점과 단점을 가지며 어떤 애플리케이션에 대해서는 유용합니다. 우리의 애플리케이션에 대해서 최상의 해법과 최상의 파라미터를 찾기 위해서 이들 장단점 사이에서 trade off를 결정해야만 합니다. 다양한 애플리케이션을 지원하기 위해서 이상적으로 모터 드라이버는 유연성과 startup 방법과 startup 파라미터를 선택할 수 있는 옵션을 제공해야 합니다.


'blind' startup (혹은 ramp up method)


비록 많은 새로운 첨단의 BLDC 제어 알고리즘이 위치 관측(position observation), 위치 추정(position estimation) 그리고 FOC(field-oriented control)를 강조할지라도, 알려진 commutation 시퀀스를 간단히 이용해 모터를 "blindly" 강제 구동하는 방법이 여전히 종종 사용됩니다.


스텝퍼(stepper) 모터를 생각해보면, 스텝퍼 모터의 위치는 피드백 센서 없이 수백 개의 스텝 중의 하나로 이동하고 멈추도록 명령될 수 있습니다. 이는 부하가 너무 크지 않는 이상 적당한 애플리케이션에서 잘 동작합니다. 모터가 잘못된 스텝으로 그리고 멈추기도 합니다. 피드백 센서 없이 제어기는 잘못된 스텝이나 정지 조건을 알아차리지 못합니다. 그러므로 'blind' 혹은 'open loop control'이라 부릅니다.


Brushed DC 모터 제어를 생각해보면, brushed DC 모터는 피드백 센서 없이, 제어기 조차도 없이 DC 전원으로부터 작동되도록 설계됩니다. 모터의 속도는 부하가 증가하는 동안 떨어집니다. 모터 속도를 감지하기 위한 특별한 기술이 존재하지 않는 이상, brushed DC 모터는 'blindly' 제어됩니다.


이러한 개념을 3상 BLDC 모터에 구현하면 다음과 같습니다. U상에서 V상으로 DC 전류를 공급하고 모터가 자리잡을 때까지 기다립니다(실제로 우리는 충분히 길게 기다릴 수 있습니다. 왜냐하면 우리는 'blind' 제어를 수행하고 있고 우리는 모터가 정지했는지 아닌지 알 수 없기 때문입니다). 그리고 나서 W상에서 V상으로 DC 전류를 공급하고 기다립니다. 이를 다음의 시퀀스 WU->VU->VW->UW->UV->WV->WU로 지속합니다. 모터는 약간의 흔들림과 함께 회전을 시작할 것입니다.



각 스텝에서 흔들림을 최소화하기 위해서 우리는 간단히 스텝 사이즈를 줄여 위에서 보여지는 2 스텝의 각 사이에 하나의 스텝을 추가하여 회전을 부드럽게 할 수 있습니다. 예를 들어 UV와 WV 사이에 (UW)V 스텝을 추가하고 그 의미는 U상과 W상이 동시에 V상에 전류를 공급함을 의미합니다.



만약 좀더 부드럽게 개선을 원한다면 우리는 존재하는 스텝 사이에 추가적으로 스텝을 더 추가할 수 있습니다. 예를 들어 UV에서 (UW)V 사이에 U상의 전류의 크기를 감소시키고 W상에 전류를 증가시키는 방법으로 몇 개의 스텝에 이를 반복하는 것입니다. 스텝의 수가 어떤 높은 값에 도달하면 제어는 스텝이 없고 부드러운 프로파일을 보여줍니다. 이는 또 사인파 프로파일로 변조(modulate)될 수 있습니다(DRV10983은 256 스텝의 모든 전기적 사이클을 갖고 사인파 전류 프로파일을 제공합니다).



사인파 'blind' startup은 적당한 크기로 3상 사인파 전류를 공급하는 것입니다. 이는 '0' (혹은 매우 낮은) 주파수에서 시작해서 모터의 실제 위치에 상관없이 적당한 가속으로 사인파 전류의 주파수를 증가시킵니다(open-loop 동작). Open-loop 동작은 모터를 어느 속도로 동작시키는데, 이 속도는 모터의 제어 로직이 closed loop로 모터를 정확하게 구동시킬 정도로 충분한 BEMF를 생성할 것입니다(closed-loop 제어는 모터 위치 기준 제어(motor position oriented control)를 의미합니다).



'Blind' startup는 부하 조건이 예측 가능한 애플리케이션에 특별히 모터의 속도를 올리는 매우 실용적인 방법입니다. 그러나 넓은 범위의 모터의 응용을 커버하기 위해서는 몇개의 파라미터들이 startup 성능을 최적화시키기 위해서 적절히 선택되는 것이 필요합니다.



Parameter 1: Open to closed loop threshold. (Op2ClsThr)


예제로 모터 A는 진공청소기 용이고 60,000rpm (4pole, 2000Hz)까지 회전합니다. 이 모터의 BEMF는 5mV/Hz. 모터 B는 천정팬 용이고 최대 속도는 150rpm (8pole, 10Hz)이고 모터 B의 BEMF는 1V/Hz입니다. 우리는 모터 A에 대해서 약 200Hz에서 Op2ClsThr을 설정할 필요가 있습니다. 왜냐하면 이 모터는 closed-loop control를 위해서 200Hz에서 1V BEMF을 생성하기 때문입니다. 우리는 모터 B를 200Hz에서 Op2ClsThr 설정을 원치 않습니다. 왜냐하면 그것은 그렇게 높이 결코 도달하지 않기 때문입니다. 모터 B에서는 1Hz 혹은 1.5Hz가 훌륭한 선택입니다. 만일 여러분이 매우 작은 BEMF 정보를 요구하는 closed-loop control 방법을 갖고 있다면 여러분은 낮은 속도에서 제어를 closed loop로 넘기는 것을 고려할 수 있습니다.


Parameter 2: Align time (AlignTime)


모터는 다음 startup 전에 어떤 위치에서도 정지할 수도 있습니다. 'blind' startup은 초기 위치가 알려지지 않았기 때문에 어떤 애매한 초기 위치에서 모터를 회전시키는데 종종 실패하기도 합니다. 이것이 왜 우리가 초기화가 필요한지를 말해줍니다. 모터 상에 사인파 전류를 흘리기 전에 우리는 어떤 시간 동안 고정 상태(예를 들어 U에서 V로)로 DC 전류를 구동하는 것에 의해서 모터를 초기화하고 고정된 알려진 위치로 모터가 자리잡도록 할 수 있습니다. 이 방법이 'align and go'로 알려집니다.



정렬의 결과로서 다음 스텝, 가속은 알려진 고정된 위치에서 시작합니다. 이 기술은 모터의 초기 위치의 불확실성을 제거하기 때문에 startup 신뢰도를 중요하게 개선합니다. Align time은 모터가 처음에 어디에 있더라도 기대된 위치에 올바로 자리잡는 것을 담보하기 위해서 충분히 긴 시간이 요구됩니다. 그러나 거기에는 작은 여지가 있는데 모터의 초기 위치가 정렬 위치와 아래 그림에서와 같이 반대인 경우(180도 전기각이 떨어져 있는)입니다. 이 조건에서 우리는 아무리 오랫동안 정렬을 할지라도 로터는 움직이지 않을 것입니다.



여기에 2가지 해법이 있습니다:


1) Dual-align: 서로 120도 떨어져 (혹은 0도 혹은 180도를 제외한 어떤 각도) 두번 정렬을 실행합니다. 만일 모터가 처음 정렬 이전에 불운한 위치에 있었다면, 두번째 정렬은 그것을 확실하게 두번째 정렬 위치로 당길 것입니다.



2) Dynamic align: 고정된 위치에 정렬하는 것 대신에 정렬을 하는 동안 위치를 천천히 움직입니다. 아래와 같이 이러한 동작은 가속과 함께 조합될 수 있으며 그 결과 우리는 부드럽고 더욱 신뢰성 있는 startup을 얻을 수 있습니다.



Parameter 3: Motor acceleration rate. (A1)


모터 구동 토크는 acceleration momentum 공급하고, 샤프트 마찰(shaft friction)과 어떤 부하를 극복하는 것이 요구됩니다.


Td = A1*J + Tf

Td = Kt*Ip*cos(Ө)


그러므로, A1 < Kt*Ip / J


A1: Acceleration rate

Tf: Motor load torque

J: Motor inertial

Td: Motor driving torque

Ө: Angle between combined 3-phase current and rotor position

Kt: Motor torque constant

Ip: Motor phase current peak



큰 관성 모터는 느린 acceleration rate를 요구합니다; 작은 Kt 모터는 느린 acceleration rate를 요구합니다; 높은 구동 전류는 빠른 acceleration rate를 지원할 수 있습니다. 만일 Kt*Ip > Td이면 Ө는 자동적으로 0에서부터 90 이하로 증가할 것입니다.


Parameter 4: Second order acceleration (A2)


2차 가속은 동적인 정렬과 가속 프로파일(포물선)을 생성합니다. 만일 모터가 초기 위치 감지(IPD) 혹은 startup 이전에 정렬을 했다면 2차 가속은 필요하지 않습니다.


Parameter 5: Startup current


startup 전류는 'blind' 동작 구간 중에 인가된 전류입니다. 만일 'blind' startup acceleration rate가 선택되었다면 startup 전류는 startup 구간에 영향을 주지 않을 것입니다. 그러나 작은 startup 전류는 startup 실패를 야기할 수 있는 좀 더의 기회를 갖을 것입니다. 다른 한편으로 만일 작은 startup 전류가 애플리케이션에서 요구된다면 우리는 신뢰성 있는 startup을 확보하기 위해서 acceleration rate를 낮추는 것이 요구됩니다. 'blind' startup에는 몇가지 단점이 있습니다.


1) startup은 closed loop 방법보다 느립니다.


100% 성공률을 얻기 위해서 acceleration rate은 큰 마진과 함께 식 A1 < Ip*Kt / J을 만족시켜야 합니다. 왜냐하면 제어기는 모터가 동상에 있는지 아닌지(즉 모터가 구동 속도를 따르는 것을 실패하는 것입니다) 알지 못하기 때문입니다. 만일 어떤 것이 모터 회전을 방해한다면, 제어기는 모터의 이들 벗어난 조건을 바로잡는 것이 불가능하고 시도하지도 않습니다. 예를 들어, 샤프트 마찰은 조립의 이유로 다른 모터들보다 혹은 모터가 완전히 정지하지 않은 그리고 제어기가 회전을 시도할 때 반대방향으로 움직일 때보다 조금 큽니다.


2) 예측 가능한 부하에 대해서 잘 동작합니다.


면도기, 머리 트리머 그리고 장난감에 대하여 부하는 어떻게 사용자가 그것을 사용하는 가에 따라 크게 변하게 됩니다.


3) 서로 다른 모터와 애플리케이션에 대해서 다른 파라미터를 요구합니다.


사용자는 부하 조건을 이해하고 모든 특별한 애플리케이션에 적합하도록 제어기를 튜닝할 필요가 있습니다. 무엇보다도 'blind' startup은 팬이나 펌프 그리고 예측 가능한 부하를 갖는 다른 형태의 모터에 실용적인 방법입니다.


The drawback of ‘blind’ spin up is that the motor may start with back and forth; the aesthetics aren’t desirable if the motor blades are exposed to customers (for example ceiling or pedestal fans. Also, for applications where reverse spinning is prohibited (for example HDD motor or VCM) you should not choose ‘blind’ spin up. Initial position detect (IPD) method can avoid the reversing or back and forth during startup. Check back for part III of this series, which will cover the principle of IPD, the typical implementation of IPD and the how to select the IPD parameters.

'blind' startup의 결점은 모터가 앞뒤로 움직이며 회전을 시작할 수 있다는 것입니다; 미학은 모터의 바람개비 날개가 사용자에게 노출되는 한 요구되지 않는다는 것입니다(예를 들어 천장 혹은 받침대 팬). 또한 역회전이 금지된 애플리케이션(예를 들어 HDD 모터 혹은 VCM)에서 'blind' startup을 선택하지 않아야 합니다. 초기 위치 감지(IPD) 방법은 역회전 혹은 startup 동안에 앞뒤로 움직임은 피할 수 있습니다.



'Flight Controller 이해 > 모터제어이론' 카테고리의 다른 글

Start up with BLDC(PMSM) - variable inductive sense  (0) 2018.01.19
전기회로 vs. 자기회로  (5) 2016.02.26
SPM vs. IPM  (1) 2016.02.26
PMSM의 모델식  (0) 2016.02.26
PMSM의 토크 제어 방법  (0) 2016.01.28
Posted by Nature & Life