출처 : By Benjamin Vedder

http://vedder.se/2015/01/vesc-open-source-esc/

http://vesc-project.com/

https://github.com/vedderb/bldc(bldc 펌웨어 설계) : 모든 하드웨어 버젼에 사용

https://github.com/vedderb/bldc-hardware(bldc 하드웨어 설계) : v4.12까지

http://vesc-project.com/node/311(bldc 하드웨어 설계) : v6.4부터

https://github.com/vedderb/bldc-tool(bldc-tool 설계) : v2.18까지

https://github.com/vedderb/vesc_tool(vesc-tool 설계, bldc-tool의 새로운 버젼)

https://github.com/vedderb/bldc-logger(bldc-logger 설계)

https://github.com/vedderb(기타 프로젝터 설계)


VESC – Open Source ESC

Posted on January 7, 2015 and Post updated 2016-01-22


About this project

I have made many updates to my custom motor controller recently and the old post is getting confusing with notes and updates, I decided to write a new post about it that hopefully is more clear, more complete and easier to follow. This might sound a bit ambitions, but my goal is to make the best ESC available. I really enjoy sharing knowledge, so I want to keep all the hardware and software open.

저는 최근에 제 모터 제어기에 많은 개선을 해왔습니다 그리고 이전에 게시된 내용은 설명과 업데이트에서 혼선을 일의키고 있고, 저는 좀더 분명하고 좀더 완전하며 좀더 이해하기 쉽게 하기 위해서 새로운 게시글을 작성하기로 하였습니다. 이는 약간 애매할 수도 있지만 저의 분명한 목표는 가장 좋은 ESC를 만드는 것입니다. 저는 사실 지식을 공유하는 것을 즐깁니다. 따라서 저는 모든 하드웨어와 소프트웨어를 공개하기를 원합니다.


This is an overview of the schematic (download a complete PDF here):


This is the front of the PCB:


The back:


3D render from KiCad:


Some screenshots of the configuration GUI (BLDC Tool):


Resources

All files are on github to keep them up to date, so check these links on a regular basis:


Related posts


Forums

Because information about the VESC is scattered all over the internet and a lot of information is in email conversations with me, I have created a forum dedicated to the VESC here.

VESC에 대한 정보는 인터넷 상에서 퍼져있기 때문에 많은 정보는 저와 이메일로 대화합니다. 저는 여기에 VESC에 대한 포럼을 만들었습니다.


Live Chat

I have created an IRC channel on freenode where you can live chat with me and other users about VESC and my other projects. Feel free to join: http://webchat.freenode.net/?channels=vedder


Features

    • 하드웨어와 소프트웨어는 오픈소스입니다. 다양한 CPU 리소스가 남았기 때문에 사용자 최적화는 무한합니다.

    • STM32F4 microcontroller.

    • DRV8302 MOSFET driver / buck converter / current shunt amplifier.

    • IRFS7530 MOEFETs (other FETs in the same package also fit).

    • DRV8302에 집적화된 buck converter로부터 외부 전자장치를 위한 5V 1A 출력.

    • Voltage: 8V – 60V (Safe for 3S to 12S LiPo).

    • Current: 수 초동안 250A까지 혹은 온도와 PCB 주변에 공기 순환에 의존하여 연속적인 약 50A.

    • Sensored and sensorless FOC wich auto-detection of all motor parameters is implemented since FW 2.3.

    • Firmware based on ChibiOS/RT.

    • PCB size: slightly less than 40mm x 60mm.

    • Current and voltage measurement on all phases.

    • Regenerative braking.

    • DC motors are also supported.

    • Sensored or sensorless operation.

    • A GUI with lots of configuration parameters.

    • Adaptive PWM frequency to get as good ADC measurements as possible.

    • RPM-based phase advance (or timing/field weakening).

    • Good start-up torque in the sensorless mode (and obviously in the sensored mode as well).

    • The motor is used as a tachometer, which is good for odometry on modified RC cars.

    • Duty-cycle control(voltage control), speed control or current control.

    • Seamless 4-quadrant operation.

    • Interface to control the motor: PPM signal (RC servo), analog, UART, I2C, USB  or CAN-bus.

    • Wireless wii nunchuk (Nyko Kama) control through the I2C port. This is convenient for electric skateboards.

    • Consumed and regenerated amp-hour and watt-hour counting.

    • Optional PPM signal output. Useful when e.g. controlling an RC car from a raspberry pi or an android device.

    • USB포트는 모뎀 프로파일을 사용합니다. 그래서 안드로이드 디바이스는 루팅 없이 모터 제어기에 연결할 수 있습니다. 서보 출력, 주행거리계(odometry) 그리고 여분의 ADC 입력(센서를 위하여 사용될 수 있슴) 때문에 이것은 안드로이드( 혹은 raspberry pi)로 제어되는 RC 카를 개조하기에 완벽합니다.

    • Adjustable protection against

        • Low input voltage

        • High input voltage

        • High motor current

        • High input current

        • High regenerative braking current (separate limits for the motor and the input)

        • Rapid duty cycle changes (ramping)

        • High RPM (separate limits for each direction).

    • 전류 한계에 도달했을 때 모터가 동작을 유지하면서 soft back-off 전략이 사용됩니다. 만일 전류가 너무 높다면, 모터는 완전하게 OFF 됩니다.

    • RPM limit은 또한 soft back-off 전략을 갖습니다.

    • Commutation은 모터 속도가 급격하게 변동할 때 조차도 완벽하게 동작합니다. 이는 이전 속도에 근거하여 지연을 추가하는 것 대신에 zero crossing 후에 자속을 적분한다는 사실 때문입니다. 

    • 제어기가 커진 동안에 모터가 회전할 때 commutation과 회전방향은 추적됩니다. 같은 속도를 얻기 위해서 듀티 싸이클이 또한 계산됩니다. 이는 모터가 이미 회전중일 때 부드러운 출발을 얻게 합니다. 

    • 모든 하드웨어는 센서 없는 자속 기준 제어(field-oriented control; FOC)를 위해서 준비되었습니다. 소프트웨어를 작성하는 것이 남아있습니다. 그러나 저는 FOC가 조금 정숙하게 동작한다는 것 외에 저 인덕턱스 고속 모터에 대하여 많은 이득을 갖는 것인지 아닌지 확신하지 못합니다. 센서 그리고 센서 없는 FOC는 FW 2.3 이후에 완전하게 구현되었습니다.



Posted by Nature & Life


루프만 칼만(Rudolf E. Kalman)이 1960년대 초 개발한 필터(filter)로 과거의 정보와 새로운 측정값을 사용하여 측정값에 포함된 잡음(noise)를 제거시켜 추정(estimate)(최적의 값을 추적)하는데 사용하는 알고리즘(algorithm)입니다. 선형적(linear) 움직임을 갖는 대상에 재귀적(reculsive)으로 동작시킵니다. 이는 누적된 과거 데이터와 현재 얻을 수 있는 최선의 측정치로 현상태를 추정하고자 함으로 결국, 자연계의 움직임은 어느 정도 예측가능하고 일반적 움직임 물성을 갖기 때문입니다.


여기서 선형시스템은 행렬연산을 가능하게 만들기 때문이며, 잡음은 시간에 영향이 없는 백색잡음(white noise)이고 Gaussian 분포(정규분포; normal distribution)를 따라야 하는데 이는 평균과 공분산으로 정확히 모델링이 가능하기 때문입니다. 여기서 LPF(low pass filter)나 HPF(high pass filter)처럼 물리적 필터가 아닌데도 불구하고 필터로 불리는 것은 컴퓨터로 이산신호처리시 시간영역에서 필터링과 같기 때문입니다. 참고로 선형시스템이란 특정 시점에서의 상태는 이전 시점의 상태와 선형적인 관계를 가지고 있는 경우를 말합니다.


만일 대부분의 자연계의 속성처럼 시스템이 비선형이고 잡음도 Gaussian 분포를 따르지 않는 경우가 많으므로 칼만필터의 변형이 요구되는데 이때 확장 칼만필터(Extended Kalman Filter; EKF)가 오류는 있지만 가장 많이 사용되고 있으며, EKF는 선형화 칼만필터(Linearized KF)와 유사하나 선형화하는 기준점을 계속 갱신해 나간다는 특징이 있습니다. UKF 참고


재귀적 자료 처리(recursive) 방식은 과거 데이터의 평균을 알기 위해서 엄청난 양의 데이터를 저장하고 갱신할 때마다 모두 계산하는 방법이 아닌 과거값과 현재의 값만 기억하여 전체 평균을 알고자 함입니다. 예를 들어, k개의 값이 입력되었다면 현재까지의 평균 Y(k)=Y(k-1)*((k-1)/k) + (1/k)*Vk로 표현할 수 있습니다. 여기서 Vk는 k번째 입력이고 k-1번째의 평균값 Y(k-1)만 알면 전체 평균을 알 수 있다는 것입니다.


만일 입력된 2개의 데이터, V1, V2의 평균은 (V1+V2)/2인데 이 경우 두 데이터의 중요도는 같습니다. 그러나 한 데이터가 잡음에 가까워 튀었다면 평균을 계산하는데 가중치가 달라져야 할 것입니다. 평균에서 얼마나 벗어났는가를 나타내는 지표는 표준편차이고 각 데이터의 중요도는 표준편차의 제곱에 반비례합니다. 그러므로 표준편차가 크면 클수록 그 값의 중요도는 떨어지고 평균에 대한 기여도도 적어져야 할 것입니다.


이와 같이 연속적인 이전의 출력값과 새로운 입력값을 중요도를 감안하여 과거와 현재의 2개 데이터로 평균을 구할 수 있고 새로운 최적값(optimized state variables)을 계산하는 측정갱신 알고리즘(measurement update algorithm)의 형태가 만들어지는데 이것이 칼만필터이고 기본식은 일반적으로 행렬(Matrix) 혹은 벡터(Vector) 형태로 나타냅니다.


선형시스템 기술할 때 일반적으로 아래의 2개의 간단한 수식으로 표현됩니다. 첫번째는 상태방정식(state equation)으로 시스템의 신호 파형을 표현하며 'Process Model' 혹은 'Plant Model'라고도 부릅니다. 두번째는 출력방정식으로(output equation) 시스템 신호 중 측정 가능한 값들을 표현하며, 'Measurement Model', 혹은 'Sensor Model'라고 부릅니다.



A는 이전 상태에 기반한 상태 전이 행렬이고 H는 해당 시간에 측정에 관계된 행렬이며, k는 시간, x는 시스템의 상태를 나타내는 벡터(Vector)입니다. 는 센서 등을 이용해서 측정된 값을 의미하며, w, v는 noise 혹은 error입니다. 특히 w는 프로세스 혹은 시스템 잡음(Process Noise), v를 측정 잡음(Measurement Noise)라고 부르며 평균이 '0'인 정규분포입니다. x, z, w, v는 시스템을 설명하는 대부분 다변수이기 때문에 벡터입니다. 여기서 초기 상태와 각 잡음은 상호 독립이어야 합니다.


시스템의 상태벡터 x는 시스템의 현재 상태에 대한 모든 정보, 예를 들어 비행체의 위치 정보와 각도, 가속도 등을 나타냅니다. 하지만 중요한 것은 이들을 직접적으로 측정할 수가 없어서 대신에 측정 잡음 v를 포함하는 센서의 출력을 이용하는 것입니다. 다음은 시스템의 현재 상태 대를 구하는 위한 칼만 필터의 알고리즘 입니다.



위 그림에서 'Time Update'는 상태방정식으로 이전 데이터를 근거고 예측하는 부분이고, 'Measurement Update'는 측정 모델(Measurement model)로써 새로운 측정값으로 교정하는 부분입니다.


x와 P는 초기예측이 필요하고 K는 칼만 이득, P는 오차 공분산 행렬(error covariance matrix), Q는 시스템 잡음(, 위 그림에서 )의 공분산 행렬이고 상태 의 크기가 n*1이면 n*n 크기의 대각행렬이고R은 상수값으로 측정 잡음()의 공분산 행렬로 센서 제조사가 제공하기도 합니다. x위의 ^(hat)의 의미는 추정된 'estimated(priori state)'이라는 의미이며, 첨자 '-'는 아직 보정되지 않음을 뜻합니다. 


의 초기치를 결정합니다.


Time Update:

(1) 으로부터 현재 상태변수를 예측합니다.

(2) 오차 공분산을 예측합니다.

추정 오차(estimation error)는 다음과 같이 유도할 수 있습니다.



그러므로 공분산 행렬은 다음과 같습니다. 여기서 입니다.


      


위 식에서 두번째와 세번째 항은 시스템 잡음()과 추정 오차의 공분산인데 시스템 잡음은 백색잡음으로 추정 오차와 상관성이 없으므로(uncorrelated) '0'이 됩니다.



Measurement Update:

(1) 칼만 이득을 구합니다.

시스템에 대한 추정으로부터 오차 공분산을 구했으면 추정에 대한 불확실성을 표현할 수 있는 가장 간단하면서 강력한 방법 중에 하나는 Gaussian 분포로 표현하는 것입니다. 는 의 추정에 대한 평균과 분산을 가지는 Gaussian 확률 밀도 함수(Probability Density Function, PDF)로 정의할 수 있습니다. 만약 Gaussian PDF로 추정을 한다면, 가 r 에 위치할 확률은 다음과 같습니다.



Gaussian PDF를 이용하여 프로세스 오차 및 측정 오차를 표현하며, 이 Gaussian PDF는 매 state 마다 를 추정할 때와 측정할 때 각각 따로 존재하고, 최종 추정 값은 이 두 Gaussian PDF의 합성(fusion)을 이용해야 한다는 것입니다. 여기서 Gaussian PDF의 중요한 속성을 이용하는데, 서로 다른 두 개의 Gaussian PDF를 합성하면 또 다른 형태의 Gaussian PDF가 만들어진다는 것이다. 우리는 이러한 특성을 이용해 복잡도를 증가시키지 않고 매 state에 대한 Gaussian PDF를 계산할 수 있다는 것입니다.



위 그림에서와 같이 추정에 대한 Gaussian PDF의 식을 다음과 같이 정리하고,



또한 측정에 대한 Gaussian PDF의 식을 다음과 같이 정리할 수 있습니다.



위 두 개의 Gaussian PDF의 곱을 통해 PDF가 합성됨으로 인해 새로운 Gaussian PDF를 다음과 같이 얻을 수 있습니다.
  

                       

위 함수를 다시 정리하면,


여기서 는 다음과 같습니다. 




위의 두 식은 시스템 잡음 및 측정 잡음이 같은 도메인 혹은 단위에 있다고 가정하였지만 실제로는 다르기 때문에 한쪽의 Gaussian PDF를 다른 한 쪽의 Gaussian PDF에 곱하기 위해서는 도메인을 맞추어 주어야 합니다. 이를 위해서 시스템 잡음 쪽을 c로 나누어 스케일링을 통해 측정 잡음 도메인으로 맞추었습니다.


 


위 식을 이용하여 합성 평균과 분산을 다시 구하면 다음과 같습니다.


위의 식에서  그리고 으로 치환하면 아래와 같은 식으로 다시 쓸 수 있습니다.



한편 분산은 다음과 같습니다.



위 식을 칼만 필터 알고리즘에 적용을 위해 정리하면 다음과 같습니다.



이와 같이 칼만 필터 알고리즘의 모든 식을 유도할 수 있습니다. 한편 칼만 이득은 오차 공분산의 기대값 을 최소화하는 값을 찾는 것으로도 유도할 수 있는데, 이는 최소 자승법(Least mean square; LMS)으로 오차 공분산의 도함수가 '0'일 때가 최소이며 이 경우에 칼만 이득이 결정되게 됩니다.


위 칼만이득의 식에서 측정잡음(Measurement noise)의 공분산 R이 매우 크면 칼만이득이 작아지고 다음 단계의 추정치를 계산할 때 현재의 측정값이 무시되는데, 이는 측정잡음의 공분산이 크다는 것은 신뢰성이 떨어짐을 의미하므로 현재의 측정치를 무시하게 된다는 것입니다. 또한 예측오차 공분산(Process noise) P가 매우 크면 칼만이득은 '1'에 근접하고 측정치를 그대로 사용하게 되는데 이는 오차가 커져 오직 측정치에 의존함을 보입니다.


(2) 보정된 상태변수를 갱신합니다.

만일 H=I(Identity matrix), 위 식은 다음 식과 같이 변형이 가능합니다.



칼만 이득인 K가 '1'에 가깝다는 것은 센서로부터 측정된 값을 전적으로 신뢰할 수 있슴을 의미합니다. 그러므로 상태변수로부터 예측된 를 무시하고 100% 전적으로 신뢰할 수 있는 측정된 값 를 상태변수로 간주합니다. 하지만 K가 '0'에 가깝다는 말은 센서로부터 측정된 상태변수 값을 전혀 믿지 못하고 이전 k-1 스텝의 상태변수 값을 사용하여 예측된 상태변수를 사용하겠다는 것입니다.


(3) 보정된 오차 공분산을 갱신합니다.


평균(mean, average), 표준편차(standard deviation)와 분산(variance)은 각 데이터가 평균을 중심으로 얼마나 퍼져있는가를 나타내는 척도입니다. 평균은 , 분산과 표준편차 각각 , 로 나타내면 다음과 같습니다. 또한 공분산(covariance)은 2개의 변수간에 상관관계를 나타내는 것으로, Cov로 표시합니다. 단, 는 데이터의 갯수입니다.



공분산이 '0'보다 크면 x가 증가할때 y도 증가하고 '0'보다 작으면 x가 증가할때 y는 감소하는 경향을 가집니다. 만일 두변수가 아무 상관없이 흩어져 있으면 즉, 독립적이라면 '0'에 근접하게 된다는 것입니다. 열벡터를 갖는 공분산 행렬로 나타내면 다음과 같습니다.



공분산의 a,b가 상수라면 다음의 법칙이 성립합니다.



전술한 바와 같이 보정된 오차 공분산은 다음과 같이 구할 수 있습니다.



그리고 'Time Update'의 (1)단계로 되돌아 갑니다.


결국 칼만 필터는 센서를 동반한 선형시스템에서 비행역학(Flight Dynamics)을 이용해 예측오차(P)와 측정잡음(R)의 신뢰도를 공분산을 이용하여 다음 상태의 최적의 통계적 값을 결정하는 알고리즘으로 반복할수록 오차는 점점 수렴하게 됩니다. 게다가 이전의 측정값 등의 데이터를 저장하는 것이 아닌 현 상태의 평균과 같은 통계량만을 저장함으로서 계산량과 저장 장소를 최소화 한 방법이라 하겠습니다.



참고로 잘 정리된 칼만필터에 대한 개념입니다.

Understanding of the Kalman Filter.pdf



Posted by Nature & Life


3축 가속도와 3축 자이로 센서를 조합한 후 각각의 센서 출력을 내보내는 장치를 관성측정장치(IMU; Inertial Measurement Unit)이라고 부릅니다. 스마트폰에도 탑재되어 있을 정도로 그 용도가 근래에 흔하며, 비행기의 항법 장치에 필수적인 요소입니다. 기체의 자세 제어에 요구되는 롤(Roll), 피치(Pitch), 요(Yaw)의 기울어진 각도를 알기 위함으로, 롤은 좌우로 기울어짐, 피치는 앞뒤로 기울어짐, 요는 z축 방향으로 기울어짐(회전각)을 의미합니다. 여기서 롤과 피치는 중력방향을 기준으로 얼마나 기울어져 있는지를 나타냅니다.



이처럼 롤과 피치 그리고 요와 같은 자세 측정을 위해서는 필요한 장치가 자이로와 가속도 센서입니다.


MEMS 기반의 3축 가속도 센서(Accelerometer)는 x축, y축, z축 방향의 가속도를 측정할 수 있으며 단위는 [g]입니다. 가속도 센서는 정지한 상태에서 중력 가속도를 감지하기 때문에 z축 방향으로 -g 만큼의 값을 출력합니다. 센서의 초기 출력은 모두 '0'이라고 가정하고 센서를 y축 기준으로 45도 기울여 보면, 기울어진 상태에서 z축 방향과 x축 방향으로 동일한 값의 가속도가 측정되며 중력방향으로 g가 측정되어야 하므로 0.707g 만큼 z축과 x축 방향으로 값이 출력됩니다. 결과적으로는 z축과 x축 값의 비율을 arctan으로 계산하여 기울어진 값을 구할 수 있습니다.



그러나 정지 상태가 아닌 움직이는 가속 상태의 경우, 또다른 힘의 영향으로 중력 방향이 변한 것처럼 올바른 값을 얻을 수가 없습니다. 즉, 정지하지 않은 움직임 상태에서는 가속도 센서만으로 기울기 값을 측정할 수는 없습니다. 뿐만 아니라 z축상에 회전각인 요는 중력 방향(중력가속도)이 전혀 변하지 않으므로 측정이 불가능합니다.


3축 자이로 센서(Gyroscope)는 가속도를 측정하는 가속도 센서와 달리 각속도를 측정하므로 단위는 [degree/sec]입니다. 자이로는 각속도를 재는 장치이기에 이를 이용해서 각도를 알려면 전체 시간에 대하여 적분을 하여 얻게 됩니다. 그러나 센서에서 측정되는 각속도는 노이즈나 어떠한 이유에 의해 측정값에 에러가 계속 생기는데, 이 오차가 적분시에는 누적이 되어서 최종 값이 드리프트 되는 현상이 발생합니다. 게다가 시간이 지날수록 이 오차는 커져 각도가 변하게 된다는 것입이다.


결과적으로 정지상태의 긴 시간의 관점에서 보면 가속도 센서에 의해 계산된 각도는 올바른 값을 보여주지만, 자이로 센서에서는 시간이 지날 수록 틀린 값을 내보내게 됩니다. 반대로 움직이는 짧은 시간의 관점에서 보면 자이로 센서는 올바른 값을 보여주지만 가속도 센서는 다른 값을 내보내게 됩니다.


그러므로 가속도 센서와 자이로 센서를 모두 사용해서 각각의 단점을 보상할 수 있는 알고리즘을 적용하여 롤 또는 피치 값을 계산하여야 한다는 것입니다. 많이 사용하는 보상 방법 및 필터링으로는 칼만 필터(Kalman filter)의 적용입니다.


요의 회전축은 z축방향, 즉 중력방향과 같으므로 가속도 센서가 아닌 자이로 센서의 z축 값을 측정해서 이 값을 이용해 요값을 계산하여야 하고 드리프트되는 오차를 보상하는 다른 센서를 추가적으로 사용하는데, 이것이 지자기 센서(magnetometer or compass)입니다. 자이로는 온도가 변하면 그 값이 같이 변하는 특성이 있어 정교한 측정을 위해서는 온도 센서도 함께 사용해서 오차를 보상하기도 합니다. 이를 모두 고려하면 3축 가속도 센서, 3축 자이로 센서, 3축 지자기 센서를 내장한 IMU 센서를 9축 센서라 부르는 이유에서 입니다.



위 그림의 칩은 Invensense사의 9DOF IMU인 MPU-9150입니다. 이는 3축 자이로 센서와 3축 가속도 센서인 MPU-6050과 3축 지자기 센서(digital compass)를 One Pakage(SiP)하였으며, I2C(TWI)를 지원합니다. 여기서 DOF는 'Degree Of Freedom'의 약자로 '축(Axis)'을 의미합니다.



'Flight Controller 이해 > 센서' 카테고리의 다른 글

MPU6050 센서  (1) 2017.12.01
드론에 요구되는 각종 센서들  (0) 2017.02.26
Posted by Nature & Life


각종 센서들이 측정한 상태측정치들은 각 센서들 고유의 오차 및 잡음이 포함되기 때문에 비행제어기에서 바로 사용할 수 없습니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서가 측정한 드론의 회전운동 상태측정치와 GPS 수신기 및 기압 센서가 측정한 드론의 병진운동 상태측정치들을 적절히 융합하여 각종 오차 및 잡음이 최소화 된 상태추정치를 계산합니다.


자이로 센서(Gyroscope)

관성측정장치(IMU) 내부에 있는 3축 자이로 센서를 이용해 드론 기체좌표 x, y, z 세 축이 지구관성좌표에 대하여 회전하는 각속도를 측정한 후 고정좌표로 변환된 값(Wx.gyro, Wx.gyro, Wx.gyro)을 계산합니다. 자이로 센서 측정치는 선형 미분방정식을 이용해 오일러 각도 (Φgyro, ϴgyro, ψgyro)로 변환될 수 있다. 자이로 센서 측정치는 저주파수 대역에서 바이어스(bias) 오차를 포함하기 때문에(즉, 드론이 정지해 있을 때에도 자이로 센서의 측정치가 '0'이 되지 않음) x, y, z 세 축에 대한 자이로 센서의 바이어스 오차가 제거되어야 합니다.


가속도 센서(Accelerometer)

자이로 센서의 스코프의 오차를 제거하기 위해 가속도 센서가 이용됩니다. 관성측정장치(IMU) 내부에 있는 가속도 센서를 이용해 드론 기체좌표 x, y, z 세 축의 지구관성좌표에 대한 가속도를 측정한 후 고정좌표로 변환된 값 (fx,acc, fy,acc, fz,acc)을 계산합니다. 가속도센서 측정치 역시 오일러 각도의 '롤(Φacc)'과 '피치(ϴacc)'로 변환될 수 있으며, 이 값들은 자이로 센서의 측정치를 이용해 계산한 '롤(Φgyro)'과 '피치(ϴgyro)'에 포함된 바이어스 오차를 제거하는데 이용됩니다. 하지만, 가속도 센서는 '요(yaw)'를 측정할 수 없기 때문에 자이로 센서를 이용해 측정한 '요(ψgyro)'에 포함된 바이어스 오차를 제거할 수 없습니다.


지자기 센서(Magetometer or Compass)

지자기 센서를 이용해 드론 기체좌표 x, y, z 세 축의 자북점에 대한 방향을 측정합니다. 이 값을 이용해 기체좌표의 NED 좌표에 대한 '요' 값을 계산할 수 있으며, 센서융합기는 지자기 센서로 측정한 '요(ψmag)'를 이용해 자이로 센서 측정치 '요(ψgyro)'에 포함된 바이어스 오차를 제거합니다. 고정날개 드론의 경우 몸체 전면에 피토관(Pitot Tube)을 부착해 좀 더 정확한 '요' 값을 측정할 수 있으나, 드론의 경우 몸체가 회전하면서 날아가기 때문에 피토관을 이용하기가 어렵다는 것입니다.


GPS 수신기 

GPS 수신기는 GPS 위성들로부터 수신한 신호를 이용해 NED 좌표 상에서 드론의 병진운동상태, 즉 위도(Pn.GPS), 경도(Pe.GPS), 고도(hMSL.GPS), 위도상의 속도(Vn.GPS), 경도상의 속도(Ve.GPS) 및 고도상의 속도(Vd.GPS)를 계산합니다. 여기서 첨자 MSL은 해수면(MSL: Mean Sea Level)을 의미합니다.


기압 센서(Barometer)

GPS 수신기를 통해 수신한 위치 좌표에는 항상 5~10m의 오차가 존재합니다. 민수용 GPS 수신기는 L1 주파수밴드(1.5GHz)의 C/A(Coarse-Acquisition) 코드 혹은 L2 주파수밴드(1.2GHz)의 C/A 코드 둘 중의 하나만을 수신할 수 있습니다. 하지만 군사용 GPS 수신기는 L1 C/A와 L2 C/A를 동시에 수신할 수 있어 Diversity로 인한 이득을 얻을 수 있으며, 추가로 암호화 신호(Encrypted Signal) P(Y)를 수신할 수 있어 GPS 신호가 지구의 이온층을 통과할 때 교란되는 것을 보정할 수 있습니다. 이를 이온층 보정(Ionospheric Correction라 일컫습니다. 5~10m의 GPS 고도 오차는 주로 저공비행을 하는 드론의 지상시설물들과의 충돌 위험을 야기시킵니다. 따라서 별도의 기압 센서를 이용하여 고도(hALP.baro)를 측정하기도 한다는 것입니다. 여기서, 첨자 ALP는 기압(Air-Level Pressor)를 의미하며 드론의 이륙시 기압과 현재 비행고도에서의 기압을 비교해 이륙 지점으로부터의 현재 고도를 계산합니다.


센서융합기는 회전운동상태(ΦE, ϴE, ψE)만을 추정하거나, 회전운동 상태와 병진운동상태(Plon.E, Plat.E, hE)를 동시에 추정할 수 있습니다. 회전운동상태 만을 추정하는 센서융합기를 AHRS(Attitude & Heading Reference System)라고 부르고, 회전운동상태와 병진운동상태를 동시에 추정하는 센서융합기를 관성항법기(INS; Inertial Navigation System)라고 부릅니다.


AHRS를 이용한 센서융합기

AHRS 센서융합기는 보상필터(Complimentary Filter; 상보필터)를 이용하거나 확장 칼만 필터(EKF: Extended Kalman Filter)를 이용합니다. AHRS 보상필터는 고주파 대역 특성이 좋은 자이로 센서의 상태측정치(Φgyro, ϴgyro)를 고주파 대역 필터로 추출하고, 저주파 대역 특성이 좋은 가속도 센서의 상태측정치(Φacc, ϴacc)를 저주파 대역 필터로 추출한 후 합쳐서 자이로 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE)를 비행제어기(FC)로 전달해 줍니다.


AHRS 확장칼만필더(AHRS-EKF)는 드론의 비행역학(Flight Dynamics)을 이용해 각종 오차를 제거하는 방법입니다. 자이로 센서를 이용한 측정치(Φgyro, ϴgyro, ψgyro), 가속도 센서를 이용한 측정치(Φacc, ϴacc), 지자기 센서를 이용한 측정치(ψmag) 및 GPS 수신기를 이용한 측정치(Vn.GPS, Ve.GPS, Vd.GPS)를 이용해 실시간으로 드론의 회전운동역학(Rotational Dynamics)을 확장 칼만 필터를 이용해 모델링하면서 자이로 센서 및 가속도 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE, ψE)를 계산해 비행제어기로 전달해 줍니다. GPS 수신기로 측정한 병진운동상태 측정치(Pn.GPS, Pe.GPS) 및 기압 센서로 측정한 고도측정치(hALP.baro)는 융합과정을 거치지 않고 그대로 비행제어기로 전달된다.




Posted by Nature & Life


쿼드콥터(Quadcopter)는 다음 그림에서와 같이 모터 4개의 상대적인 회전속도에 의해 비행이 제어됩니다. 시계방향(CW)으로 회전하는 모터들에 장착되는 프로펠러를 '푸셔(Pusher) 프로펠러'라 부르고 반시계방향(CCW)으로 회전하는 모터들에 장착되는 프로펠러를 '트랙터(Tractor) 프로펠러'라 부릅니다.



  • Yaw Left - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 > 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Yaw Right - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 < 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Hovering - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 = 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합


소위 Hovering(정지 비행)은 전체 토크(Torque)가 상쇄되어 드론이 공중에서 정지하는 것이며, 이러한 상황에서 모든 프로펠러들이 발생시키는 추력의 합이 드론의 무게보다 크거나 작을 경우, 드론은 수직으로 상승(Throttle Up) 혹은 하강(Throttle Down)을 합니다.


  • Pitch Up(후진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 > 후면에 위치한 모터 ③, ④의 회전속도의 합

  • Pitch Down(전진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 < 후면에 위치한 모터 ③, ④의 회전속도의 합


  • Roll Left - 우측에 위치한 모터 ①, ④의 회전속도의 합 > 좌측에 위치한 모터 ②, ③의 회전속도의 합

  • Roll Right - 우측에 위치한 모터 ①, ④의 회전속도의 합 < 좌측에 위치한 모터 ②, ③의 회전속도의 합


전체 프로펠러들의 중력방향 추력의 합이 드론의 무게와 동일 할 경우, 드론은 좌측 혹은 우측으로 수평비행을 하게 됩니다.



모터 ①, ②, ③, ④의 회전속도를 각각 라 하고 모터들에 장착된 프로펠러들이 발생시키는 전체 추력을 라 할 때, 각 모터들의 회전속도와 오일러 각도의 변화량  및 추력의 변화량 과의 관계는 다음 수식으로 표현할 수 있습니다.



위 식을 행렬식으로 나타내면 다음과 같습니다.



그러므로 각 모터의 회전속도 관점에서 다음과 같이 나타낼 수 있다.



위 식을 시간 에서 오일러 각도 및 추력의 변화량을 시간 증분을 이용해 표시하면 다음과 같습니다.



위 식에서 는 시간 에서 Tx(송신기)로부터 수신한 비행명령어이고, 는 시간 에서 각종 센서들을 이용하여 추정한 드론의 상태추정치이며, 는 드론의 비행제어기가 수행하는 함수로 볼 수 있습니다. 이 경우, 첨자 ''는 desired(Tx가 원하는)의 ''로 대체할 수 있고, 첨자 ''은 Estimated(센서융합기가 추정한)의 ''로 대체할 수 있습니다.



Tx에 조정키들을 움직여 오일러 각도 및 추력으로 구성된 비행명령어 를 드론에 송신하고, 드론의 Rx(수신기)는 이 비행명령어를 받아서 비행제어기(FC)에 전달합니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서를 이용해 측정한 회전운동 상태측정치 와 기압 센서를 이용해 측정한 고도측정치 을 적절히 융합해 각 센서들의 오차가 최대한 제거된 상태추정치 를 계산해 비행제어기에 전달합니다. 비행제어기는 Rx로부터 받은 비행명령어를 센서융합기가 보내온 상태추정치와 비교해 그 차이 값을 이용해 각 모터들의 회전속도를 계산합니다. 여기서 첨자 'M'은 Measured(각종 센서들이 측정한)을 의미합니다.


드론은 Tx를 이용하지 않고 GPS 경로비행을 할 수도 있습니다. 한편으로, 센서융합기는 드론의 회전운동 상태측정치 와 GPS 수신기와 기압 센서를 이용해 측정한 병진운동 상태측정치 를 함께 융합하여 센서 오차들을 좀 더 줄일 수 있습니다. 여기서 는 위치벡터, 는 속도 벡터, 는 고도를 의미한다. 아래 그림에서 센서융합기는 드론의 회전운동 및 병진운동 상태측정치를 융합하여 자이로 센서와 가속도 센서의 오차가 최대한 제거된 상태추정치 를 비행제어기에 전달하고, 비행제어기는 Rx로부터 전달 받은 비행명령어 혹은 GPS 비행경로 좌표와 상태추정치를 비교해 그 차이 값을 이용하여 각 모터들의 회전속도를 계산합니다. 여기서 'lon'은 longitude(경도), 'lat'는 latitude(위도)의 약자입니다.




Posted by Nature & Life


사용자는 무선송신기(Tx)를 이용하여 드론에 명령을 내리게 됩니다. 이때 전송된 신호는 주로 FM 통신 방식으로 드론에 장착된 수신기(Rx)에 전달되고, 수신기는 이 FM 신호로부터 각 채널의 신호를 뽑아 PWM 방식으로 비행제어기(FC)의 각 채널에 유선으로 보내집니다. 이런 식으로 국내의 수십 MHz 대역의 무선조종용 ISM(Industrial Scientific Medical) 주파수를 사용해 제한된 출력으로 허가 없이 사용하여 저렴한 비용으로 실현하였습니다.


최근에는 송수신시 드론의 다양한 상태, 예를 들어, 밧데리 소진으로 인한 저전압 등을 드론으로부터 조종자에게 보여질 수 있도록 양방향 통신의 필요성이 대두되었고, 이러한 기능은 종래 사용하던 주파수의 좁은 대역폭의 한계로, 종래에는 무선데이터통신시스템용 ISM 주파수인 2.4GHz 대역으로 옮겨가 PPM 방식이 주류가 되었다는 것입니다.


드론에서는 이와같은 Wireless 통신 방식이 점차 증가하였는데 일례로, 지상관제국(GCS)에서 설정한 경유지(waypoint)에 따라 순차적으로 비행하는 자동비행 모드나 드론에서 촬영된 항공 사진이나 동영상 혹은 기타의 정보를 전송받기 위해서 텔레메트리(telemetry)라는 통신 장치가 그것이라는 것입니다. 이들의 무선 통신 방식은 2.4GHz의 ISM 주파수로 블루투스(Bluetooth)와 지그비(Zigbee) 등이 있습니다.


블루투스와 지그비 통신 방식은 현재도 계속 진화하고 있으며 도달거리나 전송속도 등의 차이는 아래 표에서와 같이 비교하였습니다.



위와 같은 무선 통신 기술은 Bluetooth와 유사한 BLE, Zigbee와 유사한 Z-wave에 Wi-Fi(Wireless LAN)와 함께, 모두 2.4GHz의 ISM 주파수를 사용하는 근거리 무선 통신 기술들로 요즈음 사물인터넷 즉, IoT(Internet Of Things) 장비들을 묶어주는 역할을 하고 있다는 것입니다. 드론 조종의 특성상, 지그비가 통신거리가 가장 적합하고 2.4GHz 대역이 도달거리가 짧고 장애물에 취약하다는 점을 감안하면 드론이 시야에서 완전히 확보된 상태에서 조종해야 함을 유의해야 할 것입니다.  



'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

CAN 통신이란?  (0) 2017.12.24
TWI(I2C) 통신이란?  (0) 2014.03.24
Posted by Nature & Life


과거 전통적인 RC 헬기는 역동적인 비행이나 실기에서 보지 못했던 배면 비행이나 곡예 비행 등으로 매니아를 사로잡았다면 최근의 쿼드콥터(Quadcopter)와 같은 드론은 안정된 기체의 자세 제어을 통해서 매우 정숙한 호버링이나 자동 이착륙 혹은 소위 'mission planner'와 같은 툴로 사용자가 미리 경유지점을 정해놓고 자동 비행하는 waypoint 비행 등으로 더욱 매력을 느끼게 할 것입니다.


전자의 경우 RC 헬기의 테일 움직임을 감지하여 메인 로터에 대한 반동 토크를 상쇄시켜 기체의 회전으로부터 안정성을 꾀하기 위한 최소한의 센서만을 사용하였고, 나머지 비행은 사용자 조종기의 사이클릭 제어에 절대 의지할 수 밖에 없기 때문에 입문자의 접근이 쉽지 않았다는 것입니다.


반면에 후자의 경우에는 갖가지 센서들을 탑재하여 비행 안정성이 확보되었기 때문에 드론이 단순한 취미나 레포츠를 떠나 항공촬영이나 방재, 택배 등의 임무에 적용이 용이하게 되었고, 그 만큼 비행자동화의 덕택으로 쉽게 배울 수 있어 사용자 층이 훨씬 두터워지고 급기야는 드론의 대중화가 현실화 되었다는 것입니다.


이와 같이 드론이 비행 안정화 및 자동화가 가능했던 이유는 우선 각종 첨단 센서들을 탑재한 시너지 효과라는 것입니다.


Accelerometer(가속도계):

직선 가속도를 측정하는 센서로 최근에는 x,y 그리고 z에 대한 3축(공간) 자이로(Gyro; Gyroscope)를 이용한 센서가 류를 이루게 되었습니다. 과거 RC 헬기가 단방향의 자이로 센서를 채용한 것과 달리, 이는 공간상에서 어느 방향이든 기체의 기울어짐을 감지하여 펌웨어로 하여금 즉시 자세 제어를 가능하게끔 하여 매우 정교한 호버링(정지비행)이 가능하게 되었다는 것입니다.



Barometer(공기압계): 

고도 센서의 용도로서 공기압이 지표면으로터 고도에 따라 감소함을 이용하여 공기압을 측정함으로서 현재 기체의 고도를 역으로 알 수 있게 되었다는 것입니다. 따라서 사용자는 정확이 얼마의 고도에서 기체가 비행할 수 있도록 명령할 수 있고 기체는 이 센서를 통하여 자동으로 고도를 조정할 수 있게 되었다는 것입니다.


Magnetometer(지자기계):

지자기 센서는 '전자 나침판(Electronic compass)'으로 지구의 자기(지자기)를 검출하여 동서남북 방향을 알려주는 센서로, 이를 이용하여 드론은 기체의 방향을 정확히 돌리거나 정해진 방향으로 자동으로 비행이 가능할 수 있게 되었다는 것입니다.


GPS(위치 센서):

익숙한 내용인 Global Positioning System으로 드론은 GPS 센서를 이용하여 인공위성으로부터 자신의 절대 위치를 알 수 있고 따라서 비행 좌표를 설정하거나 혹은 사용자가 시야에 보이지 않아도 안전하게 원래 위치로 되돌아 오는 등의 기능이 가능하게 되었다는 것입니다.




'Flight Controller 이해 > 센서' 카테고리의 다른 글

MPU6050 센서  (1) 2017.12.01
관성측정장치(IMU)의 원리  (0) 2017.03.14
Posted by Nature & Life


전기회로(electrical circuit)에서 전류를 구하는 방법과 유사하게 자성체 각 부분의 자속을 구하기 위해 회로를 구성할 수 있는데 이를 자기회로(magnetic circuit)라고 부릅니다. 일반적으로 권선수 N인 철심의 평균길이를 lc, 단면적을 Ac, 권선의 유입전류를 I라 하면 순(net) 전류에 의해 발생되는 자계와의 관계를 나타내는 암페어(Ampere) 법칙은 다음과 같습니다.



코어의 투자율이 무한하거나 유한하더라도 주변 물질보다 많이 크면 자기장은 코어 내부에 제한되고 권선의 방향과 수직한 성분만 존재하며 다음과 같습니다. 실제로 자기회로는 다음의 문제들이 있다는 것입니다.

1) 모든 자속은 코어(철심)내로만 흐르지만 무한한 투자율을 갖지 못하고 코어 외부와의 유한한 투자율 차이로 누설자속(leakage flux)이 존재합니다.
2) 자기저항의 계산시 평균 길이로 계산하는데 이는 특히 사각철심일 경우 코너부분처럼 구조에 따라 부정확하기 때문입니다.
3) 강자성체에서 투자율은 자속의 크기에 따라 달라진다는 것입니다.
4) 공극을 갖는 코어의 경우 fringing 효과에 의해서 유효 단면적이 달라집니다.
5) 공극을 통하여 자속이 흐를 때 기자력이 감소합니다.





전류와 자속은 각각 다음과 같습니다.



여기서 Rm은 전기저항 R과 유사한 자기저항(magnetic resistance) 혹은 릴럭턴스(magnetic reluctance)이며, F는 자속을 발생하는 힘인 기자력(Magneto-motive Force; mmf)으로 기전력(Electro-motive Force; emf)과 대비됩니다. 그리고 전류밀도와 자속밀도는 각각 다음과 같습니다.



여기서 H는 외부로부터 인가되는 자계(자기장; 자화력)의 세기(Magnetic Field Intensity)이고 μ는 투자율(permeability)로 의 관계를 가지며 μr은 해당 물질의 비투자율(relative permeability)을 의미합니다. 그리고 전기저항과 자기저항은 각각 다음과 같습니다.



여기서 σ는 전자가 흐르는 정도를 나타내는 도전율(conductivity)이고 마찬가지로 투자율 μ는 자속을 투과시키는 정도(B/H) 혹은 외부로부터 인가되는 자장의 세기에 대한 자속의 발생 능력을 의미합니다. 따라서 자기회로에서도 오옴(ohm)의 법칙과 Kirchhoff의 법칙이 상보적(쌍대관계)으로 적용될 수 있습니다. 그러나 자기회로에서는 대표적으로 자기 포화(magnetic saturation)와 히스테레시스(hysteresis), fringing 효과 등의 현상이 존재합니다.



만일 코어에 두께가 g인 공극이 존재하고 코어의 투자율이 주변 공기의 투자율에 비해 매우 크다고 가정하면, 자기장은 공극을 제외하고는 코어에 갇히게 되어 공극에서의 자기저항은 다음과 같습니다. 이 경우에 공극의 릴럭턴스는 코어의 릴럭턴스와 전기회로에서와 같이 직렬연결된 것이 되고 등가저항도 전기회로에서와 같이 직렬회로에 준하여 합이 됩니다.



자기회로와 전기회로의 유사성은 저항을 통한 전류흐름은 에너지를 소모하고 릴럭턴스를 통한 자속의 흐름은 에너지를 저장하는데 있다는 것입니다.


부록 A. 여러가지 물질의 비투자율



부록 B. 자성체의 구분



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

Start up with BLDC(PMSM) - variable inductive sense  (0) 2018.01.19
Start up with BLDC(PMSM) - align and go  (2) 2018.01.18
SPM vs. IPM  (1) 2016.02.26
PMSM의 모델식  (0) 2016.02.26
PMSM의 토크 제어 방법  (0) 2016.01.28
Posted by Nature & Life


PM(Permanent Magnet) 모터는 회전자 권선 대신 영구 자석을 사용하여 권선에 전력을 공급할 필요가 없으므로 고효율이고, 운전시간이 길수록 표준 모터에 비해 유지비가 절감되어 근래에 각광받고 있다는 것입니다. PM 모터는 회전자 표면에 영구 자석을 붙인 구조의 SPM(Surface Permanent Magnet) 모터와 회전자 내부에 영구 자석을 매입한 구조인 IPM(Interior Permanent Magnet) 모터로 구분됩니다.


최근에는 일반적으로 작은 사이즈에 고출력, 고효율 전동기를 설계하기 위해 모터 속도를 높이는 방향의 설계가 진행되고 있어 이에 따라 과거 DC 모터와 유도 전동기 또는 SPM 모터가 점차 IPM 모터로 대체되고 있는 추세라는 것입니다.





다음은 SPM 모터의 장단점입니다.


1) 저속 고토크의 토크제어를 하는 로봇 및 공작기계 등에 적합합니다.

2) 회전자의 위치에 따라 자기 저항이 변하지 않아 자기 인덕턴스 및 상호 인덕턴스는 일정한 값이 되므로 제어가 용이합니다.

3) 영구 자석 단면적 증가에 의한 발생 토크가 증가합니다.

4) 감자 문제 발생 가능성이 높습니다.

5) 자석 형상을 변경하여 토크리플 최소화 가능합니다.


IPM 모터는 통상 SPM 모터에 비해 다음과 같은 장점을 갖습니다.


1) 영구 자석이 회전자 코어 내부에 매입되므로 원심력 및 최대 토크를 이기는 영구 자석의 부착력을 보장할 수 있으므로 견고하여 고속회전에 유리합니다.

2) 마그네틱 토크와 릴럭턴스 토크의 병용으로 고 토크화(그러나 SPM 보다 소음 증대)가 가능합니다.

3) 회전자의 외경이 정교하게 가공되므로 공극을 작게 할 수 있습니다(편심이 적다).

4) 회전자 표면의 와전류(eddy current) 손실 저감으로 고효율화가 가능합니다.

5) 약계자 제어를 통해 운전 속도 범위를 이론적으로 무한대까지 가져갈 수 있어 고속 회전에 유리합니다.



SPM 모터에서는 Ld와 Lq의 자속 경로상의 유효 공극은 동일합니다. 모터에 사용되어진 페라이트나 희토류 계통의 영구 자석은 고정자 코어인 투자율이 높은 규소강판과 달리 매우 낮은 투자율(permeability)을 가졌고(혹은 영구 자석의 비투자율이 진공 중의 공기와 거의 같다) 따라서 인덕턴스 계산에서 공기로서 간주될 수 있어, Ld=Lq이고 매우 낮은 인덕턴스 돌극성을 갖습니다. 결과적으로 모터 단자에서 측정된 인덕턴스 값은 회전자 위치에 상관없이 일정하게 됩니다.





반면에 IPM 모터에서는 영구 자석은 회전자의 내부에 매입되었고 영구 자석은 낮은 투자율(즉, 큰 릴럭턴스)을 가졌기 때문에 회전자 위치에 따른 자속 경로 상의 유효 공극은 변하게 됩니다. 이것을 자기적 돌극성(magnetic saliency)이라 부르며 회전자의 위치에 따른 모터 단자에서의 인덕턴스의 변화로 나타나게 됩니다. 어떤 경우에는 이러한 인덕턴스의 변화를 감지하여 간접적으로 회전자의 위치를 파악하는데 사용되기도 한다는 것입니다.


q축은 고정자 코어의 중심과 인접하는 2개의 영구 자석 자극부의 사이를 통과하는 인덕턴스 Lq, d축은 고정자 권선에 의한 생성되는 자계와 영구 자석의 자계와 일치시켰기 때문에 고정자 코어의 중심과 영구 자석의 중심을 통과한 인덕턴스 Ld는 유효 공극의 증가로 감소하게 된다는 것입니다. 한편 Lq/Ld를 돌극비(saliency ratio)라고 하고 이에 비례하여 약계자 제어를 통한 광범위한 가변속 운전을 할 수 있다는 것입니다.



일반적인 동기 릴럭턴스 모터(SynEM)는 자기적 돌극성에 의해 전기자 권선의 자기 인덕턴스 L과 상호 인덕턴스 M이 회전자의 위치에 따라 변하고이것에 따라 공극(air gap)에 저장된 에너지가 기계 에너지로 변환되는데, 이러한 토크 발생 메카니즘에 의해서 발생되는 토크를 일반적으로 릴럭턴스 토크(Reluctance torque)라고 합니다.


IPM 모터에서 릴럭턴스 토크는 자속이 영구 자속부문을 통과하는 자기저항과 그 이외의 부분을 통과하는 자기저항이 다르며, 이러한 자기저항의 차이에 의해 발생하는 회전력 성분을 의미합니다. 다음 그림은 분포권의 고정자를 갖는 회전자에 영구 자석이 없는 동기 릴럭턴스 모터(SynRM)와 SPM 모터, 그리고 IPM 모터의 인덕턴스 분포를 나타낸 것입니다.



SPM에서는 영구 자석의 전기자 쇄교자속은 회전자의 회전각에 따라 정현적으로 변하기 때문에 영구자석의 전기자 쇄교자속을 이용한 토크를 발생시킬 수 있습니다. 반면에 IPM 모터의 영구 자석의 전기자 쇄교자속은 SPM과 같이 정현적으로 변화하고 뿐만 아니라자기 인덕턴스 및 상호 인덕턴스 역시 전기자 쇄교자속과 비교하여 두 배의 속도로 변화하게 됩니다. 그러므로 IPM의 토크 발생에는 전기자 자기 인덕턴스상호 인덕턴스영구 자석의 전기자 쇄교자속의 변화가 영향을 끼쳐 계자제어를 사용하여 최대 토크를 낼 수 있다는 것입니다.


상전류에 의한 쇄교자속은 다음과 같습니다.



여기서 B는 자속밀도이며 Ampere의 법칙에 의해서 권선에 관통하는 전류 i는 임의의 폐선로에 걸친 자계의 세기 H의 적분과 같으므로 다음과 같습니다.



여기서 g는 공극 두께이고, lm은 영구 자석의 길이, N은 권선의 수를 의미합니다. 권선에 발생한 자기력선은 권선으로부터 출발하여 공극 그리고 영구 자석, 공극, 권선으로 다시 들어오므로 공극 두께와 영구 자석의 길이의 2배가 됩니다. 공기 중에서 자속밀도 이므로 위 식으로부터 자속밀도는 다음과 같이 됩니다.



단, 음는 공기 중에서의 투자율(permeability)입니다. 쇄교자속의 식에서 권선 단면의 면적을 A라 놓고 위의 자속밀도를 대입하여 인턱턴스 L에 대해서 정리하면 다음과 같습니다.



그러므로 고정자 권선의 인덕턴스는 공극에 반비례하여 IPM 모터에서 d축의 인덕턴스인 Ld와 같이 유효 공극이 증가하면 감소하게 된다는 것입니다.



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

Start up with BLDC(PMSM) - align and go  (2) 2018.01.18
전기회로 vs. 자기회로  (5) 2016.02.26
PMSM의 모델식  (0) 2016.02.26
PMSM의 토크 제어 방법  (0) 2016.01.28
릴럭턴스 토크  (1) 2016.01.27
Posted by Nature & Life


모터를 벡터 제어 기법으로 구동하기 위해서는 3상의 모터 시스템을 벡터로 접근해야 하며 가장 쉽게 이해할 수 있는 abc 좌표계에서 구동에 필수적인 d-q 좌표계로의 변환과 그에 따른 모델링이 요구됩니다. 3상 모터의 전압이나 전류 그리고 자속을 벡터로 접근하는 근본적인 이유는 기구적으로 고정자 권선이 120˚ 간격으로 배치되었기 때문으로 전류를 예를 들어 전체 공간 벡터식으로 다음과 같이 나타낼 수 있습니다.



여기서 a는 다음 그림에서와 같이 각 상의 120˚ 등간격의 기구적인 배치를 의미하는 것이며, 각 상의 전류 ia, ib, ic는 다음과 같이 표현할 수 있습니다. 여기서 a축 방향은 a상 권선에 의해 발생하는 자속의 방향을 의미합니다.




위의 abc 좌표계에서 3상의 전류는 서로 120˚이 위상차를 가짐을 나타내며 위의 전류의 전체 공간 벡터식에 대입하고 이를 간략화하면 다음 식과 같습니다. 



즉, 전류 공간 벡터는 abc 좌표계의 원점을 중심으로 겹쳐진 복소평면의 음의 허수부축에서부터 반시계 방향으로 회전하게 됩니다. 이는 3상 모터의 고정자 권선이 120˚ 간격의 배치된 상태에서 각 상에 120˚의 위상차를 갖는 정현파 전류의 인가로 발생하게 된다는 것입니다.


abc 좌표계에서 모터의 동특성 방정식은 다음과 같습니다. 여기서 총 쇄교 자속 입니다.



또한 abc 좌표계에서 쇄교 자속 방정식은 다음과 같습니다.



여기서 상호 인덕턴스는 대칭적(Lab = Lba)이고 인덕턴스는 angle(θ)에 따라 변하게 됩니다. 다음 식에서 보는 바와 같이 자기 인덕턴스는 회전자인 영구 자석의 자속의 방향과 고정자 권선의 자속이 일치할 때 최대이고, 상호 인덕턴스는 쇄교와 동상의 중간에서 최대가 됩니다. 즉, 회전자가 q축에 있을 때 자기 인덕턴스가 최대이고 d축과 q축 사이에서 상호 인덕턴스가 최대가 된다는 것입니다.



Ls는 공극(air gap) 자기저항(reluctance)의 일정 성분으로 로 나타내는데, Lso는 토크를 생성하는 인덕턴스이고 Lsl는 고정자의 누설 인덕턴스입니다. 또한 Lx는 공극 자기저항의 정현적으로 변화하는 성분의 크기이며 IPM(Interior Permanent Magnet) 모터의 돌극성으로 인하여 2θ의 항으로 나타납니다상호 인덕턴스 Lab, Lbc, Lac에서 -1/2 계수는 각 상이 120˚ 간격으로 위치되어지고 따라서 cos(2π/3)=-1/2이며 반면에 고정자에서 쇄교 자속은 다음과 같습니다.



여기서 λ는 회전자인 영구 자석에 의한 고정자 권선의 쇄교 자속이고, θ는 여전히 a축과 d축의 전기각이며 입력 전력은 다음과 같습니다.



출력 전력과 출력 토크는 abc 좌표계에서 유도하기 어렵기 때문에 생략합니다. 위와 같은 모터의 동특성 방정식과 쇄교 자속 방정식 등은 d-q 좌표계로 변환할 필요가 있습니다. abc 좌표계에서 d-q 좌표계로 변환하는 행렬식은 다음과 같습니다.



또한 d-q 좌표계에서 다시 abc 좌표계로 변환하는 행렬식은 다음과 같습니다. 



여기서는 전류를 변환하였지만 이외에도 전압, 쇄교 자속에 대해서도 동일하게 적용할 수 있습니다. 영축 I0는 영상분축이라고도 부르며 balanced 3상 시스템에서는 항상 '0'이 됩니다. 이는 전류, 전압 그리고 쇄교 자속 모두가 순시적인 합이 '0'이 되는 정현파 시스템이기 때문에 가능하다는 것입니다.


abc 좌표계에서 고정자 3상의 전압을 d-q 좌표계로 변환하면 vd와 vq는 va, vb 그리고 vc로 나타낼 수 있고 이를 동특성 방정식을 이용하여 ia, ib, ic 그리고 λa, λb, λc 변수들에 의한 식으로 전개합니다. 그리고 d-q 좌표계에서 abc 좌표계로의 위 행렬 변환식으로부터 3상의 전류 i와 쇄교 자속 λ를 d-q 좌표계에서의 전류 id, iq 그리고 쇄교 자속 λdλq에 의한 식으로 다음과 같이 정리할 수 있습니다.



여기서 d-q 좌표계의 쇄교 자속 λd과 λq는 다음과 같습니다. 회전자의 자속은 d축과 일치(d축과 a축의 전기각이 0)하도록 변환하였으므로 q축 상의 자속에 영구 자석으로부터의 기여는 없게 됩니다.



여기서 Lq와 Ld는 각각 q축과 d축에 동기화된 자기 인덕턴스라 부르고 다음과 같이 정의됩니다.



동기 인덕턴스는 3상 balanced 조건에서 유효 인덕턴스가 되고 각 동기 인덕턴스는 누설 인덕턴스를 포함한 자기 인덕턴스와 다른 2상으로부터의 기여로 이루어집니다. Ls는 평균 인덕턴스로 Ls = (Lq + Ld)/2 이고 Lx는 인덕턴스 변화분(fluctuation)으로 Lx = (Lq – Ld)/2입니다. 그러므로 d-q 좌표계에서의 동특성 방정식은 다음과 같이 정리할 수 있습니다.



순시 전력은 abc 좌표계에서 입력 전력으로 각 상에 대한 전압 va,vb, vc 그리고 ia, ib, ic를 d-q 좌표계의 전압 vd, vq와 전류 id, iq로 변환하여 대입하면 다음과 같습니다.



모터의 전기적인 토크는 자속과 전류에 비례하므로 다음과 같습니다.



여기서 K는 관련상수이며, 이를 d-q 좌표계의 쇄교 자속과 전류로 나타내면 다음과 같습니다.



여기서 P는 모터의 극(pole)수입니다. 자속의 시정수가 전류의 시정수보다 훨씬 커서 순시적으로 자속이 일정하다고 가정하면, 이 때 λq=0가 되어 토크는 (K는 관련 상수)이 됩니다. 위에서 d-q 좌표계의 자속 λd, λq 식을 대입하면 다음과 간략화 됩니다.



만일 d축의 전류 id를 0으로 제어한다면 다음과 같이 간략화됩니다. SPM(Surface Permanent Magnet)의 경우에 항상 공극의 인덕턴스는 일정하므로 Lq=Ld=Ls가 되지만, IPM의 경우는 Lq>Ld가 되어 영구 자석의 자속의 방향과 고정자 권선의 자속이 일치시키더라도 전류 id를 반드시 0으로 제어하여야 합니다. 하지만 적당한 id와 iq를 흘려 추가적인 릴럭턴스 토크(reluctance torque)를 얻을 수도 있습니다.



여기서 이고, 기계적인 토크식은 다음과 같습니다.



여기서 이고, J는 회전자의 관성 모멘트, B는 점성 마찰 계수, TL은 부하 토크입니다. 전기적인 토크 Te와 기계적인 토크 Tm은 일치해야 하므로 위 방정식으로 부터 다음과 같습니다.



위 식으로부터 PMSM의 d-q 좌표계에서의 상태(동특성) 방정식은 다음과 같이 정리할 수 있습니다.




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

전기회로 vs. 자기회로  (5) 2016.02.26
SPM vs. IPM  (1) 2016.02.26
PMSM의 토크 제어 방법  (0) 2016.01.28
릴럭턴스 토크  (1) 2016.01.27
Clarke vs. Park 변환  (4) 2015.12.24
Posted by Nature & Life