'잡음'에 해당되는 글 2건

  1. 2017.11.20 MPU6050의 칼만 필터(Kalman filter)의 구현 예제(1) 1
  2. 2015.12.09 BLDC vs. PMSM


아두이노(Arduino) 환경에서 전형적인 MPU6050 센서 입력에 사용되는 칼만 필터(Kalman filter)의 예제입니다.

http://blog.tkjelectronics.dk/2012/09/a-practical-approach-to-kalman-filter-and-how-to-implement-it/#comment-57783


MPU6050은 가속도와 자이로센서가 1개의 센서에 모두 포함하고 있는 6DOF(Degrees of Freedom) 센서로, I2C(Inter Integrated Circuit) 통신 프로토콜을 통해서 데이터를 추출 할 수 있습니다. 위 모듈은 MPU6050을 포함하며 사용하기 쉽게 만든 모듈입니다. 


MPU6050의 간단한 스펙입니다.


가속도계(accelerometer)는 움직임이 있을때 일반적으로 많은 잡음(noise)을 포함합니다. 자이로(gyroscope)의 문제는 시간이 누적되면 DC 성분(혹은 이를 bias라 표현)이 누적된다는 것입니다. 결론적으로 자이로는 짧은 시간에 믿을 수 있지만, 반면 가속도계는 긴 시간에 더 신뢰성이 있다는 것입니다.



그렇기 때문에 상보 필터(complimentary filter, 혹은 보상 필터)의 적용이 쉽습니다. 기본적으로 가속도계에 대해서 디지털 low pass filter(LPF), 자이로에 대해서는 디지털 high pass filter(HPF)를 적용하는 것입니다. 그러나 칼만 필터(Kalman filter) 만큼 정확하지는 않다는 것입니다. 근래에 아두이노를 이용하여 처리가 가능하지만 칼만 필터는 아두이노가 주로 제공하는 MCU에서는 무겁다는 단점이 있습니다.


k 시간에 시스템의 상태는 다음과 같습니다.



여기서 는 상태 행렬로 다음과 같습니다.



는 각도 의 시간에 따라 누적된 양으로 bias라고 하며 자이로에서 측정된 값에서 이 bias를 빼는 것에 의하여 현재의 각도를 얻을 수 있습니다.


그러므로 이전 상태 로부터의 전이 행렬 는 다음과 같이 쓸 수 있습니다.



는 제어 입력으로 k 시점에서 자이로의 측정값으로 [˚/s]의 단위를 가지며 이 로 상태방정식을 다음과 같이 다시 쓸 수 있습니다.



여기서  제어 입력 행렬로 다음과 같이 나타낼 수 있습니다.



는 프로세스 잡음으로, 주어진 k 시간에서 '0'의 평균과 의 공분산(covariance)을 갖는 가우시안 분포(Gaussian distribution)(혹은 정규분포)를 갖습니다.



는 프로세스 잡음 공분산 행렬이고, 이 경우에 가속도계와 bias의 상태 추정치 공분산 행렬이 됩니다. 우리는 bias와 가속도계의 추정이 서로 독립적임을 가정합니다.



위 식에서 처럼  공분산 행렬은 현재 시간 k에 의존합니다. 따라서 가속도계 분산 와 bias의 분산 은 미소 시간 에 곱하여집니다.

프로세스 잡음은 시간이 길어질수록 커지게 됨을 의미합니다. 이는 상태의 마지막 업데이트이기 때문입니다. 예를 들어 자이로는 드리프트(drift) 할 수 있습니다. 우리는 칼만 필터의 동작을 위해서 이들 상수들을 알아야 합니다. 만일 여러분이 큰 값을 설정한다면 상태 추정에 잡음이 커진다는 것을 기억해야 합니다. 예를 들어, 추정 각도가 드리프트 하기 시작하면 여러분은 의 값을 증가시켜야 합니다. 반면에 추정이 여러분이 생각하는 것보다 너무 많이 느려진다면 반응이 빠르도록 의 값을 감소시켜 볼 수 있습니다.



Posted by Nature & Life


Drone의 기체에 추력을 내기 위해서 사용되는 모터는 그동안 BLDC(Brushless Direct Current) 모터가 주류를 이루었지만, 후술되는 장점으로 인하여 최근에는 PMSM(Permanent Magnet Synchronous Motor)으로 교체되는 추세에 있습니다. BLDC 모터와 PMSM 두 모터는 회전자(rotator)가 영구자석(permanent magnet)으로 3상인 기본적인 구조는 유사하며, 주된 차이는 모터가 회전시 각각 역기전력(Back EMF)이 사다리꼴파(Trapzoidal)와 정현파(Sinusoidal)라는 것입니다.


넓은 의미에서 BLDC 모터(BLDCM)는 PMSM을 포함하며 일반적인 DC 모터와의 장점은 이전글인 'BLDC의 장단점'을 참조하시기 바랍니다. 모터의 회전원리는 쉽게 말해 영구자석으로 이루진 회전자는 전류를 공급하는 3상의 권선이 감겨져 있는 고정자(stator)에 전원을 회전자계가 발생하도록 적절히 공급하고, 이때 회전자는 고정자의 회전자계와 동기화(Syncronous)되어 회전하게 된다는 것입니다. 


이와 같이 전원을 공급하는 경우, BLDC는 6-step commutation이라는 전기각의 매 60도 간격으로 전류의 크기와 방향을 바꾸는 스칼라 제어(Scalar 제어)를 사용하는 반변에, PMSM에서는 공간벡터제어(Space Vector Control)라는 기법으로 전체 사이클에 대해서 전류의 크기와 방향을 제어하여, 토크(torque) 직접제어가 가능하고, 속도제어, 위치제어 등에서 탁월한 성능을 발휘한다는 것입니다. FOC(Field-Oriented Control)로 알려진 공간벡터제어(Space Vector Control) 기법으로 구동되는 PMSM을 BLAC(Brushless AC)로 부르기도 합니다.


다음은 BLDC 모터와 PMSM의 차이입니다.


 

BLDC

PMSM

권선형태

대부분 집중권(concentrating winding)

각 상을 분산시킨(pole 수를 증가시킨) 분산권(distributed winding)

용도

고토크, 고속도 제어

고효율, [위치제어] 정밀 서보

 인버터 효율

High

Low

모터 효율

Low

High

모터 비용

Low

Medium

역기전력 & 전류

사다리꼴파 & 구형파

모두 정현파

제어방식

6-step trapzoidal 방식의 비교적 간편한 스칼라 제어(scalar control)

 - 전류 제어 및 토크 최적화 불가능

 - 느린 응답

 - 저속 및 고속에서 토크 전달이 비효율적

 - 낮은 토크에서 비효율적

 - 저속에서 뛰어나지만 내부 손실이 많다

 - 저속에서 개방제어로 큰 부하에서 가속이 어렵다

 - 고속에서 제어가 상대적으로 어렵다

 - 6-step 방식으로 토크리플(맥동 토크) 발생

 - 가청 소음(잡음)이 있다

 - 발열이 있어 영구자석이 자성을 잃으면 토크가 감소한다

 - 분배 와인딩에서 작동하지 않음

 - 낮은 비용

연속 3상 정현파의 비교적 복잡한 벡터 제어(vector control) 혹은 FOC(Field-Oriented Control)

 - 시작시 최대 토크

 - 전류로 제어

 - 속도와 토크의 독립적인 제어

 - 최대 토크와 속도 범위에서 최적의 제어 가능

 - 높은 토크에서 비교적 높은 효율

 - set point나 연속 부하 변화에 부드럽고 상대적으로 빨리 반응하고 토크, 속도, 위치를 맟힐 수 있다

 - 상대적으로 높은 최대 가능 속도

 - 120도 위상차를 갖는 3상의 정현파의 합은 동일하므로 토크는 일정

 - 연속 정현파 곡선제어에 기반하여 잡음이 적다

 - 저비용 분배 와인딩에서 작동

 - 전기적인 브레이크와 홀드

 - 낮은 발열

 - 보다 효율적인 전력 사용

 - 비교적 높은 비용

 - 모터 설정이 복잡하다

Sensorless Drive

Low to Medium

High




6-step보다 많은 상태를 이용해 위치를 제어할수록 위치 정밀성과 알고리즘 복잡성도 높아집니다



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

모터의 토크 발생원리  (2) 2015.12.12
BLDC와 PMSM의 구조  (0) 2015.12.12
BLDC와 PMSM의 토크  (0) 2015.12.10
BLDC의 장단점  (0) 2014.04.03
BLDC모터란?  (0) 2014.04.01
Posted by Nature & Life