블로그 이미지
SuperMjs

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

'All Categories'에 해당되는 글 50

  1. 2009.11.18 Kalman Filter & Algorithm
  2. 2009.11.18 Linear Systems(선형시스템)
  3. 2009.11.18 Linear system
  4. 2009.11.17 똑똑한 운전 도우미 로봇, 아이다
  5. 2009.11.15 Kalman Filter
  6. 2009.11.12 Project Notes
  7. 2009.11.08 PID 제어기
  8. 2009.11.08 Ziegler–Nichols method
  9. 2009.11.06 Model : Nathan
  10. 2009.10.16 P/I/PI/PID제어
2009. 11. 18. 01:47 Mathematical Theory

이전 포스팅에서 언급한 선형 시스템에서 우리가 하려고 하는 일은 측정 가능한 y의 값으로 부터 시스템의 상태인 x를 예측해 내는 것

입니다.

 

이미 시스템이 어떻게 동작하는지 표현 하는 공식의 모델링도 했고, 위치를 측정할 수도 있습니다. 그럼 어떻게 상태 x를 예측할

수 있을 까요? (아니면 예측된 값이 최적의 결과라고 확신 할 수 있을까요?)


일단 시스템 동작의 결과(원하는 상태 x) 모두를 정확하고도 직접적으로 측정할 수는 없더라도 시스템 상태를 그야말로 정확하게 예측

할 수 있는 예측 시스템 (estimator)이 있으면 얼마나 좋을까요? 그 시스템을 고르는 결정 방법은 또 뭘까요?

일단 다음의 두가지 (수학적인) 요구 조건이 있다고 합니다. (저자는 머리속에 떠오른다는데 왜? 난 아무 생각이 없이 머리속이 백짓장 마냥 변하는 걸까요? ㅎㅎㅎ)

 

우선 첫번째로, 우리가 예측한 상태의 평균값이 실제 시스템의 (그야말로 - 100% exact truth) 진짜 상태의 평균과 동일하다면 좋다고 합니다. 이 의미는 통계적인 평균값이 다를 경우 (즉, Kalman Filter는 통계적인 기반을 가지고 있다는 뜻 입니다) 예측이 어느 특정 방향으로 바이어스 (bias)가 발생하게 된다는 뜻 입니다. 다시, 수학적으로 (정확히는 통계학적으로) 추정 (또는 예측치)의 기대값(expected value)이 실제 시스템의 기대값과 같아야만 한다는 것 입니다.

 

두번째로, 현재 예측된 시스템의 상태와 실제 상태의 차이가 작으면 작을 수록 좋다고 합니다. 역시, 수학적으로 가능하면 가장 작은 오류 변형이 발생하는 Estimator를 찾아야 합니다.

 

물론 이런 얘기를 하는 이유가 이미 수많은 과학자들과 수학자들이 알아보기로 KF가 위의 특성을 다 따르기 때문인 것은 당연하겠지요. 하지만 여기서 KF 를 이용한다고 해서 모든 부분에 최상의 결과를 기대할 수 있는 것은 아니며 이를 위해서 시스템에 영향을 미치는 잡음이 어느 정도의 가정에 맞아 들어 가야만 합니다.

 

이전에 언급된 프로세스 잡음 (Process Noise) w와 측정 잡음 (Measurement Noise) z의 경우 우리는 이들 잡음의 평균이 0 이라고 (즉, White Noise 를 말합니다) 가정 하고 있습니다. 또한, w와 z 간에는 상호 작용(correlation)이 없어야 합니다. 즉, 어떤 시간 k에서든 w_{k}와 z_{k}는 독립적인 랜덤 변수(independent random variable) 이어야 한다는 것 입니다.

 

이제, 노이즈 코베리언스 메트릭스 (Noise Covariance Matrix)인 S_{w}와 S_{z} (Process 및 Measurement 노이즈 각각)는 다음과 같이 정의 됩니다.

 

Process noise covariance :

Measurement noise covariance :

 

 

여기서 w^{T} 와 z^{T}는 w와 z 노이즈 벡터의 트랜스포즈 (전치 - Transponse)를, E(...) 는 기대값을 의미 합니다. 이들이 어떻게 나타나는지 실예는 좀 있다가 설명하겠습니다.

 

일단 이리하여 Kalman Filter를 소개하기 위한 준비 과정을 거의 마무리 했습니다.

 

그럼 KF는 무엇 일까요? KF를 표현하는 여러가지 공식이 있지만 가장 일반적인 공식을 (사실 원문의 공식 입니다) 보면 다음과 같습니다.

 

위의 수식을 보는 순간 머리가 상당히 아플 수는 있겠습니다만 (저는 다시 머리속이 하얗게 변하드라는 ㅎ) 잠시만 참고, 위 3개의 공식을 찬찬히 봐 주시기 바랍니다. 우선 -1이 의미하는 것은 메트릭스 인버젼 (maxtrix inversion) 이며 T는 이전에 설명 드린 트랜스포(transposition) 입니다.

K 는 칼만 게인(Kalman Gain)을, P는 예측 오류 코베리언스 메트릭스(the estimation error corvariance matrix) 라고 합니다.

 

중간에 꺽어진 모자를 쓰고 있는 어디서 본 듯한 x는 상태 예측 공식 입니다. 이 공식에 우선 집중을 해 보면

앞의 

는 이전 시점에 예측된 상태 벡터 x를 A로 곱하고 현재 확인된 입력(가속도 변화 등)을 B로 곱한 결과를 더한 것으로 쉽게 예기하자면 노이즈를 제외한 선형 시스템의 상태 예측 공식 입니다. 또한, 이는 센서등의 계측이 전혀 반영되지 않은 시스템 상태 예측이 됩니다.

 

그래서 두번째 항인 아래 수식을(correction term을 어거지로 번역하면) 보정항 이라고 하며 새로 수집된 계측 자료에 의해서 얼마나 많은 보정을 예의 시스템 상태 예측에 가해야 하는지를 나타냅니다. 아래의 공식에서도 유의 하실 것은 계측 자료에서 이전의 출력 수식(measurement 역시 예측 한다는 뜻 입니다)을 뺀 값(많은 KF 관련 문서에서 이 식을 이노베이션 - Innovation - 이라고 합니다)을  칼만게인과 곱하는 부분 입니다.

 

Correction Term:

 

KF 공식에서 칼만게인 부분 만을 좀 더 주의 깊게 살펴 보면, 만일 센서의 노이즈가 큰 경우 결국 S_{z} (Measurement noise covariance)가 커지게 되고, K의 값이 작아지게 됩니다. 결과적으로 다음에 이어질 상태 예측 공식에서 새로 수집된 자료 내용에 대한 신뢰가 떨어지게 되며 시스템 상태 예측에 무게가 실리게 됩니다.

반대로, 노이즈가 작은경우, S_{z}가 작아지고, K는 커지며 다음 상태 예측 공식에서 더 많은 신뢰를 (즉, 실측 자료의 내용이 좀더 많이 반영 되는) 가져오게 됩니다.

 

마지막의 Error Covariance Matrix 의 경우는 프로세스 노이즈와 계측 노이즈, 이전에 (즉, k번째에) 계산된 Error Covariance Matrix 를 이용해서 업데이트 됩니다.

 

원문에서 별다른 스포트 라이트를 받고 있지는 못 합니다만 실제 이 메트릭스는 시스템의 상태 및 측정 오류등의 변화량등의 값들을 추적/기억하고 있습니다. 로보틱스(특히 SLAM)에서는 이 메트릭스와 상태 벡터를 새로 확인되어진 랜드마크(센서에 의해서 지표로 인지 가능한 마크)를 추가해서 전반적인 상태 변화를 추적하는데 사용되기도 됩니다.

 

예제

이제 이전에 다루던 자동차 관련 예측을 계속 진행해 보겠습니다.

 

원문 저자가 미쿡분이다 보니 피트를 단위로 사용하셔서 좀 현실적이지 않은 부분이 있습니다만 예제에서 주요 파라미터로 다음과 같은 값을 지정하고 있습니다 :

 

1. 입력 가속 : 1 foot / s^2

2. 가속 노이즈 : 0.2 feet / s^2

3. 위치 결정 노이즈 : 10 feet

4. 측정은 1초당 10회 (즉, 10Hz, T=0.1)

 

위의 오류들은 모두 1-sigma (one standard deviation) 내의 값들 입니다.

 

아래의 수식에서 바뀐 부분은 T와 관련된 부분이 실제 값으로 바뀐 것 뿐 입니다. 참고하고 있는 원문에서는 T (시간 변화율)를 0.1초로 보고 있습니다. 

 

출력 노이즈인 S_{z}의 경우 단순 스칼라 값이며 위의 파라미터를 보면 10 feet이므로 결국 100 (= 10*10 ) 이 됩니다.

S_{w}를 구하는 과정을 보죠. 상태는 위치와 속도의 2개 정보를 가지고 있습니다.

위치는 가속도에 대해서 0.005 배에 비례하고 가속 노이즈가 0.2 feet/s^2이기 때문에 위치노이즈의 편차 (variance)는 (0.005 ^2 ) * 0.2 ^ 2) = 10^-6 (10의 -6승)이 됩니다.

유사하게, 속도의 경우 가속에 대해서 0.1배 만큼 비례하며 결국 (0.1 ^2 ) * 0.2 ^ 2) = 4 *10^-4 이 됩니다.

결국, 메트릭스는 아래와 같이 표현 됩니다. 여기서 vp = pv = (0.005 * 0.2) * (0.1 * 02) = 2 *10^-5  입니다.

 

여기까지 수집된 결과들과 수식들을 아래의 문서에 도식화 하고 있는 것과 같은 무한룹에 빠지도록 프로그램을 작성하면 되겠습니다.

 

http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf

 
출처 : http://blog.naver.com/hangondragon/20066836673


'Mathematical Theory' 카테고리의 다른 글

Linear Systems(선형시스템)  (0) 2009.11.18
Linear system  (0) 2009.11.18
posted by SuperMjs
2009. 11. 18. 01:40 Mathematical Theory

선형 시스템(http://en.wikipedia.org/wiki/Linear_system)이란 시스템을 모델링한 수식이 선형 연사자 (linear operator)들로 표현이 가능한 시스템을 말합니다. 실제 환경에서 이러한 선형 시스템을 찾기는 쉽지 않으며 많은 경우 비선형 시스템을 위한 EKF나 UKF등을 사용하는 경우가 많습니다만 KF는 선형 시스템의 예측을 위한 필터이니 만큼 선형 시스템을 위주로 설명하도록 하겠습니다.

KF가 추출된 신호 (signal)에서 잡음(noise)를 제거하기 위해서는 현재 모델링하려는 프로세스 (즉, 위치제어 또는 영상처리 시스템의 주요 기능)가 선형 시스템으로 기술이 가능해야 합니다. (즉, Y = aX + b와 같은 수식으로 표현이 되어야 한다는 뜻입니다) 길을 따라 주행 중인 자동차, 지구 주위를 도는 위성, 지나가는 전하 흐름에 의해서 돌아가는 모터 샤프트나 라디오 신호 전파에 사용되는 사인파 의 경우는 선형 시스템으로 근사화(approximated) 시킬 수 있습니다.

선형 시스템을 기술 할때 일반적으로 아래의 2개의 간단한 수식으로 표현 합니다.

상태 수식 (Sate Equation - 시스템의 전반적인 신호 파형을 표현 합니다. Process Model, Plant Model등으로 불립니다):


 

출력 수식 (Output Equation - 시스템 신호 중 측정 가능한 값들을 표현 합니다. Measurement Model, Sensor Model등으로 불립니다):

 

 

우선, A, B, C는 메트릭스(Matrix - 모피우스를 빨랑 찾아야 할거 같네요) 입니다. k는 시간의 index이며 x는 시스템의 상태를 나타내는 벡터(Vector)입니다. y_{k}는 센서등을 이용해서 측정된 값을 의미하며, w, z는 잡음 (에러) 입니다. 특히, w는 프로세스 잡음(Process Noise), z를 측정 잡음 (Measurement Noise)라고 합니다. x, y, w, z 는 대부분의 경우 벡터 입니다.


이 부분에서 잡음은 무시 하면 될 듯 합니다만 KF에서 가장 중요한 것이 잡음 입니다. 실제 KF의 기본적인 동작이 가능해지는 시점에 튜닝을 위해서는 이들 잡음를 나타내는 Covariance Matrix의 값들을 조절해서 KF의 감도나 응답 특성을 변경할 수 있게 됩니다. 실제 주요 튜닝 방법은 이후 다른 포스트에서 논의 하도록 하겠습니다.

 

우선, 프로세스 상태 벡터인 X의 경우 시스템의 현재 상태에 대한 모든 정보 (비행체의 위치 정보 - X, Y, Z좌표와 각도, 가속도 바이어스등)를 나타냅니다. 하지만, 중요한 것이 이들을 직접적으로 측정할 수가 없습니다. 대신, 측정 잡음 Z에 의해서 어느 정도 값이 깨어진 Y를 (즉, 센서에서 읽어들인 값들을) 측정할 수 있습니다. 이 측정된 Y를 이용해서 거꾸로 X를 계산 해 낼 수 있습니다. (단순 선형식을 이용해서 X를 계산하고 측정된 Y값을 이용해서 이를 다시 보정합니다. 이는 아래 쪽에서 좀더 자세히 설명 됩니다)

 

시스템의 상태인 X를 Y의 값을 이용하면 추정(estimate)해 낼 수 있다고는 합니다만 이는 측정 잡음 Z에 의해서 값이 변형이 된 상태이기 때문에 그대로 값을 사용할 수는 없습니다. 모든 센서에는 기본적으로 가지고 있는 오차가 있습니다. GPS의 경우 5-6개의 위성이 Fix된 상태라고 한다 하더라도 오차는 작게는 2-3미터 크게는 10-20미터까지 날 수 있습니다. 물론 Gyro, Magneto 센서나 가속도 센서 (Accelerometer)의 경우도 역시 마찬가지 오차를 가지고 있으며 Datasheet에 어느정도 기술 되어 있습니다. 하지만 정확한 튜닝을 위해서는 이값들을 조금씩 변행해야 합니다.

 

원저에서 저자는 Y를 정치가에 비유하네요. 어느정도 믿어야 하지만 (믿을 수 밖에 없지만) 모든 내용을 신뢰하지는 말아야 한다는 거죠 ^.^

 

그럼 직선으로 주행 중인 자동차의 예를 들어 보죠. 자동차의 현재 위치는 p, 속도는 v로 이동 하고 있습니다. 시스템의 입력 u는 현재 지시된 가속도 이고 출력치(측정치) 인 y는 현재 위치 입니다.  매 T 초 마다 가속도를 변경하면서 위치를 측정한다고 합시다.

이때 우리는 기본적인 물리 법칙에 의해서 속도 v가 다음의 식에 의해서 표현 된다고 할 수 있습니다:

 

 

이는 T초 후의 속도는 현재 속도에 지시된 (가령, 자동차의 가속 페달을 밟아서 속도를 올리거나 브레이크를 밟는등) 가속도에 시간 T를 곱한 값이 됩니다. 하지만 위의 식에 의해서 정확한 v_{k+1}의 값을 알수는 없습니다. 이유는 도로상에 갑작스럽게 바람이 분다던가 노면이 울퉁 불퉁 하다거나 다른 상상할수 있는 많은 이유에 의해서 속도에 변화가 발생하게 될 수 있다는 것이죠. 이때 속도에 관여한 잡음은 시간에 따라서 변화하는 랜덤변수 (Random variable) 입니다.

 

그래서, 좀더 실제에 가까운 식은 아래와 같이 기술 될 수 있습니다:

 

 

위 식에서 v~_{k}는 속도 잡음 입니다.

 

위치p 를 표현하는 공식도 다음과 같이 기술 될 수 있습니다:

 


위 식에서 p~_{k}는 위치 잡음 입니다. 

그럼 이제 우리가 표현하려는 시스템의 상태(State Vector, X)를 아래와 같이 현재 위치와 속도로 구성되어 있다고 보겠습니다 :

 

 

이제 최종적인 측정 값이 현재 위치라고 했으니 전체 시스템을 위한 선형 식은 다음과 같이 표현이 가능합니다:

 


위에서 x_{ k+1}을 p, v로 각각 Row 별로 간단한 행렬 계산을 해 보시면 이전에 언급했던 간단한 물리 공식과 같음을 아실 수 있을 겁니다. 즉, 프로세스 상태 식은 우리가 표현 하려는 프로세스의 물리식을 행렬로 표현 한 것이라고 보시면 됩니다.


y_{k} 의 경우는 측정하려는 위치에 잡음이 고려된 공식 입니다.

 

z_{k}는 센서나 측정 장비의 오류등에 의한 측정 잡음(measurement noise) 입니다. 현재 고려 하고 있는 예제에 피드백 시스템을 도입하려고 한다면 위치 p와 속도 v가 어느 정도 정확하게 측정되어야 합니다.

 

즉,  x를 정확하게 예측 해야 한다는 것이지요. 이를 위해서 칼만 필터가 사용 됩니다.

출처:
http://blog.naver.com/hangondragon/20066836673

'Mathematical Theory' 카테고리의 다른 글

Kalman Filter & Algorithm  (0) 2009.11.18
Linear system  (0) 2009.11.18
posted by SuperMjs
2009. 11. 18. 01:28 Mathematical Theory

  A linear system is a mathematical model of a system based on the use of a linear operator. Linear systems typically exhibit features and properties that are much simpler than the general, nonlinear case. As a mathematical abstraction or idealization, linear systems find important applications in automatic control theory, signal processing, andtelecommunications. For example, the propagation medium for wireless communication systems can often be modeled by linear systems.

A general deterministic system can be described by operator, H, that maps an input, x(t), as a function of t to an output, y(t), a type of black box description. Linear systems satisfy the properties of superposition and scaling. Given two valid inputs

x_1(t) \,
x_2(t) \,

as well as their respective outputs

y_1(t) = H \left \{ x_1(t) \right \}
y_2(t) = H \left \{ x_2(t) \right \}

then a linear system must satisfy

\alpha y_1(t) + \beta y_2(t) = H \left \{ \alpha x_1(t) + \beta x_2(t) \right \}

for any scalar values \alpha \, and \beta \,.

The behavior of the resulting system subjected to a complex input can be described as a sum of responses to simpler inputs. In nonlinear systems, there is no such relation. This mathematical property makes the solution of modelling equations simpler than many nonlinear systems. For time-invariant systems this is the basis of theimpulse response or the frequency response methods (see LTI system theory), which describe a general input function x(t) in terms of unit impulses or frequency components.

Typical differential equations of linear time-invariant systems are well adapted to analysis using the Laplace transform in the continuous case, and the Z-transform in thediscrete case (especially in computer implementations).

Another perspective is that solutions to linear systems comprise a system of functions which act like vectors in the geometric sense.

A common use of linear models is to describe a nonlinear system by linearization. This is usually done for mathematical convenience.


Time-varying impulse response

The time-varying impulse response h(t2,t1) of a linear system is defined as the response of the system at time t = t2 to a single impulse applied at time t = t1. In other words, if the input x(t) to a linear system is

x(t) = \delta(t-t_1) \,

where δ(t) represents the Dirac delta function, and the corresponding response y(t) of the system is

y(t) |_{t=t_2} = h(t_2,t_1) \,

then the function h(t2,t1) is the time-varying impulse response of the system.

[edit]Time-varying convolution integral

[edit]Continuous time

The output of any continuous time linear system is related to the input by the time-varying convolution integral:

 y(t) = \int_{-\infty}^{\infty}  h(t,s) x(s) ds

or, equivalently,

 y(t) = \int_{-\infty}^{\infty}  h(t,t-\tau) x(t-\tau) d \tau

where

 \tau = t - s \,

represents the lag time between the stimulus at time s and the response at time t.

[edit]Discrete time

The output of any discrete time linear system is related to the input by the time-varying convolution sum:

 y[n] = \sum_{k=-\infty}^{\infty} { h[n,k] x[k] }

or equivalently,

 y[n] = \sum_{m=-\infty}^{\infty} { h[n,n-m] x[n-m] }

where

 k = n-m \,

represents the lag time between the stimulus at time k and the response at time n.

[edit]Causality

A linear system is causal if and only if the system's time varying impulse response is identically zero whenever the time t of the response is earlier than the time s of the stimulus. In other words, for a causal system, the following condition must hold:

h(t,s) = 0\text{ for }t < s \,

[edit]See also


From Wikipedia.

'Mathematical Theory' 카테고리의 다른 글

Kalman Filter & Algorithm  (0) 2009.11.18
Linear Systems(선형시스템)  (0) 2009.11.18
posted by SuperMjs
2009. 11. 17. 18:39 New Car Technology

 

운전자 정서에 맞춘 똑똑한 운전 도우미 로봇 아이다(AIDA : Affective Intelligent Driving Agent)를 MIT가 개발 중인 모양이다. 자동차에 내장돼 길을 안내하면서 자동차 안팎의 여러 센서에서 얻은 정보를 조합해 운전자 습관에 맞춘 감성 주행을 선보인다는 것이 이 녀석의 목표다. 단순한 내비게이션 시스템을 넘어 운전자와 정서적 공감을 추구한다는 것.


아이다는 사진처럼 목만 달린(?) 소형 로봇과 대시보드로 구성된 단순한 형태다. 아직은 보완이 필요할 듯하다. 아무튼 주변에서 수집된 정보를 통해 사용자가 움직일 경로를 미리 예측해서 안내하기도 하는 모양이다.


말귀 알아듣고 뛰어다니는 로봇, 로피드
모션빌더로 움직이는 로봇 만든다
이를테면 매주 금요일에 마트에서 장을 보고 귀가했다면 아이다가 이런 습관과 도심 관련 정보를 조합해서 길을 그려준다는 이야기. 아예 금요일은 쇼핑하는 날이라고 판단한 아이다가 퇴근길 내비게이션 경로를 마트에 들렀다가 집으로 향하도록 이끈다는 것이다.

이때 자동차에 기름이 없다면 주유소를 경유하는 경로도 알아서 잡아준다. 이 정도면 제법 영특하지 않은가?아우디와 함께 개발 중이라는 아이다가 실용화 길에 들어선다면 내비게이션 업계에는 타격을 받을 것이고 자동차와 로봇을 사랑하는 남성들은 쌍수들어 환영할 것이다. 


아직 생긴 것은 다소 애매한 면이 있지만 다듬어지면 더 사랑스러운 외형을 갖추지 않을까 하는 생각을 한다. 그건 그렇고 이 정도되면 사이버포뮬러 속 아수라다가 현실에 등장하는 것도 멀지 않은 느낌이다.







김정균 버즈리포터(http://www.neoearly.net/)

'New Car Technology' 카테고리의 다른 글

무인자동차 '산길·드리프트'도 거뜬  (0) 2009.11.19
posted by SuperMjs
2009. 11. 15. 21:24 Embedded System/Software

Kalman  Filter

 

Rudolf E. Kalman 이 발명한 칼만필터는 최소자승법 (Least Square Method) 를 사용해서 실시간으로 잡음 (noisy) 운동 방정식 (equations of motion) 을 가진 시간에 따른 방향 (time-dependent state vector) 를 추적하는 효율적인 재귀 계산법 (recursive computational solution) 이다. 칼만필터는 하나의 시스템이 시간에 따른 변화를 적절하게 예측할 수 있도록 잡음 (noise) 으로부터 신호 (signal) 를 찾아내기위해 사용된다.

실제로는 Peter Swerling 이 일찌기 유사한 알고리즘을 개발했다. Stanley Schmidt 는 최초로 칼만필터를 실제로 응용하여 사용했다고 알려져있다. Kalman 이 NASA Ames Research Center 를 방문했을 때 우주선 아폴로의 궤도를 추정하는 문제에 그의 아이디어가 사용될 수 있다는 것을 알게되었고, 우주선 아폴로의 운행컴퓨터 (navigation computer) 에 포함되게 되었다.

다양한 종류의 칼만필터가 지금까지 개발되었는데, 소위 simple Kalman filter 이라 불리우는 칼만의 원래의 형식에서부터, Schmidt 의 extended filter, information filter, Bierman 과 Thornton 등등에 의해 개발된 다양한 squrar-root filter 들이 있다. 칼만필터는 제어시스템공학에서 광범위하게 사용된다. Wiener filter 와 비교된다. ...... (Wikipedia : Kalman filter)

대부분의 사람들은 칼만 필터에 대해 들어 보지 못했다. 그것은 비행기와 우주 탐사 로켓, 그리고 순항 미사일을 유도하고, 위성과 경제의 추세와 혈액 흐름의 변화 등을 추적한다. 그것은 '최적의' 예측기이다. 그것은 비행기가 구름에 가리어 있을 때 비행기의 방향에 대해 '가장 잘' 예측할 수 있도록 한다. 여러분은 어떻게 미사일이 목표물을 찾고, 어떻게 우주 비행사들이 지구로 돌아오는지 궁금해해 본 적이 없는가? 칼만 필터는 어떻게 이러한 일이 가능한지 보여 준다. 다윈의 적자 생존 이론이 진화 생물학을 대표하는 것과 마찬가지로, 칼만 필터는 대부분의 공학을 대표한다. 수천 명의 엔지니어들은 칼만 필터에 약간 덧붙이거나 변형된 논문들을 발표하였다. ..............

term :

예측 (Prediciton)   Rudolf E. Kalman   제어 (Control)

Site :

Paper :

칼만필터를 이용한 우리나라의 잠재적 GNP 추정과 경기변동의 추이에 관한 연구 (Potential GNP and Business Cycles of Korea : A Kalman Filtering Approach) : 이병완, 한국경제학회, 1994

확장 칼만필터를 이용한 LEO 위성의 궤도 결정 방법 (THE ORBIT DETERMINATION OF LEO SATELLITES USING EXTENDED KALMAN FILTER) : 최규홍, 손건호, 김광렬, 한국우주과학회, 1995

칼만필터를 이용한 레이다 추적계의 비교연구 : 위상규, 임청부, 한국항공우주학회, 1989

적응 칼만필터를 이용한 MTI 레이터의 이동표적 추적 기법 (Moving Target Tracking Technique of MTI Radar Using Adaptive Kalman Filter) : 박인환, 조겸래, 조설, 한국항공우주학회

칼만필터를 이용한 최고/최저 기온예보 (The Forecasting the Maximum / Minimum Temperature Using the Kalman Filter) : 이동일, 이우진, 한국기상학회, 1999

칼만필터를 이용한 무궁화위성 궤도 결정 성능분석 연구 (Performance Analysis of Kalman Filter Based KOREASAT Orbit Determination) : 박봉규, 안태성, 한국항공우주학회, 2000

반복적 확장 칼만필터를 이용한 얼굴의 3차원 움직임량 추정 (3-D Facial Motion Estimation Using Iterative Extended Kalman Filter) : 박강령, 김재희, 한국정보처리학회

최소 최대 추정량과 베이즈 추정량으로서의 Kalman 필터에 관하여 (On the Kalman Filter as the Bayes Estimator and the minimax Estimator) : 김지곤, 상명대 자연과학연구소, 1998

 

=========================================================================================

더 확실한 이해를 위해 세번째~~~

=========================================================================================

칼만필터는 1960년 R.E.Kalman (Kalman, Rudolph, Emil) 의 논문
"A New Approach to Linear Filtering and Prediction Problems"
에 그 시초를 두고 있다.
칼만필터에 대한 자세한 설명과 관련자료는 아래주소 Greg Welchd의 홈페이지에 잘 정리되어 있다.
여기서는 처음 칼만필터의 내용을 접하는 초보자를 위해 한글로 몇가지 중요한 내용을 정리해본다.
 
칼만필터는 흔히 " an optimal recursive data processing algorithm" 이라고 불린다.
이에 대한 직접적인 설명을 하기 전에 간단한 예로써 그 의미를 전달해보자.
어느 고등학교 선생님이 자신의 학급 학생들의 수학점수 평균을 알고 싶다고 가정하자. 물론 모든 학생의 점수를 더한 후 이를 학생 수로 나누는 방법이 가장 쉽고 간편할 것이다. 그러나, 한가지 재미를 더하기 위해 상황을 설정하자면 아직 선생님은 학생들의 점수를 전혀 알고 있지 못한 상황이고, 학생들은 한번에 한명씩만 선생님께 점수를 말해준다고 가정하자. 이때 선생님이 평균을 짐작해보기 위한 가장 좋은 방법은 학생 한명한명이 점수를 말할 때마다 이들의 평균으로 전체의 평균을 짐작해보는 것이다. 즉 다음과 같은 관계식을 생각해볼 수 있다.
 
X'(1) = X1
X'(2) = (X1+X2)/2 = (X'(1)*1+X2)/2
X'(3) = (X1+X2+X3)/3 = (X'(2)*2+X3)/3
X'(4) = (X1+X2+X3+X4)/4 = (X'(3)*3+X4)/4
  :
  :
X'(n) = (X1+X2+.......+Xn)/n = (X'(n-1)*(n-1)+Xn)/n
 
위 식의 일반식은 다음과 같이 변형할 수도 있다.
X'(n) = X'(n-1)*((n-1)/n)+(1/n)*Xn
그럼 위 식이 갖고 있는 특징은 무엇일까? 위와 같은 식을 사용할 때의 간편한 점은 지나간 개개의 값들을 모두 기억해 둘 필요가 없다는 것이다. 즉 n번째 평균을 구할 때 선생님은 X'(n-1) 과 지금 n번째라는 두개의 값만 기억하면 아무 문제없이 n번째의 평균을 구할 수 있게된다.
이와 같은 기법을 "반복적 자료 처리 (recursive data processing)" 이라고 하며, 최초 Kalman Filter 이론의 개발 이유이기도 하다. 처리할 자료의 양이 그리 많지 않을 때는 모든 자료를 기억해두었다가 한번에 계산하는 것이 간편할 수도 있겠으나, 그 자료의 양이 방대하다면, 저장 장소 및 처리 시간을 고려하지 않을 수 없게 된다. 칼만필터가 개발된 60년대는 컴퓨터의 발달이 초보적인 상태였기에 자료의 효율적 저장 및 처리가 절실할 시절임을 감안한다면 어쩌면 당연한 고안이라고 생각할 수 있겠다.
그럼 이제 "최적 (optimal)" 이라는 단어에 초점을 둬 보자. 위에서 제시한 예는 개개의 데이터 (각 학생의 수학점수)에 동일한 가중치, 즉 새로 받아들이는 모든 값에는 1/n의 가중치가 두어졌다. 그렇다면 가중치가 다른 경우에는 어떠할까? 같은 점수를 갖고 있는 학생 3명이 함께 와서 "우리점수는 ㅇㅇ점 입니다."라고 한다면 이점수에 대한 가중치는 3/n을 주어야 할 것이다. 이와 같이 각 데이터가 갖고 있는 평균에 대한 중요도를 "경중률"이라고 한다. 경중률에 대한 개념은 측량에 있어서 여러방법으로 길이를 재고 이들의 평균을 구해봄으로써 더욱 쉽게 이해할 수 있다.
이번에는 위의 수학선생님이 학생 두명에게 각기 다른 방법으로 교실의 길이를 재보라고 했다고 하자. 한 학생은 자신의 보폭을 이용하고, 다른 학생은 줄자를 이용하여 교실의 길이를 측정했을때, 첫번째 학생은 10m, 두번째 학생은 12m 라는 값을 얻었다. 만약 둘 모두 같은 방법으로 길이를 측정하였다면, 선생님은 주저없이 두 값을 평균하여 11m 를 교실의 길이라고 말할 수 있겠다. 그러나, 누가 보더라도 보폭으로 잰 길이보다는 줄자로 잰 길이가 정확하다고 느낄 것이다. 그렇다면 이들 두 값을 어떻게 평균해야 할까? 이때 도입되는 개념이 경중율이다.
측량학에 있어서 관측값의 경중률은 각 값이 갖고 있는 표준편차를 기준으로 정한다. 즉 각 관측치에 대한 경중률은 표준편차 제곱에 반비례한다. 표준편차가 크면 클수록 그 값의 경중률은 떨어지며 평균에 대한 기여도가 적어지게 된다.
줄자로 잰 거리가 10m이지만, 수많은 경험 또는 수많은 반복 측정을 통해 얻어진 표준편차가 +-0.1m라고 가정한다면, 그리고 보측은 12m +-1.0m라고 가정한다면, 이들의 평균은 다음과 같이 구해진다.
 
평균 = (10*(1.0)^2 + 12*(0.1)^2 ) / (0.1^2+1.0^2)
       = 10.02m
 
위의 식을 일반화 하면,
 
X = (X1*(sd2)^2 + X2*(sd1)^2) / ((sd1)^2+(sd2)^2)
     = (X1*(sd1)^2 - X1*(sd1)^2 + X1*(sd2)^2 + X2*(sd1)^2) / ((sd1)^2+(sd2)^2)
     = X1 + (X2-X1)* [(sd1)^2 / ((sd1)^2+(sd2)^2)]
 
여기서, X : 상태변수 (state variables)
           sd : 표준편차 (standard deviation)
 
위의 마지막 식이 칼만 필터에 있어서 시스템 출력값 (위에서는 X1) 과 새로운 입력값 (X2) 을 이용하여 새로운 최적값 (optimized state variables) 을 계산하는 "관측갱신 알고리즘 (measurement update algorithm)" 의 스칼라 형태이다. (일반적으로 칼만필터의 기본식은 행렬 또는 벡터형태로 나타나 있다.)
더불어 새로운 최적값, X, 의 표준편차는 다음과 같이 계산된다.
 
(sd)^2 = [(sd1)^2+(sd2)^2] / [(sd1)^2*(sd2)^2]
 
이제 위의 두 식, 최적값 X와 표준편차 sd를 구하는, 을 이용하면 앞에서 말한 두 관측 값 이외에 다른 관측값을 추가적으로 얻어서 다시 새로운 최적값을 구할때도 같은 방법을 계속 사용할 수 있다. 이때는 앞에서 얻어진 X 는 X1 이 되고, sd 는 sd1 이 되며, 새로운 관측값과 표준편차(경중률)은 각각 X2 와 sd2 가 된다.
이와 같은 반복적인 (recursive) 연산 (data processing) 을 통해 최적 (optimal) 값을 추적하는 것이 칼만 필터의 기본개념이라 할 수 있겠다.
 
 
여기에서는 칼만필터의 기본식을 바탕으로 각 식이 갖고 있는 의미를 짚어본다.
칼만필터의 기본식은 여러가지 형태로 표현되곤 하지만 가장 일반적으로는, 다음과 같은 시스템 방정식과 관측방정식을 갖고 있는 시스템에 대한 칼만필터를 다음과 같이 표현할 수 있다. (from Welch & Bishop's lecture note)


 
 
 
 
 


 
먼저 시스템 방정식과 관측방정식을 살펴보자.
칼만필터를 도입하기 위해서는 기본적으로 위와 같은 두 선형방정식이 필요하다. 비선형 방정식에 대한 "확장형 칼만필터 (Extended Kalman Filter)" 는 비선형 방정식을 테일러 급수전개 등을 이용하여 선형화 한 후 적용한 형태일 뿐이다. (다만 비선형의 선형화에 따른 변환계수 -그림에서 A 또는 H와 같은- 의 형태가 달라질 뿐이다. 이에 대해서는 "확장형 칼만필터"에서 다시 자세히 설명하겠다.)
시스템 방정식에서 x는 우리의 관심, 즉 최적화를 하고자 하는 상태변수를 의미하고 계수 A 는 한 단계에서의 상태변수와 다음 단계의 상태변수를 연결하는 변환계수를 표현한다. B 와 u 는 한 덩어리로 인식할 수 있으며 이들은 시스템에 무관한 추가 입력값이다. 마지막으로 w 는 k 단계에서 상태변수 x 의 참값과의 차이값 또는 "시스템 오차(system error or system noise)" 이다. (우리가 알고 있는 x 는 참값에 근접한 계산값일 뿐이다.) w 는 개별적으로 값을 구하거나 지정할 수 없으며, 단지 오랜 관측 및 시스템의 제작시부터 알고있는 참값에 대한 표준편차로써 -칼만필터 안에서는 분산의 형태로써- "Q" 라는 변수로 적용된다.
관측방정식에서 z 는 관측값이고 이는 상태변수 x 와 변환계수 H 에 의해 표현되며 v 는 관측값 z 와 관측참값과의 오차 (measurement error or measurement noise) 이다. v 는 w 와 마찬가지로 개개의 값을 알 수는 없고 관측 참값에 대한 분산인 "R" 라는 변수로써 칼만필터 안에서 사용된다.
 
여기에서 칼만필터의 기본가정을 소개하자면, 이는
[오차 w 및 관측방정식에서의 v 는 각각의 참값에 대해 정규분포하며 그 평균은 0 이고 분산은 각각 Q 와 R 이다.] 이다.
이 가정은 칼만필터의 가장 큰 장점인 반면 또한 가장 큰 단점으로 작용하기도 한다. 시스템 연산값 및 관측값이 참값에 대해 정규분포하는 일반적인 경우에는 위와 같이 간단한 칼만필터 알고리즘을 통해 최적화 할 수 있는 강력한 도구가 되지만, 그렇지 않은 경우 -오차가 참값에 대해 정규분포하지 않는 경우 또는 그렇다 하더라도 그 분산을 알 수 없는 경우- 에는 그 적용에 있어 문제와 어려움이 크다. 그러나 오차의 확률분포가 정규분포가 아닌 경우라 하더라도 이를 정규분포로 간주함에 있어 그리 큰 무리가 없는 경우에는 칼만필터는 아직까지 유용하고 강력한 도구로 사용된다.(???수정필요!!!)
 
위에 설명한 시스템 방정식과 관측방정식의 이해를 위해 간단한 예를 들어 본다면, 등속운동을 하고 있으며 때때로 추가적인 가속 또는 감속을 하고 있는 자동차를 생각해보자. 이는 기본적으로 등속운동을 하고 있으니 k-1 단계에서의 속도와 k 에서의 속도는 동일하므로 A는 "1" 이다. 또한 추가적인 가감속에 따른 속도변화는 그것이 이루어진 단계에서 Bu 에 그 값을 적용할 수 있다. 그리고 그 자동차를 외부에서 스피드건을 이용해 관측한다면 이는 그 속도를 직접 관측하는 것이므로 H 역시 "1" 이다.

출처 : Tong - gayanim님의 image processing통


'Embedded System > Software' 카테고리의 다른 글

Setting up my machine to build Android source code(for ODROID)  (0) 2011.02.12
NMEA Library  (0) 2009.11.26
Ziegler–Nichols method  (0) 2009.11.08
커널 부팅 로고 이미지 바꾸기(출처 : FALinux)  (0) 2009.08.13
__attribute__  (0) 2009.07.24
posted by SuperMjs
2009. 11. 12. 14:36 NOVA Project(Hovering Robot)
http://ex328.springnote.com
posted by SuperMjs
2009. 11. 8. 12:17 Embedded System/Hardware

PID 제어기

비례-적분-미분 제어기(PID 제어기)는 실제 응용분야에서 가장 많이 사용되는 대표적인 형태의 제어기법이다. PID 제어기는 기본적으로 피드백(feedback)

어기의 형태를 가지고 있으며, 제어하고자 하는 대상의 출력값(output)을 측정하여 이를 원하고자 하는 참조값(reference value) 혹은 설정값(setpoint)과 비교하여 오차(error)를 계산하고, 이 오차값을 이용하여 제어에 필요한 제어값을 계산하는 구조로 되어 있다.

표준적인 형태의 PID 제어기는 아래의 식과 같이 세개의 항을 더하여 제어값(MV:manipulated variable)을 계산하도록 구성이 되어 있다.

\mathrm{MV(t)}=K_p{e(t)} + K_i\int_{0}^{t}{e(\tau)}\,{d\tau} + K_d\frac{de}{dt}

이 항들은 각각 오차값, 오차값의 적분(integral), 오차값의 미분(derivative)에 비례하기 때문에 비례-적분-미분 제어기 (Proportional–Integral–Derivative controller)라는 명칭을 가진다. 이 세개의 항들의 직관적인 의미는 다음과 같다.

  • 비례항 : 현재 상태에서의 오차값의 크기에 비례한 제어작용을 한다.
  • 적분항 : 정상상태(steady-state) 오차를 없애는 작용을 한다.
  • 미분항 : 출력값의 급격한 변화에 제동을 걸어 오버슛(overshoot)을 줄이고 안정성(stability)을 향상시킨다.

PID 제어기는 위와 같은 표준식의 형태로 사용하기도 하지만, 경우에 따라서는 약간 변형된 형태로 사용하는 경우도 많다. 예를 들어, 비례항만을 가지거나, 혹은 비례-적분, 비례-미분항만을 가진 제어기의 형태로 단순화하여 사용하기도 하는데, 이때는 각각 P, PI, PD 제어기라 불린다.

한편, 계산된 제어값이 실제 구동기(actuator)가 작용할 수 있는 값의 한계보다 커서 구동기의 포화(saturation)가 발생하게 되는 경우, 오차의 적분값이 큰 값으로 누적되게 되어서, 정작 출력값이 설정값에 가까지게 되었을 때, 제어값이 작아져야 함에도 불구하고 계속 큰 값을 출력하게 되어 시스템이 설정값에 도달하는 데 오랜 시간이 걸리게 되는 경우가 있는데, 이를 적분기의 와인드업이라고 한다. 이를 방지하기 위해서는 적절한 안티 와인드업(Anti-windup) 기법을 이용하여 PID 제어기를 보완해야 한다.

위의 식에서 제어 파라메터 Kp,Ki,Kd를 이득값 혹은 게인(gain)이라고 하고, 적절한 이득값을 수학적 혹은 실험적/경험적 방법을 통해 계산하는 과정을 튜닝(tuning)이라고 한다. PID 제어기의 튜닝에는 여러 가지 방법들이 있는데, 그중 가장 널리 알려진 것으로는 지글러-니콜스 방법이 있다.

'Embedded System > Hardware' 카테고리의 다른 글

P/I/PI/PID제어  (0) 2009.10.16
ARM920T Datasheet  (0) 2009.07.15
posted by SuperMjs
2009. 11. 8. 12:10 Embedded System/Software

Ziegler–Nichols method

From Wikipedia, the free encyclopedia


The Ziegler–Nichols tuning method is a heuristic method of tuning a PID controller. It was developed by John G. Ziegler and Nathaniel B. Nichols. It is performed by setting the I and D gains to zero. The "P" gain is then increased (from zero) until it reaches the ultimate gain Ku, at which the output of the control loop oscillates with a constant amplitude. Ku and the oscillation period Tu are used to set the P, I, and D gains depending on the type of controller used:

                Ziegler–Nichols method
Control Type Kp Ki Kd
P 0.5·Ku - -
PI 0.45·Ku 1.2Kp / Tu -
PID 0.6·Ku 2Kp / Tu KpTu / 8

This type of tuning creates a "quarter wave decay". This is an acceptable result, but not optimal.

References

External links

'Embedded System > Software' 카테고리의 다른 글

NMEA Library  (0) 2009.11.26
Kalman Filter  (0) 2009.11.15
커널 부팅 로고 이미지 바꾸기(출처 : FALinux)  (0) 2009.08.13
__attribute__  (0) 2009.07.24
blob 처리 순서  (0) 2009.07.24
posted by SuperMjs
2009. 11. 6. 02:27 Photograph/Portrait


Photograph by JS

Canon EOS 5D
50.4
F2.8
1/60sec
ISO400
posted by SuperMjs
2009. 10. 16. 17:14 Embedded System/Hardware

1. PID 제어란?

    자동제어 방식 가운데서 가장 흔히 이용되는 제어방식으로 PID 제어라는 방식이 있다.
    이 PID란,

    P: Proportinal(비례)
    I: Integral(적분)
    D: Differential(미분)

    의 3가지 조합으로 제어하는 것으로 유연한 제어가 가능해진다.


2. 단순 On/Off 제어

    단순한 On/Off 제어의 경우에는 제어 조작량은 0%와 100% 사이를 왕래하므로 조작량의 변화가 너무 크고, 실제 목표값에 대해 지나치게 반복하기 때문에, 목표값의 부근에서 凸凹를 반복하는 제어로 되고 만다.
    이 모양을 그림으로 나타내면 아랫 그림과 같이 된다.
     


 

3. 비례 제어

    이에 대해 조작량을 목표값과 현재 위치와의 차에 비례한 크기가 되도록 하며, 서서히 조절하는 제어 방법이 비례 제어라고 하는 방식이다.
    이렇게 하면 목표값에 접근하면 미묘한 제어를 가할 수 있기 때문에 미세하게 목표값에 가까이 할 수 있다.
    이 모양은 아랫 그림과 같이 나타낼 수 있다.
     


 

4. PI 제어

    비례 제어로 잘 제어할 수 있을 것으로 생각하겠지만, 실제로는 제어량이 목표값에 접근하면 문제가 발생한다.
    그것은 조작량이 너무 작아지고, 그 이상 미세하게 제어할 수 없는 상태가 발생한다. 결과는 목표값에 아주 가까운 제어량의 상태에서 안정한 상태로 되고 만다.
    이렇게 되면 목표값에 가까워지지만, 아무리 시간이 지나도 제어량과 완전히 일치하지 않는 상태로 되고 만다.
    이 미소한 오차를 "잔류편차"라고 한다. 이 잔류편차를 없애기 위해 사용되는 것이 적분 제어이다.
    즉, 미소한 잔류편차를 시간적으로 누적하여, 어떤 크기로 된 곳에서 조작량을 증가하여 편차를 없애는 식으로 동작시킨다.
    이와 같이, 비례 동작에 적분 동작을 추가한 제어를 "PI 제어"라 부른다.
    이것을 그림으로 나타내면 아랫 그림과 같이 된다.
     


 

5. 미분 제어와 PID 제어

    PI 제어로 실제 목표값에 가깝게 하는 제어는 완벽하게 할 수 있다. 그러나 또 하나 개선의 여지가 있다.
    그것은 제어 응답의 속도이다. PI 제어에서는 확실히 목표값으로 제어할 수 있지만, 일정한 시간(시정수)이 필요하다.
    이때 정수가 크면 외란이 있을 때의 응답 성능이 나빠진다.
    즉, 외란에 대하여 신속하게 반응할 수 없고, 즉시 원래의 목표값으로는 돌아갈 수 없다는 것이다.
    그래서, 필요하게 된 것이 미분 동작이다.
    이것은 급격히 일어나는 외란에 대해 편차를 보고, 전회 편차와의 차가 큰 경우에는 조작량을 많이 하여 기민하게 반응하도록 한다.
    이 전회와의 편차에 대한 변화차를 보는 것이 "미분"에 상당한다.
    이 미분동작을 추가한 PID 제어의 경우, 제어 특성은 아랫 그림과 같이 된다.
    이것으로 알 수 있듯이 처음에는 상당히 over drive하는 듯이 제어하여, 신속히 목표값이 되도록 적극적으로 제어해 간다.
     


 

6. 컴퓨터에 의한 PID 제어 알고리즘

    원래 PID 제어는 연속한 아날로그량을 제어하는 것이 기본으로 되어 있다. 그러나, 컴퓨터의 프로그램으로 PID 제어를 실현하려고 하는 경우에는 연속적인 양을 취급할 수 없다. 왜냐하면, 컴퓨터 데이터의 입출력은 일정시간 간격으로밖에 할 수 없기 때문이다.
    게다가 미적분 연산을 착실히 하고 있는 것에서는 연산에 요하는 능력으로 인해 고성능의 컴퓨터가 필요하게 되고 만다.
    그래서 생각된 것이 샘플링 방식(이산값)에 적합한 PID 연산 방식이다.

    우선, 샘플링 방식의 PID 제어의 기본식은 다음과 같이 표현된다.

    조작량=Kp×편차+Ki×편차의 누적값+Kd×전회 편차와의 차
                  (비례항)         (적분항)             (미분항)

    기호로 나타내면

    MVn=MVn-1+ΔMVn
    ΔMV
    n=Kp(en-en-1)+Ki en+Kd((en-en-1)-(en-1-en-2))

    MVn, MVn-1: 금회, 전회 조작량
    ΔMVn: 금회 조작량 미분
    en, en-1, en-2: 금회, 전회, 전전회의 편차

    이것을 프로그램으로 실현하기 위해서는 이번과 전회의 편차값만 측정할 수 있으면 조작량을 구할 수 있다.


7. 파라미터를 구하는 방법

    PID 제어 방식에 있어서의 과제는 각 항에 붙는 정수, Kp, Ki, Kd를 정하는 방법이다.
    이것의 최적값을 구하는 방법은 몇 가지 있지만, 어느 것이나 난해하며, 소형의 마이크로컴퓨터로 실현하기 위해서는 번거로운 것이다(tuning이라 부른다).
    그래서, 이 파라미터는 cut and try로 실제 제어한 결과에서 최적한 값을 구하고, 그 값을 설정하도록 한다.
    참고로 튜닝의 수법을 소개하면 스텝 응답법한계 감도법이 유명한 수법이다.

    또, 프로세스 제어 분야에서는 이 튜닝을 자동적으로 실행하는 Auto tuning 기능을 갖는 자동제어 유닛도 있다. 이것에는 제어 결과를 학습하고, 그 결과로부터 항상 최적한 파라미터값을 구하여 다음 제어 사이클에 반영하는 기능도 실장되어 있다.

    여기서 스텝 응답법에 있어서 파라미터를 구하는 방법을 소개한다.
    우선, 제어계의 입력에 스텝 신호를 가하고, 그 출력 결과가 아랫 그림이라고 하자(파라미터는 적당히 설정해 둔다).






    윗 그림과 같이 상승의 곡선에 접선을 긋고, 그것과 축과의 교점, 정상값의 63%에 해당하는 값으로 된 곳의 2점에서,
    L: 낭비시간 T: 시정수 K: 정상값의 3가지 값을 구한다.
    이 값으로부터, 각 파라미터는 아래 표와 같이 구할 수 있다.

제어 동작 종별

Kp의 값

Ki의 값

Kd의 값

비례 제어

0.3~0.7T/KL

0

0

PI 제어

0.35~0.6T/KL

0.3~0.6/KL

0

PID 제어

0.6~0.95T/KL

0.6~0.7/KL

0.3~0.45T/K


이 파라미터에 범위가 있지만, 이 크기에 의한 차이는 특성의 차이로 나타나며, 아랫 그림과 같이, 파라미터가 많은 경우에는 미분, 적분 효과가 빨리 효력이 나타나므로 아랫 그림의 적색선의 특성과 같이 overshoot이 크게 눈에 띈다. 파라미터가 작은 쪽의 경우는 하측 황색선의 특성과 같이 된다.
 


'Embedded System > Hardware' 카테고리의 다른 글

PID 제어기  (0) 2009.11.08
ARM920T Datasheet  (0) 2009.07.15
posted by SuperMjs
prev 1 2 3 4 5 next