[Beckhoff 기술기사] TwinCAT 3 머신러닝: 제어기술과의 원활한 통합
TwinCAT 3 머신러닝: 제어기술과의 원활한 통합
산업자동화에 부합하는 머신러닝
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMjU4/MDAxNTgyMjQ5MDExMjg2._RG5gH7YINrHMN3ZZpgU1kYHx4kxhHRwhwSiGXK2auwg.CiphTzCLfnHLbSCEHdRLPM2DBRG_5tgw04yxeUaj6kcg.PNG/1.png?type=w740)
TwinCAT 3 머신러닝 소프트웨어를 제어시스템에 통합하면 데이터 사이언스의 머신빌딩의 세계로 함께 통합하고, 기계 최적화를 위한 새로운 잠재력을 열어주는 시너지 효과를 창출한다.
<사진: Beckhoff Automation>
자동화 기술의 발전은 최근 몇 년 동안 여러 가지 흥미롭고 전망있는 혁신들을 탄생시켰는데 가장 현저하게 나타난 부분은 이미지 처리 및 상태 모니터링과 같은 다양한 전문기술의 통합이다. 이와 같은 사례는 자동화에서 최적화된 진행 상황을 보여준다. 또한 정교한 기술의 발전으로 새로운 잠재력이 거듭 거론되고 있다. TwinCAT 3 머신러닝 소프트웨어를 통해 제어시스템에 원활하게 통합된 머신러닝(ML)은 가장 큰 신뢰를 가진 기술로 뽑히고 있다.
전문가들은 머신러닝을 자동화에 통합하는 것이 장차 독일의 경쟁력을 유지하고 강화하는데 중요하다는 말에는 동의하지만(Info Box 1 참조), 실제로 애플리케이션에 적용하여 성공하기까지는 시간이 걸릴 것이라고 말한다. 한가지 이유는 필요한 데이터를 얻는 것이 도전과제가 될 수 있기 때문이다. 주로 생산환경에서 데이터를 수집하고, 학습을 목적으로 수동 데이터를 준비(라벨링이라고 알려진 훈련 데이터의 정의)하는데 있어 관련된 비용이 많이 들기 때문이다. 또한 데이터에 노이즈가 있을 수 있다. 다시 말하면 데이터가 정확하지 않다는 것이다. 또 다른 이유는 시스템 작동에 오류를 일으킬 수 있는 잘못된 예측이 발생할 수 있는데 이것은 기계의 손상내지는 완전한 고장, 심지어 생산라인에 일하는 직원들이 해를 입게 되는 것과 같은 심각한 부정적 영향을 미칠 수 있기 때문이다. 그 결과 머신러닝을 자동화 기술에 통합할 때 몇가지 요구사항이 최근에 이슈되었다.(Info Box 2 참조).
최적화, 이상 징후의 감지, 모델 예측제어 및 기타 애플리케이션에 큰 도움이 될 것이다. Beckhoff의 TwinCAT 3 Neural Networks Inference Engine, TwinCAT 3 Machine Learning
Inference Engine과 같은 두 소프트웨어 제품은 현재 자동화 전문가와 머신빌더에게 숙련된 ML 모델의 시행인 인퍼런스(Inference)를 시스템에 통합하기 위한 산업 해결책을 제공한다.
워크플로우는 데이터수집에서 시작한다.
효율적인 데이터 인프라를 구축하는 것은 학습된 모델의 훈련 프로세스와 인퍼런스가 적합한 데이터 세트에 기반하는지 여부를 확인하는데 필수적이다. 오늘날 많은 제조시스템은 이미 머신러닝에 활용할 수 있는 많은 양의 데이터를 확보했고, 이러한 시스템을 TwinCAT 3 머신러닝에 원활하게 통합하면 TensorFlow, PyTorch, MATLAB®을 포함한 다양한 프레임워크를 직접 적용할 수 있다. 이것은 데이터 사이언티스트와 머신빌더 영역 사이의 집중을 증가시켜 그 프로세스 속에서 엄청난 시너지 효과를 창출한다.
워크플로우는 완전히 또는 부분적으로 자동화된 프로세스에서 데이터를 수집하는 것으로 시작하며, 기록되고 평가된 실제 데이터는 물론 해당 애플리케이션에 따라 달라진다. 원칙적으로는 구체적이고 명확하게 묘사된 사용 사례로 시작한 다음, 사용 사례가 요구하는 데이터를 정의하는 것이 타당하다. 따라서 도메인 놀리지(domain knowledge, 특정영역지식)는 매우 중요하다.
도메인 내의 전문가로서 머신빌더는 정의된 목표값과 프로세스 데이터 사이의 경험적 그리고 물리적 관계를 이해한다. 그들은 인퍼런스 변수에 의미를 부여할 수 있다. 따라서 원하는 목표값 또는 도출 가능한 목표값이 다른 정보와 시간적 상관관계를 통해 어떻게 얻어질 수 있는지를 결정하기 위해 전문가들과 상의하는 것이 중요하다. 이것은 추가 센서나 ERP 또는 기타 시스템에서 수집한 기계적인 데이터일 수도 있고, 작업자가 텍스트로 또는 기계의 HMI를 통해 수동으로 입력한 데이터일 수도 있다. 목표값의 가용성과 품질은 다음 예에서 보는 바와 같이 지도 학습(Supervised learning)과 비지도 학습(Unsupervised learning) 상태에서 학습의 차이를 정의한다.
– 분류기를 기반으로 한 종단 테스트 : 구성요소는 센서에 의해 검사되어지고, 대표적인 구성요소 집합에 대해 수집된 측정값은 라벨(Label)을 지정해야 한다. 예를 들어 측정값은 훈련 데이터로 정의될 수 있도록 하기 위해 수동 병렬로 검토되어야 한다.
– 대체 또는 중복 모니터로서 실질적 센서 : 물리적 센서는 훈련 프로세스에서 목표값을 만들기 위하여 사용될 수 있으며, 이 센서와 센서 신호가 추정될 기계 데이터가 기계 제어기에 의해 처리되고 저장되는 경우, 입력값과 목표값은 상호간에 시간적인 동기를 이루고 있다.
– 프로세스의 최적화 : 지도 학습을 위한 목표값은 디지털트윈(Digital Twin)에서 프로세스를 모의하여 얻을 수 있으며, 모의는 관찰된 목표값의 측면에서 정확한 것을 요구한다. 모의를 기반으로 최적화된 알고리즘은 프로세스의 여러 변형을 통해 실행되고 구체적으로 최적화 될 수 있으며, 그 결과를 라벨로 사용될 수 있고, 전체 데이터 세트는 지도학습을 위해 사용될 수 있다.
– 비정상적인 행위 탐지 : 비정상적인 행위를 탐지하는 시스템을 개발할 때의 장점은 “정상적인” 기계 작동만 훈련 데이터로 사용된다는 것이며, 이와 같은 경우에는 기계의 오작동과 관련된 데이터가 필요하지 않으나 “정상적인” 기계의 작동은 도메인 전문가와 상세히 검토되어야 하며 훈련 데이터 세트의 대표자로 기록되어야 한다. 한가지 접근법은 알고리즘을 사용하여 잠재적으로 고차원적인 훈련 데이터를 처리하기 위한 1등급 지원 벡터 머신(SVM)을 훈련시키는 것이며, 이것을 준 지도학습(Semi-supervised Learning)이라고 구분한다.
- 손실된 라벨을 통한 비지도 학습 : 예를 들어 상태 모니터링 시스템 또는 종단 테스트는 알고리즘의 입력 데이터만을 사용하여 생성할 수 있으며, 예를 들면 주성분 분석 또는 k-평균 알고리즘(클러스터링 분석용)은 그러한 변화를 식별하는데 도움이 될 수 있다. 주어진 시간에 데이터의 특정 변경 의미는 도메인 전문가의 도움으로 평가될 수 있다.
데이터 유형과 평가방법 외에 사용된 도구도 워크플로우에 매우 중요하며, TwinCAT 3 Measurement 및 TwinCAT 3 connectivity 제품은 좋은 선택이 될 수 있다.
- TwinCAT 3 Scope는 2진법, CSV 및 TDMS를 포함한 다양한 형식으로 데이터를 저장할 수 있는 기능이 있고, 엔지니어링 단계에서 데이터를 수집하고 저장하는 간편하고 유연한 도구이다.
- SQL 또는 noSQL 데이터베이스가 가용할 경우 네트워크 또는 클라우드에서 TwinCAT 3 데이터베이스 서버는 사용자가 기계운용 중에 대량의 데이터를 집계할 수 있는 이상적인 도구가 된다.
- 기계가 메시지 브로커를 통해 공개 또는 개인 클라우드에 연결된 경우, TwinCAT 3 IoT 제품군은 브로커를 통해 데이터를 데이터 저장소 또는 창고에 저장하는데 사용될 수 있다.
- TwinCAT 3 Analytics Logger는 실시간 작동 및 동기화 주기 동안 기계 컨트롤러에서 대량의 데이터를 로컬파일또는 메시지 브로커를 통해 데이터 레이크 (Data Lake) 또는 데이터베이스에 편리하게 쓸 수 있는 방법을 제공한다.
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMTI5/MDAxNTgyMjQ5MDcxOTkw.6njhjdENdSzX5m5nee8PollMpe84rNZaMak0pD1xjCcg.IdPZ3VSVPzae0CGJgjc8a5gi6xIqFkb9IRu0vug35VEg.PNG/2.png?type=w740)
TwinCAT 3의 표준 모듈로서 실시간 가능한 ML 모델 인퍼런스 기능 : 추가적인 하드웨어가 필요하지 않으며, 기능은 전적으로 다른 제어 애플리케이션과 동일한 표준 플랫폼의 소프트웨어에서 구현된다.
<사진: Beckhoff Automation>
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMTgx/MDAxNTgyMjQ5MDcyMjQ1.nF9FircyRPwwKkWPOb0QpRcG8nkzf-o-fL1DCuY8r2wg.9hF_hwEwOUldzL5rvovEGB9_S98liTZ56Z58NrjpSPIg.PNG/3.png?type=w740)
Hannover Messe2019에 전시된 XTS 머신러닝은 TwinCAT 3 기계학습과 TwinCAT 3 동작제어로 시스템 전력 소비와 마모를 최소화 할 수 있는 방법을 보여 주었다.
<사진: Beckhoff Automation>
머신러닝 모델 훈련
만약에 훈련 데이터를 이용할 수 있다면, 외부 ML 프레임워크에 로딩하여 처리해야 하며, 사용자가 선택할 수 있는 적절한 ML 프레임워크는 많이 있다. 많은 부분이 Python과 오픈 소스에 기반을 두고 있으며 다른 부분들은 MATLAB®와 SAS에 기반해 있다. 그들은 저장된 데이터에 접근할 수 있는 도구상자 및 라이브러리와 함께 많은 수의 표준 기능을 제공한다.
ML 프레임워크의 작업은 데이터 준비 및적합한 ML 알고리즘 선택으로 훈련 프로세스를 시작하고, 학습 결과를 평가하는 것으로 구성된다. 이 데이터 기반 엔지니어링 단계는 입력 데이터와 목표 데이터 사이의 관계를 나타내는 훈련된 ML 모델을 생산한다. 데이터 인터페이스와 마찬가지로 TwinCAT 3에서 훈련된 ML 모델을 배치하기 위해 선택한 인터페이스는 개방되어 있으며, 산업표준인 Open Neural Network Exchange(ONNX) 형식을 지원한다.
ONNX는 서로 다른 프레임워크 간의 상호운용성이 가능하게 설계되었다. 각 ML 프레임워크는 훈련된 모델을 나타내기 위해 자체 형식을 사용하는 반면에 ONNX는 다른 프레임워크에서 모델을 공유하기 위한 상호운용성 계층을 제공한다. 프레임워크에 독립적인 전송 학습모델을 공급하고, 선택한 훈련 프레임워크에 관계없이 다양한 플랫폼에서 인퍼런스를 실행하는데 사용할 수 있다.
데이터 수입 및 모델 수출을 위한 개방형 인터페이스를 보유하는 것은 또한 부처 간 협력 과 외부 서비스 제공업체와의 협력을 촉진한다. 여기에 기술된 워크플로우 엔지니어링 과정과 정보기술에서 서로 다른 도메인들 사이에 정의된 인터페이스를 규정한다. ML 모델을 훈련시키는데 사용할 수 있는 데이터를 이용할 수 있다면 기계에서 애플리케이션을 실행하기 위해 필요한 모든 것은 모델 파일이며, 필요할 경우 암호화할 수도 있다.
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMjAg/MDAxNTgyMjQ5MTQzNTY0.-yc6hLULfSdb-FEkzvSI_Kh6Ez9uFdOfb8k5v8dFo18g.qr-rckf0OVVbHud28iJ-ccK0wROZRQf-IASak2vAE5og.PNG/4.png?type=w740)
훈련을 통해 데이터 수집으로부터 TwinCAT 3 런타임(XAR)에 훈련된 모델을 통합하는 워크플로우
<사진: Beckhoff Automation>
TwinCAT 3 런타임에 모델 배치
워크플로우에 있어서 마지막 단계는 TwinCAT 3의 ML 모델을 2단계로 전개하는 것이다.
- 내보낸 ML 모델은 보호된 2진법(.bml)으로 변환된다.
- .bml 파일은 대상 시스템(임베디드 또는 제어 캐비닛 PC)에 로드된다.
.bml 파일(선택사항 암호화 포함)으로의 변환은 이 형식에서는 훈련된 모델이 어떻게 구축되었는지 결정하는 것이 불가능하기 때문에 작성자의 지적재산권(IP)을 보호하는데 도움이 된다. 그것은 또한 외부 서비스 제공업체들이 정보를 독점하지 않고 고객에게 결과물을 보낼 수 있게 해준다.
일반 인퍼런스 모듈을 나타내는 표준 TcCOM 모듈인 새로운 TwinCAT 3 구성요소는 훈련된 ML 모델을 로드하고 실행하는데 사용되며, 또한 다음과 같은 새로운 기능을 제공한다.
- 지원 벡터기계 및 주요 구성요소 분석과 같은 고전적인 ML 알고리즘을 위한 TwinCAT 3 Machine Learning Inference Engine
- 다층 퍼셉트론(Multilayer perceptrons)과 콘볼루션 뉴럴 네트워크(convolutional neural network)과 같은 뉴럴 네트워크(Neural network)을 위한 TwinCAT 3 Neural Network Inference Engine
실시간 CPU 기반 인퍼런스
.bml 파일이 로드되면 런타임 모듈은 자기 스스로 산업용 PC의 CPU에서 ML 모델의 인퍼런스 계산을 효율적으로 실행하도록 구성한다. 이러한 모듈은 실시간 인퍼런스가 가능한 엔진으로 소프트웨어 플랫폼의 모든 공통 프로그래밍 방법을 지원하는 TwinCAT 3에 자연스럽게 통합되었다.
- PLC에서 모듈 호출
- C/C++에서 모듈 호출
- 주기적인 테스크에서 직접 호출
인퍼런스 엔진의 핵심 기능에는 모든 제어 데이터와 필드버스 장치에 대한 직접 동기식 접근, CPU 속도 수준에 기반한 확장 가능한 성능, 그리고 다른 테스크 컨텍스트에서 모듈을 호출할 수 있는 비차단 병렬화가 포함된다.
많은 기계학습 방법에는 런당 컴퓨터 시간이 결정적이며 입력 데이터에 의존하지 않기 때문에, 고정 사이클 시간에 작동하는 사이클 기반 시스템에 적합한 런타임 속성이 있다. 이는 특히 각 인퍼런스 실행이 다른 프로그램 부분으로 분기할 필요가 없는 동일한 계산 단계로 구성된 뉴럴 네트워크에 적용된다. 이와 같은 방법은 정밀 동작 제어시스템의 고주파 제어루프에 사용하기에 적합하며, 루프는 이를 지원함으로써 고전적인 동작제어 알고리즘에 기인하지만 물리적으로 모델링에 복잡한 최적화를 학습하고 구현할 수 있다.
순수하게 소프트웨어 기반인 TwinCAT 3 Neural Networks Inference Engine을 사용할 때 인퍼런스 연산은 단일 CPU 코어에서만 실행된다. 예를 들어 이와 같은 접근방식은 벡터 계산에 그래픽 카드와 같은 가속기 하드웨어를 사용할 경우 반드시 발생하는 통신지연을 예방하고, 그 대신에 TwinCAT 3 Neural Networks Inference Engine SSE, AVX 및 AVX-512와 같은 CPU-특정 단일 명령, 다중데이터(SIMD) 명령 세트를 광범위하게 사용한다. 이를 통해 최대 성능에서 단일 코어에 대해 병렬화되고 최적화된 벡터 계산을 수행할 수 있으며, 추가적으로 맞춤화된 캐싱과 효율적인 메모리 액세스 전략을 통해 SIMD가 없는 참조 구현과 비교하여 최대 30배까지 잠재적인 성능 향상을 실현할 수 있다. 또한 계산은 복수의 CPU 코어에 걸쳐 병렬화될 수 있으므로, 사용 가능한 컴퓨팅 코어의 수에 따라 대형 뉴럴 네트워크의 성능이 거의 순차적으로 확장될 수 있다.
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMjg4/MDAxNTgyMjQ5MTkxNjA3.0IEXB7jIUVKAAKQ0IChpSB2PnUvpYTRkBRJDUoDsZiAg.v-kmKTjPw9-72-AE_RV7gKctftBZeHmqidI_VDmHD3Eg.PNG/5.png?type=w740)
가상 센서와 이상징후 감지 기능을 갖춘 머신러닝 애플리케이션(여기서의 사진)도 Hannover Messe 2019에서 전시됐다.
<사진: Beckhoff Automation>
![](https://cafeptthumb-phinf.pstatic.net/MjAyMDAyMjFfMTI0/MDAxNTgyMjQ5MTkxODcy.tn5DAngyX5G_4cSFmgaT7W4Ed_XkFprUVFccqG6v6VYg.YD_KWeaFr_FwisQftNSp_9CfwJ4Xq697VfoC-19y-t0g.PNG/6.png?type=w740)
무역박람회 시연에서는 뉴럴 네트워크에 의해 제어되는 XTS(왼쪽)가 기존의 제어된 XTS(오른쪽) 보다 전력을 덜 소비하고 마모도 덜 되었다.
<사진: Beckhoff Automation>
Hannover Messe에서의 라이브 시연
Hannover Messe에서 Beckhoff는 TwinCAT 3 Motion Control과 통합된 TwinCAT 3 Neural Networks Inference Engine을 특징으로 하는 시범용을 발표하여 뉴럴 네트워크가 실시간 제어 애플리케이션에 어떻게 사용될 수 있는지를 보여주었다. 시연은 컨베이어 벨트 양쪽에 배치된 두개의 XTS 시스템으로 구성되었다. 각 XTS에 10개의 무버를 컨베이어에 표시하기 위해 연속적으로 동기화하고 1미터 거리에 걸쳐 표시와 평행하게 구동했다. 그리고 나서 무버들은 다음번 동기화된 운영을 준비하기 위해 분리되어 출발점으로 되돌아갔다.
첫 번째 XTS는 일반적으로 동작제어에 사용되는 최적화된 시간에 7단계 프로필이 제어되었다. 여행과 같은 한가로운 단계와 재동기(re-synching) 직전에 특히, 시스템은 빠른 가속과 감속으로 인하여 높은 마모와 전력 소비량을 보였다. 이 설정을 위해 특별히 훈련된 뉴럴 네트워크를 사용하여 제어되는 두 번째 XTS는 훨씬 더 효율적이라는 것이 입증되었는데 훈련된 네트워크가 PLC 또는 C++ 프로그램에서 쉽게 접근할 수 있도록 하는 특정 기능 블록으로 제어되었다. 뉴럴 네트워크는 간단한 전력 소비량 및 마모 모델에 기초한 최적화 알고리즘을 사용하여 훈련되었다.
TwinCAT 3 Nueral Networks Inference Engine은 NC와 기타 동작제어 작업을 실시간으로 처리하기 위해 뉴럴 네트워크를 사용할 수 있게 했다. 동작제어와 관련된 특정 요건으로 인해 생성된 동작 프로파일은 가속 지점까지 정확하게 이전 프로필을 따라야 했고, 최대 허용속도 또는 가속도를 초과하지 않았다. TwinCAT 3은 사용자 개입없이 이를 처리했다. 뉴럴 네트워크가 제어하는 XTS는 XTS의 더 큰 트랙섹션에 동기화에 필요한 가속도와 감속도를 분산시키기 때문에 기존의 제어시스템 보다 적은 전력소비와 마모를 보였다.
또한 Hannover Messe 2019에서 Beckhoff는 압력센서가 있는 팬과 진동 및 속도 모니터링으로 구성된 가상 센서시스템을 시연했는데 이는 팬이 생성하는 기압을 진동 및 회전 속도판독값을 기준으로 TwinCAT 3 Scope를 사용하여 정확하게 예측할 수 있음을 보여주었다. 또한 압력, 진동 및 속도 센서가 각각 장착된 동일한 유형의 팬 2개로 구성된 설정에서도 이상 징후 검출이 입증되었다. 두 팬 중 하나는 완벽하게 작동했고, 다른 하나는 한쪽 블레이드에 의도적인 손상을 입혔다. TwinCAT 3 Database Server 및 TwinCAT 3 Machine Learning Inference Engine으로 기록된 데이터를 사용하여 복잡한 모델링없이도 직접, 실시간으로 또는 C++ 프로그램에서 각 팬의 상태를 예측할 수 있었다.
머신러닝을 작동하는 방법
머신러닝은 기존 데이터를 사용하여 훈련된 비모수적(Non- Parametric) 모델에서 시작하고, 훈련 데이터는 훈련되지 않았거나 부분적으로 훈련된 모델에 입력한 다음에 원하는 결과로부터의 편차를 결정하기 위해 연산을 실행한다. 에러는 설정된 수학적 규칙에 따라 모델의 매개변수들을 변경함으로써 최소화된다. 머신러닝의 교육 과정은 모델이 가능한한 정확하게 훈련 데이터를 복제할 수 있도록 모델 매개변수가 설정되는 오류를 최소화하는 프로세스에 해당한다. 그러나 기초 모델은 훈련 데이터에 포함되지 않은 입력 데이터도 예측할 수 있다. 즉, 모델은 일반화할 수 있다. 머신러닝의 기술은 복잡하다 하지만 지나치게 크지 않은 모델을 선택하는데 있는데 이는 적은 양의 훈련 데이터만 있어도 관련 입력 데이터의 전체 범위에 걸쳐 일반화를 달성할 수 있다.
머신러닝 통합의 과제
머신러닝을 자동화에 통합하는 것에 포함되는 주요 기술적 과제는 다음과 같다.
- 데이터 과학자는 서로 다른 프레임워크에서 상호운용성이 가능하도록 개방형 인터페이스(예: 데이터캡처, 교육 및 구현)에 접근해야 한다.
- 머신러닝은 전문가 지식없이 사용할 수 있을 정도로 간단해야 하는데 다시 언급하면 솔루션은 기존 소프트웨어 인프라와 통합할 수 있어야 한다.
- 많은 머신러닝 방법은 부정확하므로 올바르게 처리되어야 하고, 적합하지 않은 솔루션은 수정하거나 폐기해야 한다. 이는 사용자에게 훈련된 알고리즘이 신뢰할 수 있음을 보장한다.
- 적용된 훈련 방법은 상당히 견고해야 하는데 즉 소량의 노이즈 데이터에도 기능을 발휘할 수 있어야 한다.
- 투명성과 입증 가능성은 많은 기업들에게 매우 중요하며, 이들의 요구사항이 복잡할수록 사용되는 알고리즘을 제대로 이해하는 것이 더 중요하다. 이 부분은 아직 연구활동이 상당히 필요하다.
실시간 기반 제어와 머신러닝을 성공적으로 통합하려면 위의 모든 요건을 충족해야 한다.
[출처] 월간 Control / 2019. 11
댓글
댓글 쓰기