Arkadiy Turevskiy, Brian McKay, Doug Eastman, Paul Lambrechts / 매스웍스
PID 컨트롤러는 유비쿼터스의 성격을 띤다. 이를 설계하고 조정하는 것은 이론상으로는 단순해 보일지 모르지만 실제로는 까다롭고 시간이 많이 걸릴 수 있다. 흔한 PID 컨트롤러 튜닝 방법은 컨트롤러로 플랜트를 제어 중일 때 수동으로 컨트롤러 게인을 조정하는 것이다. 이 방법은 플랜트 하드웨어에 대한 액세스가 필요하여 시간이 많이 걸리는 방법이며, 선택한 게인 값으로 인해 플랜트 동작이 불안해지면 플랜트가 손상될 수 있다. 이 글에서는 모델 기반 설계를 사용하여 PLC, PAC 및 마이크로프로세서에서 PID 컨트롤러를 체계적으로 설계, 테스트 및 구현하여 개발 과정을 개선하는 방법을 보여준다.
PID 컨트롤러 모델 기반 설계
PID(Proportional-integral-derivative) 컨트롤러는 유비쿼터스의 성격을 띤다. 이를 설계하고 조정하는 것은 이론상으로는 단순해 보일지 모르지만 실제로는 까다롭고 시간이 많이 걸릴 수 있다.
흔한 PID 컨트롤러 튜닝 방법은 컨트롤러로 플랜트를 제어 중일 때 수동으로 컨트롤러 게인을 조정하는 것이다. 이 방법은 플랜트 하드웨어에 대한 액세스가 필요하여 시간이 많이 걸리는 방법이며, 선택한 게인 값으로 인해 플랜트 동작이 불안해지면 플랜트가 손상될 수 있다.
우리는 모델 기반 설계를 통해 블록 다이어그램 환경을 사용하여 플랜트 및 컨트롤러의 시스템 모델을 제작했다. 이러한 모델은 시뮬레이션이 가능하므로 구현 및 배포에 앞서 빠르게 컨트롤러 설계를 반복하고 조정할 수 있다.
플랜트가 아닌 시뮬레이션을 통해 많은 테스트를 할 수 있기 때문에 플랜트 하드웨어를 액세스할 필요성이 줄어든다. 또한 시뮬레이션을 통한 조기 검증으로 컨트롤러가 실제 플랜트에 배포되었을 때 예상대로 작동되도록 할 수 있다.
PID 컨트롤러의 모델 기반 설계에는 다음의 4가지 단계가 있다. 디지털 모션 컨트롤 시스템을 예로 사용하여 PID 컨트롤러의 신속한 설계 및 프로토타입화에 모델 기반 설계를 적용하는 방법을 설명한다.
· 플랜트 모델 생성
·PID 컨트롤러 설계
·실시간으로 컨트롤러 테스팅
·설계 구현
디지털 모션 컨트롤 시스템
(그림 1)은 제어하고자 하는 플랜트 또는 물리 시스템을 보여준다.
플랜트는 DC 모터를 추진하는 전력 증폭기와 모터 축 및 부하의 위치 측정을 위한 2개의 회전 광학 인코더로 이루어진다. 모터는 작은 플렉서블한 축을 통해 부하에 연결되어 여러 컨트롤 시스템의 액추에이터와 부하 사이에서 찾을 수 있는 콤플라이언스(compliance)에 접근한다. 컨트롤 시스템은 부하가 명령 부하 각도와 측정 부하 각도 사이의 오차를 측정하여 지정된 궤도를 따르도록 만든다. 그런 다음 PID 컨트롤러를 사용하여 모터에 전압 요청을 보낸다.
본 설계는 현재의 최대 속도 150rad/sec 및 가속 2000rad/sec^2을 새로운 목표 속도 및 가속인 250rad/sec 및 5000rad/sec^2으로 각각 시스템 성능을 개선하기 위한 것이다. 위치 정확도를 떨어뜨리지 않고 이러한 성능 향상을 달성하고자 한다. 구체적으로, 명령 부하 각도와 측정 부하 각도 사이의 오차가 1도 미만이어야 한다. 기존의 컨트롤러 설계는 (그림 2)에서와 같이 새로운 성능 사양을 충족하지 못한다.
실제 플랜트 하드웨어에서 수동으로 PID 게인을 조정하는 대신 모델 기반 설계를 사용하여 컨트롤러를 개발, 테스트 및 구현할 수 있다.
플랜트 모델 생성
플랜트 모델 생성에는 두 가지 기본 접근법이 있다. 바로 데이터 중심 모델링 및 수학적인 모델링이다.
데이터 중심 모델링을 통해 측정한 입출력 테스트 데이터에 적합한 플랜트 모델을 만들 수 있다. 데이터 수집 중 컨트롤러를 조작하여 플랜트 운영 방해를 최소화하고자 한다. 입출력 데이터를 수집하기 위해 입력 신호로서 무작위의 화이트 노이즈를 DC 모터가 받는 전압에 추가한다. 출력 신호는 컨트롤러가 DC 모터로 명령하는 전체 전압이다. 이 입출력 데이터를 수집한 후 폐루프 시스템의 주파수 응답을 계산할 수 있다.
현재의 컨트롤러 설계(개선하려는 대상)에서 정확한 게인을 알고 있기 때문에 플랜트의 주파수 응답을 얻을 수 있다. 마지막으로 시간 도메인에서 컨트롤러를 시뮬레이션하려면 플랜트의 주파수 응답을 사용하여 시스템 아이덴티피케이션(Identification)을 사용한 플랜트 전달 함수를 예측한다.
수학적인 모델링으로는 블록 다이어그램 모델링을 위하여 게인 블록, Sum 블록 및 Integrator 블록등과 같은 기본 블록을 연결함으로써 기본 동적 방정식을 만들 수 있다.
기계 및 전기 시스템을 모델링할 때 종종 관성, 강도, 댐핑, 저항, 인덕션과 같은 ‘물리’ 요소를 사용하고 이들을 시스템의 기계 다이어그램 또는 전기 회로를 그리듯이 연결하여 플랜트 모델을 만드는 것이 수월할 수 있다. 이와 같은 수학적인 모델링 기술의 변형은 물리적 모델링이라 하며 플랜트 역학의 기본 방정식을 유도할 필요 없이 플랜트 모델 생성을 가능하게 한다.
이러한 두 가지 분리된 모델링 접근법(데이터 중심 및 수학적 방법)을 섞는 것이 유리할 때도 있다. 이를 위해서 실제 시스템에서 측정한 입출력 데이터를 사용하여 물리적 모델의 매개변수를 조정한다(그림 5).
매개변수(모터 및 부하 관성, 강도, 댐핑)는 수치 최적화 기술을 통해 조정된다. 측정한 입력을 모델을 통해 재생하고 모델 출력을 실제 시스템에서 측정한 출력과 비교한다. 보정 모델의 출력과 측정 출력 사이에서 가능한 최적의 조합을 찾을 때까지 모델 매개변수 조정을 반복한다. 이러한 반복 조정은 최적화 기술을 통해 완전히 자동화된다.
PID 컨트롤러 설계
플랜트 모델을 이용할 수 있게 되면 PID 설계 및 튜닝이 쉽다. 플랜트의 블록 다이어그램 모델에 PID 컨트롤러 블록을 추가하여 폐루프 시스템 모델을 제작한다. PID 컨트롤러 블록은 비례게인, 적분게인, 미분게인과 같은 매개변수로 이루어지며 원하는 시스템 성능을 위해서는 이들을 조정해야 한다.
이러한 게인을 수동으로 조정하지 않고 (그림 6)의 자동 PID 튜닝 방법을 사용하여 자동으로 플랜트 모델의 PID 게인을 계산한다. 컨트롤러를 가속하려면 빠른 응답 시간을 위해 대화형 슬라이더를 사용한다.
컨트롤러 속도 향상을 시도할 때 시스템이 불안정해지는 것을 발견했으며, 이때 주파수 도메인에서 시스템을 더 자세히 분석하면 불안전한 동작을 일으키는 공진 최대치가 드러난다.
이러한 불안정성은 모션 컨트롤 시스템에서 잘 알려진 문제이며 공진을 상쇄하는 노치 필터 사용으로 쉽게 해결할 수 있다. 노치 필터를 공진 최대치 위에 대화식으로 배치할 수 있는 대화형 제어 설계 도구를 사용하여 노치 필터를 추가할 수 있다. 이렇게 하면 (그림 8)에서와 같이 시스템을 안정시키고 컨트롤러, 속도를 높일 수 있다.
이제 데스크톱에서 폐루프 시스템의 비선형 시뮬레이션을 실행하여 설계(다시 튜닝한 PID 컨트롤러와 노치 필터)를 테스트할 수 있다. 이러한 비선형 모델의 경우 모터 내에 포화 효과가 포함된다. (그림 9)와 같이 새로운 목표 시스템 성능에 대응하는 참조 속도로 시뮬레이션을 실행하면 새로운 설계가 사양을 충족하는지 알 수 있다.
시뮬레이션 사용으로 컨트롤 시스템의 문제를 알 수 있다. 이 경우 PID 게인을 올리는 것은 성능 사양을 충족하는 데 충분하지 않다. 노치 필터를 사용하여 공진 최대치를 상쇄하며, 자동 PID 튜닝은 안정적인 컨트롤러 게인을 빠르게 찾고 설계를 파인 튜닝(fine-tune)하여 원하는 성능 목표를 충족할 수 있게 한다. 실제 시스템의 PID 컨트롤러 튜닝을 시도했다면 불안정한 동작을 일으켜 시스템을 손상시킬 수도 있었을 것이다.
실시간으로 컨트롤러 테스팅
데스크톱 시뮬레이션으로 컨트롤러 설계를 검증한 후 다음 단계에서는 실시간으로 컨트롤러를 테스트한다. 우선 (그림 10)과 같이 IO 보드가 있는 실시간 타깃 컴퓨터를 포함하는 실시간 테스팅 플랫폼을 설정해야 한다. 이러한 IO 보드는 일반적으로 시스템(또는 프로토타입 시스템)의 실제 센서 및 액추에이터에 연결된다.
이제 컨트롤러 모델을 재사용하고 자동으로 PID 컨트롤러와 노치 필터를 위한 C 코드를 생성한 후 해당 C 코드를 실시간 타깃 컴퓨터로 다운로드한다. 타깃 컴퓨터에서 컨트롤러 코드를 실시간으로 실행하고 플랜트 센서와 액추에이터의 입력 및 출력을 통해 플랜트 동작을 직접 제어할 수 있다.
실시간 테스팅은PLC(Programmable Logic Controller) 또는 PAC(Programmable Automation Controllers)와 같은 양산 하드웨어에서 컨트롤러를 구현하기에 앞서 전체 시스템이 실제 입력 및 출력의 실제적인 조건에서 정상 작동하는지 확인할 수 있게 한다. 이를 RCP(Rapid Control Prototyping)라고 한다.
또한 실시간 컨트롤러 성능이 데스크톱 시뮬레이션에서 관찰한 것과 계속 일치하는지 확인할 수도 있다. 일치하지 않는 경우에도 아직 개발 과정 초기 단계에 있으므로, 시뮬레이션 모델에서 문제를 쉽고 빠르게 진단 및 해결하고 컨트롤러가 실시간으로 바르게 동작하도록 검증할 수 있다.
설계 구현
마지막 단계는 컨트롤러를 대상 PLC, PAC 또는 마이크로프로세서에 배치하는 것이다.
컨트롤러 모델에서 IEC 61131 구조화 텍스트를 자동으로 생성하여 이를 수행한다. 구조화 텍스트는 PLCopen XML과 기타 널리 사용되는 IDE(통합 개발 환경) 지원의 파일 형식으로 생성된다. 결과적으로 수많은 PLC 및 PAC 장치에 대해 컨트롤러를 컴파일링하고 배포할 수 있다. 컨트롤러의 동작 대상이 마이크로 컨트롤러인 경우 대신 C 코드를 자동으로 생성할 수 있다.
결론
이 문서에서는 디지털 모션 컨트롤 시스템을 위한 컨트롤러 개발 방법에 대해 설명한다. 플랜트 모델링, 폐루프 시뮬레이션 및 자동 PID 튜닝으로 데스크톱 시뮬레이션에서 PID 컨트롤러를 튜닝하고 테스트할 수 있다.
시뮬레이션 모델은 시스템의 공진 현상을 파악하고 이러한 문제 해결을 위한 노치 필터의 개발 및 테스트를 가능하게 한다. 실시간 테스팅으로 제어 설계가 데스크톱 시뮬레이션 결과와 설계 사양을 충족하는지 확인할 수 있다.
자동 코드 생성을 통한 구현은 PLC 또는 마이크로프로세서에서 빠르게 설계를 구현할 수 있음을 의미한다. 마지막으로, 모델 기반 설계의 사용으로 플랜트 하드웨어를 손상시키거나 운영을 방해하는 일 없이 설계를 개발, 테스트하고 프로토타입화할 수 있다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>