관리 메뉴

개발자비행일지

시스템 연속시간 시스템, 이산시간 시스템, 시스템의 속성 본문

▶ Ardupilot

시스템 연속시간 시스템, 이산시간 시스템, 시스템의 속성

Cyber0946 2020. 7. 24. 11:38

시스템은 연속적인 시간의 입력값과 출력값을 가지는지 아니면 간격이 존재하는 시간의 입력과 출력을 가지는지에 따라 연속시간 시스템과 이산시간 시스템으로 구분할 수 있다.

That is, continuous-time systems are systems for which both the input and the output are continuous-time signals, and discrete-time systems are those for which both the input and the output are discrete-time signals. Similarly, a digital system is a system for which both the input and the output are digital signals.
Discrete and Continuous Systems. A discrete system is one in which the state variable(s) change only at a discrete set of points in time. ... A continuous system is one in which the state variable(s) change continuously over time. E.g. the amount of water flow over a dam.

이러한 시스템은 입력과 출력의 함수와 입력과 출력을 매핑해주는 T 연산의 융합이라고 볼 수 있다. 이런 시스템은 더 크거나 전체 시스템이 연결 및 융합될 수 있는데, 이 과정에서 시스템의 하나의 서브모듈의 역할을 하기도 한다. 

드론에서도 전체 시스템이 각 기능을 가지는 서브시스템들로 구성되어 있으며, 서브시스템은 특정 신호를 입력과 출력으로 사용한다. 

-> 드론을 분석하기 위해서 시스템과 신호에 대한 이론적 배경이 필요함을 느껴 개안 학습 과정의 내용을 정리하고자 한다.

이러한 시스템은 다음과 같은 기본속성을 가진다. 

Memoryless, invertibility, causuality, stability, linearity, time-invariance

Memoryless

시스템이 Memoryless 하다는 것은 시스템의 입력 x(t)에 따른 출력 y(t)가 오로지, t 시점의 x(t)값에만 의존한다는 것이다. 즉, 해당 시간 t가 지나면 다시는 같은 y(t)를 가지지 않는다는 것

그렇기 때문에 해당 시스템은 현재의 입력을 저장하지 않는다. 

다음의 예제를 통해서 Memoryless system과 Memory system을 구분해 보자. 

먼저 위의 식은 t시기의 입력값에 따라서 출력이 변하기 때문에 memoryless system이고 아래의 식은 y[n]이 x[n]과 이전의 x[n-2] 모두에 영향을 받기 때문에 memory system이다. 

그렇다면 우리가 볼 수 있는 시스템중에 어떤 것들이 기억 시스템인지 알아보자. 예를 들어 아래와 같은 누산기(accumulator)나 합산기(summer)가 대표적인 기억이 있는 시스템이다.

이는 이산시간에서 아래와 같이 표현가능하다. y[n]은 현재 까지의 x[n]의 합이다.

 

 

이러한 시스템의 경우 주어진 시간 n0에서의 출력 y[n0]가 오로지 같은 시간의 입력 x[n0]에만 의존하지 않고 n0 이전의 모든 시간에서의 입력에 모두 의존하게 된다. 

또다른 기억이 있는 시스템의 예로 y[n]=x[n-1]와 같은 딜레이(delay) 시스템이 있다. 또한 연속시간에서의 기억이 있는 시스템으로 축전기가 있다.

예를 들어, 축전기 C에 흐르는 전류를 입력 x(t)라고 하고, 축전기 C에 걸리는 전압을 출력 y(t)라고 하면 y(t)=Q(t)/C이므로 아래와 같이 되어 무기억시스템이 됨을 알 수 있습니다. (여기서 Q(t)는 축전기에 쌓이는 전하량)

 

 

그렇다면 왜 현재 출력이 현재 입력에만 의존하지 않는 시스템을 기억이 있는 시스템이라고 부를까?

왜냐하면 현재 출력이 현재 입력에만 의존하지 않는 시스템의 실제 메커니즘 속에 메모리에 정보를 저장하고 유지하고 있기 때문이다.

예를 들어 아까전에 예로 들었던 딜레이 시스템의 경우 현재 출력이 바로 그전의 입력이므로 그전의 입력을 현재까지 메모리에 저장하고 유지하고 있어야합니다. 즉, 메모리가 있는 시스템, 기억이 있는 시스템이죠.

또한 기억이 있는 시스템이었던 누산기 역시 마찬가지입니다.

현재의 출력이 현재까지의 모든 입력들의 이동합이므로 이는 다시 말해서 아래와 같이 표현할 수 있습니다.

즉, 누산기는 이전의 출력 y[n-1]을 메모리에 저장하여 현재의 입력 x[n]과 더해져 현재의 출력 y[n]을 만들어냅니다. 그리고 이전의 출력을 메모리에 저장하는 이유는 바로 이전의 출력이 이전까지의 모든 입력들의 이동합이 되기 때문이고요.

이산시간에서는 대표적으로 컴퓨터와 디지털 마이크로프로세서와 같이 레지스터에 정보를 저장하는 시스템들이 바로 기억이 있는 시스템이다. 이들은 시스템의 메커니즘 속에는 메모리에 정보를 저장하고 유지하는 것이 들어가 있기에 ㄱ;악시스템이다.

Invertibility

시스템 입력 x(t)와 출력 y(t)가 있을 때, y(t)를 입력으로 하고 출력 x(t)를 만들어 주는 시스템이 있을 때, 시스템이 가역성을 가진다고 한다. 

쉽게 생각하려면 역함수를 생각하면 된다. 역함수가 존재하려면 어떤 함수여야 될까? 역함수가 존재하기 위해선 먼저 일대일함수여야한다. 일대일함수란 입력값이 다르면 출력값이 반드시 달라지는 함수를 의미합니다. 그 함수가 일대일함수여야지만 바로 그 함수의 역함수가 존재합니다. 시스템도 마찬가지입니다. 입력이 다르면 반드시 다른 출력이 나오는 시스템이라면 이러한 시스템을 가역적(invertible)이라고 합니다. 그리고 그러한 가역적 시스템은 위의 그림처럼 반드시 역시스템(inverse system)을 가지고 있다.

참고로 가역적 시스템과 그 시스템의 역시스템은 서로 순서를 바꾸어서 직렬 상호연결을 할지라도 반드시 전체시스템은 항등시스템이 됩니다. (마치 f의 역함수가 g일 때 f(g(x))=x이기도 하지만 g(f(x))=x이기도 하듯이 말입니다. 직관적인 증명은 그닥 어렵지 않을 겁니다.)

그리고 역시스템을 가지고 있는 시스템은 반드시 가역적인 시스템이다.

우리가 배웠던 누산기는 기억이 있는 시스템이면서 동시에 가역적인 시스템이다.

왜냐하면 누산기의 현재 출력은 현재까지의 모든 입력의 이동합이기 때문에 현재 출력과 그 이전 출력의 차는 현재 입력이 된다. 고로 x[n]→y[n]이 누산기라면 w[n]=y[n]-y[n-1]가 해당 누산기의 역시스템이 됩니다. 따라서 누산기는 가역적인 시스템이다.

그렇다면 비가역적인 시스템으로는 어떤 것들이 있을까? 가장 간단한 시스템으로는 모든 입력에 대해서 항상 출력이 0인 y[n]=0인 시스템이 있다. 이 시스템은 임의의 서로 다른 두 입력을 넣어도 같은 출력 0이 나오므로 비가역적이다. 또한 y(t)=(x(t))^2 역시 비가역적인 시스템이다.

왜냐하면 서로 다른 두 입력 x(t), -x(t)에 대해서 항상 같은 출력 y(t)이 나오기 때문이다.

이러한 가역성이라는 개념은 디지털화 과정에서 많이 사용된다. 아날로그에서 -> 디지털 -> 아날로그 가 되어야 되기 때문이다. 이를 위해 필요한 시스템이 통신의 부호화 시스템이다. 여기서 부호화란 우리가 보내고자 하는 신호를 입력받았을 때 보안을 위해 혹은 전송과정에서 생기는 에러를 감지하고 교정하기 위해 암호화하는 것을 말한다. 이러한 부호화에서 가장 중요한 것은 무손실이며, 이게 가능할 때 가역성을 가지는 부호화가 된다. 

'▶ Ardupilot' 카테고리의 다른 글

C++ 초기화 리스트  (0) 2020.09.03
Back Ground For Ardupilot, Mavlink  (0) 2020.08.01
칼만이득  (0) 2020.07.15
칼만필터와 드론의 자세제어  (0) 2020.07.09
드론 - 센서 샘플링 이론, 나이퀴스트 이론  (0) 2020.07.09