1 |
1
고속제어 프로토타이핑(Rapid Controller Prototyping) 시스템에 있어서, 외부 센서로부터 측정된 센서 데이터를 수신하는 데이터 취득부; 상기 데이터 취득부로부터 전송되는 상기 센서 데이터에 근거하여 제어 연산을 수행하고, 처리 결과에 따른 제어 데이터를 생성하여 상기 데이터 취득부로 전송하며, 매트랩(Matlab) 및 시뮬링크(Simulink)가 실행되는 PC로 구성되는 데이터 처리부; 및 상기 데이터 취득부로부터 전송된 상기 제어 데이터를 표시하는 표시부를 포함하며,상기 데이터 처리부는 ENC, ADC, DI, Switch, Time 블록을 포함하는 수신(Receive) 블록 및 PWM, DAC, DO, Buzzer, LED 블록을 포함하는 송신(Send) 블록을 포함하여 구성되는 상기 시뮬링크(Simulink)의 통신 라이브러리 블록을 이용하여 상기 데이터 취득부와 통신을 행하며,상기 통신 라이브러리 블록은 상기 데이터 처리부에 의해 호출되는 콜백 함수(callback function)인 mdlInitializeSizes, mdlInitializeSampleTimes, mdlStart, mdlOutputs, mdlTerminate를 이용하여 구현되며,상기 mdlInitializeSampleTimes 함수는 각각의 상기 통신 라이브러리 블록의 샘플 시간(sample time) 정보를 설정하는 처리를 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
2 |
2
제 1항에 있어서, 상기 데이터 취득부와 상기 데이터 처리부는 USB 고속(High Speed) 통신방식으로 서로 데이터를 전송하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
3 |
3
삭제
|
4 |
4
제 1항에 있어서, 상기 데이터 취득부는, 상기 센서 데이터를 수신하고 상기 제어 데이터를 상기 표시부로 전송하기 위한 입출력부; 및 상기 입출력부를 제어하기 위한 마이크로컨트롤러를 포함하여 구성되는 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
5 |
5
제 4항에 있어서, 상기 입출력부는, 복수의 PWM 채널을 가지는 PWM부; 복수의 채널을 지원하는 DAC부; 복수의 채널을 지원하는 ADC부; 디지털 입력(digital input)을 지원하는 DI부; 디지털 출력(digital output)을 지원하는 DO부; On, Off 방식으로 정보를 출력하는 LED부; 스위치(switch) 정보를 입력받을 수 있는 스위치 입력부(Switch input); 및 증분 인코더(incremental encoder)를 처리할 수 있는 인코더부(Encoder)를 포함하여 구성되는 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
6 |
6
삭제
|
7 |
7
삭제
|
8 |
8
제 1항에 있어서, 상기 시뮬링크(Simulink)의 스코프(Scope) 블록을 이용하여, 전송되는 데이터를 실시간으로 모니터링 가능하도록 구성되고, 상기 매트랩(Matlab)의 워크스페이스(workspace)에 데이터를 저장 가능하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
9 |
9
제 8항에 있어서, 상기 시뮬링크(Simulink)의 파라미터 설정을 통하여 샘플링 주기를 설정 가능하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
10 |
10
제 9항에 있어서, 상기 데이터 처리부는, 상기 데이터 처리부로부터 상기 데이터 취득부로 전송해야 할 데이터의 종류를 순서대로 가지고 있는 테이블인 TxDataInfo table 및 상기 데이터 취득부로부터 상기 데이터 처리부로 전송해야 할 데이터의 종류를 순서대로 가지고 있는 테이블인 RxDataInfo table을 상기 데이터 취득부에 전송하여 통신 대상이 되는 데이터에 대한 정보를 시뮬레이션 루프(Simulation loop)가 실행되기 전에 상기 데이터 취득부에 통지하고, 상기 데이터 취득부는, 시뮬레이션 루프가 시작되면, 매번 타이머 인터럽트 서비스(timer interrupt service)가 시행될 때마다 상기 RxDataInfo table에 있는 정보를 이용하여 상기 센서 데이터를 일괄적으로 상기 데이터 처리부 측으로 전송하고, 상기 데이터 처리부가 제어 연산을 수행하고난 결과를 일괄적으로 전송하면, 상기 TxDataInfo table에 있는 정보를 이용하여 상기 제어 데이터를 해당하는 출력장치에 출력하도록 구성됨으로써, 복수의 통신 블록에 대하여도 일괄 송신 및 일괄 수신이 가능하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
11 |
11
삭제
|
12 |
12
제 1항에 있어서, 상기 mdlInitializeSizes 함수는, mdlCheckParameters을 호출하여 각각의 상기 통신 라이브러리 블록이 전달받은 각각의 파라미터의 적합성을 검사하고, 부적합한 경우는 오류를 발생시키며, 각각의 상기 통신 라이브러리 블록이 전달받은 파라미터인 ReceiveDataInfo 또는 SendDataInfo로부터, 수신블록(Receive block)인 경우는 몇 개의 출력 포트를 가져야 하는지, 또는, 송신블록(Send block)인 경우는 몇 개의 입력 포트를 가져야 하는지를 설정하고, 처리에 사용되는 전역변수를 0으로 초기화하며, 초기화하는 작업이 필요 없을 경우는 처음 실행되었을 때에만 변수값이 0이고 두 번째 이후의 실행에는 이전 실행에서 남아 있던 값을 사용하도록 하는 처리를 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
13 |
13
삭제
|
14 |
14
제 1항에 있어서, 각각의 상기 통신 라이브러리 블록이 모두 같은 샘플 시간을 사용하도록 설정되는 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
15 |
15
제 1항에 있어서, 상기 mdlStart 함수는, 각각의 상기 통신 라이브러리 블록에 대하여, 각각의 데이터 프레임 상에서 특정 통신 라이브러리 블록과 관련된 데이터의 순서에 해당하는 실행순서(execution order)를 나타내는 변수인 ExecOrder, 수신 데이터 프레임 상에서 특정 통신 라이브러리 블록과 관련된 데이터가 시작되는 지점을 나타내는 수신 데이터 오프셋(receive data offset)을 나타내는 변수인 RxDataOffset 및 송신 데이터 프레임 상에서 특정 통신 라이브러리 블록과 관련된 데이터가 시작되는 지점을 나타내는 송신 데이터 오프셋(send data offset)을 나타내는 변수인 TxDataOffset을 포함하는 멤버 데이터(mber data) 중 각각의 상기 통신 라이브러리 블록이 가지고 있는 멤버 데이터를 알아내어 각각 갱신하며, 갱신된 상기 멤버 데이터에 근거하여, 상기 데이터 처리부가 상기 데이터 취득부로부터 수신해야할 데이터의 종류와 순서 정보를 가지고 있는 배열(array)인 RxDataInfo 및 상기 데이터 처리부가 상기 데이터 취득부로 전송해야 하는 데이터의 종류와 순서를 가지고 있는 배열인 TxDataInfo를 각 통신 라이브러리 블록의 실행 순서에 따라 채우고, 완성된 상기 RxDataInfo 및 상기 TxDataInfo를 시뮬레이션 루프(Simulation loop)가 시작되기 전에 상기 데이터 취득부로 송신함으로써, 상기 데이터 취득부가 상기 데이터 처리부로 송신해주어야 하는 데이터의 종류와 순서를 지정하고, 상기 데이터 취득부에 상기 데이터 처리부로부터 어떤 종류의 신호가 어떤 순서로 전송되어 올 것인지를 알려주는 처리를 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
16 |
16
제 15항에 있어서, 상기 mdlStart 함수는, 특정 통신 라이브러리 블록이 하나의 모델에서 2번 이상 사용되었는지를 검사하고, 검사 결과 2번 이상 사용된 경우는 오류메시지를 출력하도록 하는 처리를 더 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
17 |
17
제 1항에 있어서, 상기 mdlOutputs 함수는, t = 0인 시점이고 실행 순서가 가장 앞서는 통신 라이브러리 블록인 경우, 함수 InitCommunication()을 호출하여 USB 통신을 위한 통신객체를 생성하고, 상기 데이터 취득부와 USB 통신을 연결하여, 상기 데이터 취득부에서 필요한 정보인 SampleTimeInfo, TxDataInfo 및 RxDataInfo를 전달하며, 실행 순서가 가장 앞서는 RCP 블록일 경우, 상기 데이터 취득부로부터 일괄적으로 센서 데이터를 수신하여 변수 RxBuffer에 채워 넣고, 이때, 일괄 수신된 데이터의 바이트(byte) 수가 실제 받기로 되어 있는 데이터의 바이트(byte) 수와 같은지를 확인하여, 다르다면 오류메시지 발생과 함께 처리를 종료하며, 통신 라이브러리 블록의 타입(type)이 수신 블록(Receive block)인 경우, 상기 RxBuffer로부터 해당 블록에서 필요한 데이터만을 추출하여 블록의 출력을 갱신하며, 통신 라이브러리 블록의 타입이 송신 블록(Send block)인 경우, 오프셋 정보와 채널 수 정보를 이용하여 변수 TxBuffer를 채워 넣고, 모든 송신 블록에 대한 TxBuffer에 데이터가 채워지게 되면, 상기 데이터 취득부로 일괄 전송하며, 실행 순서가 가장 늦은 통신 라이브러리 블록인 경우, 상기 TxBuffer에 채워진 데이터를 상기 데이터 취득부로 일괄 송신하는 처리를 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
18 |
18
제 17항에 있어서, 상기 mdlOutputs 함수의 2개 이상의 조건이 동시에 만족되면, 해당하는 동작이 모두 수행되도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
19 |
19
제 1항에 있어서, 상기 mdlTerminate 함수는, 실행 순서가 가장 늦은 통신 라이브러리 블록에서 'z'를 상기 데이터 취득부로 송신하고, 상기 데이터 취득부는, 'z'를 수신할 경우, 현재 세션(session)을 종료하고 다른 세션이 시작되는 것을 대비하여 대기 상태로 전환되며, USB 통신을 종료하기 전에 수신 종료점(Endpoint)에 남아 있던 데이터를 읽어들이고 송신 및 수신 종료점을 리셋(reset) 시키며, USB 통신을 위해 생성했던 객체(object)를 소멸시키는 처리를 수행하도록 구성된 것을 특징으로 하는 고속제어 프로토타이핑 시스템
|
20 |
20
청구항 1항, 2항, 4항, 5항, 8항, 9항, 10항, 12항, 14항 내지 19항 중 어느 한 항에 기재된 고속제어 프로토타이핑(Rapid Controller Prototyping) 시스템을 이용하여 제어 연산을 수행하는 데이터 처리방법에 있어서, 데이터 취득부에서 제어에 필요한 센서 데이터를 측정한 후 USB 통신을 통해 데이터 처리부 측으로 전송하는 단계; 상기 데이터 취득부로부터 전송된 센서 데이터를 기반으로 상기 데이터 처리부에서 제어연산을 수행하는 단계; 상기 제어연산을 수행하는 단계에서 얻어진 제어연산 결과를 상기 데이터 취득부로 전송하는 단계; 및 상기 데이터 처리부로부터 전송된 제어데이터를 출력장치를 통해 출력하는 단계를 포함하여 구성된 것을 특징으로 하는 데이터 처리방법
|