공대조교형의 공학/경제 연구소

공학 수업 노트에서 시작해서 MIT tech review와 bridge water research review 까지

Robotics/Control Theory

디지털 제어 개념잡기

공대조교형 2017. 10. 6. 00:53

디지털 제어 개념잡기



0. 디지털 도메인에서 분석 필요성


  전기자동차, 자동화공장 등 전기 모터의 활용성이 늘어남에 따라서 전기를 이용하여 동력을 구동시키는 시스템이 비중이 점점 늘어나고 있다. 과거에는 회로나 유압을 통해서 제어 시스템을 구현하였다. 하지만  "제어시스템구성요소" 글에서 언급하였듯이 제어기는 플랜트에 특성을 개선하기 위하여 존재하듯이 플랜트의 특성을 반영하는데 과거에 플랜트를 간단한 선형 모델로만 분석하였던 것과는 다르게 점점 발전함에 따라서 모터의 경우에는 전류에 따라서 변하는 인덕터의 변화를 고려하거나 모터 위치에 따라서 달라지는 코깅 토크의 영향을 고려한 플랜트를 반영하는 제어기를 구현하는등 복잡한 좀 더 제어기를 통하여 성능향상을 이끌어 내었다. 


  복잡한 알고리즘을 구현하기 위해서는 연산 시간이 빠른 DSP로 구현하는것이 도움이 된다. 또한 반도체 소자의 발달에 따른 프로세서의 성능향상에 의하여 디지털로 많은 제어 알고리즘이 구현되고 있다. 여기서 디지털이란 의미는 0과 1을 이용한 데이터로 연속적이지 않고 계단형태의 discrete한 센싱된 값 혹은 지령값이 표현된다는 의미도 있지만 시간영역에서 연속된 샘플링 값을 통해서 연속된 출력값이 나오는 것이 아니라 특정 시점에 샘플링된 값을 이용하여 계산된 출력값을 특정 시간동안 출력을 하는 시스템임을 동시에 의미한다. 


  또한 이렇게 디지털로 구현된 시스템은 PWM을 이용하여 직류단 전압의 Max, min값의 비율을 조정하여 원하는 평균전압을 인가하는 방식으로 출력 전압을 제어하여 모터를 구동하는 시스템에도 적용하기 용이한데 이는 Duty가 변하는 switching 주파수와 제어 샘플링 혹은 제어 출력 변화 주파수와 동기시키실 수 있기 때문이다. 


  이렇게 1800년대 PID제어기를 비롯하여 대부분의 제어 알고리즘이 기존의 s domain(연속시간영역)에서 개발되었지만 현대에 이르러서는 DSP에서 구현된 코드와 PWM을 이용한 이산방식의 제어를 이용하게 되었다. 초기에 높은 반응성을 요하지 않는 시스템에서는 이산시간 제어를 수행한다고 하더라도 평균적으로는 제어가 잘 수행되지만 높은 제어 반응성을 요하는 시스템에서는 순간적으로 계단식으로 변하는 지령 혹은 전압의 변화가 끼치는 영향이나 제어에 필요한 값을 샘플링한 시점과 연산 후 샘플링한 결과로 인해 전압이 인가되는 시점 사이의 시간 차이 등 디지털로 구현하기 때문에 발생하는 여러 요인들에 의한 문제를 해결해야만 했다. 


  이러한 배경 속에서 제어시스템의 디지털 분석이 다음 두가지 용도로 활용되는데 하나는 제어기를 구현하기위해서 즉 머리속 생각을 출력하기 위함이고 다른 하나는 이미 구현된 제어기의 안정성 분석을 위한 즉 입력의 용도로 필요하다.  


  1) 제어기를 코드로 구현(포스팅 예정)


  앞서서 언급하였듯이 복잡한 제어 알고리즘을 이용하기 위해서는 컴퓨터의 도움이 필요하고 기존의 여러 알고리즘을 코드로 구현하여야 한다. 하지만 아직까지도 많은 제어 분야의 연구는 플랜트를 선형시스템을 가정하기 때문에 제어기 역시 선형화 하여 연속 시간 영역 위(s domain)에서  미분은 s를 나누는 형태 적분은 s를 곱하는 형태로 구현되며 극점과 영점 또한 (s+z)/(s+p)와 같은 형태로 분석되어져 있다. 단순히 PID제어기와 같은 미분꼴과 적분꼴이 선형적으로 결합되어있는 형태의 제어기는 미분은 {(현재값)-(이전값)}/(샘플링 시간)으로 적분은 새로운값 = 누적값 + 현재값 * 샘플링시간 등으로 가볍게 구현할 수 있지만 2차 low pass filter와 같이 분모가 s에 대한 1차항으로만 구성되어 있지 않은 경우에는 위와 같이 간단히 적용할 수 없기 때문에 이산영역으로 적절한 변환 뒤에야 코드로 구현할 수 있다. 따라서 디지털 제어를 어떻게 구현하는지에 대한 이론이 필요하다.



  2) 코드로 구현된 시스템의 반응성을 분석(포스팅 예정)

  

  두번째로 디지털 제어가 필요한 영역은 구현한 제어기에 대하여 분석을 할 경우이다. 구현된 제어기의 변경 자유도가 있는 변수값에 따라서 시스템의 반응성은 어떻게 달라질 것인지 안정성은 언제 깨지게 될 것인지 실험을 통해 찾는것은 한계가 있다. 따라서 시뮬레이션을 통해서 혹은 이론적인 분석을 통해서 경향성을 파악할 필요성이 있는데 앞서서 언급하였다시피 높은 대역폭 하에서의 분석은 연속시간 영역에서 분석하였던 결과와 크게 달라지게 된다. 가장 간단한 예시로 PI 전류제어만 생각해 보아도 "주파수 영역에서의 분석"글에서 언급하였다 시피 Kp : wcc*L, Ki : wcc*R로 설정하였을 경우 1차 저역필터 꼴로 시스템이 설계되어 아무리 제어 대역폭(wcc, 제어기 gain)을 높여도 시스템을 발산하지 않고 안정한 영역속에 존재한다. (극점이 항상 2,3사분면에 존재) 하지만 실제 디지털로 제어기를 구현하여 제어할 경우 시스템은 샘플링 주파수의 1/4정도로 (R, L값에 따라 달라짐) 대역폭을 증가시키게 되면 발산하게 된다. 이는 이산영역으로 구현하였기 때문에 생긴 샘플링 AD 변환시간 + 알고리즘연산시간 등을 확보하기 위해서 만든 시 지연에 의한 효과인데 연속시간 영역에서는 이 효과를 분석하는 것이 불가능하다. 


  위 두가지 (코드로 구현, 시스템을 분석)가 완벽하게 이루어 져야 높은 제어 대역폭 상황에서의 연구를 시작할 수 있는 환경이 이루어 지기 때문에 앞으로 다룰 포스팅들은 매우 중요하다.

  본 포스팅에서는 앞으로 다룰 포스팅에서 사용된 용어들을 이해하기 위한 개념을 잡는 포스팅으로서 이산시간영역의 중요한 특징  두가지(sampling과 zero order hold effect)에 대해서 먼저 다루고 z domain 으로 변환하는 두가지 discrete time domain to z domain (n to z)와 s domain to z domain에 대해서 다루고자 한다. 




1. discrete time domain

  1) sampling ( continuous time domain에서 discrete time domain으로 변환)

  2) zero order hold


2. z domain

  1) z transform ( sampling 된 discrete time domain신호를 주파수 영역(z domain)에서 표현)

  2) s domain에서 표현된 시스템 혹은 신호를 z domain으로 변환 : back ward, forward, trapezoidal, zero order hold


'Robotics > Control Theory' 카테고리의 다른 글

PID제어기  (1) 2017.12.09
제어 시스템 구성요소  (0) 2017.10.01
주파수 영역에서의 분석  (1) 2017.10.01
제어란 무엇인가  (1) 2017.07.09