KR20230025921A - 서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단 - Google Patents

서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단 Download PDF

Info

Publication number
KR20230025921A
KR20230025921A KR1020237003094A KR20237003094A KR20230025921A KR 20230025921 A KR20230025921 A KR 20230025921A KR 1020237003094 A KR1020237003094 A KR 1020237003094A KR 20237003094 A KR20237003094 A KR 20237003094A KR 20230025921 A KR20230025921 A KR 20230025921A
Authority
KR
South Korea
Prior art keywords
fingerprint
motor
sum
instantaneous
bode plot
Prior art date
Application number
KR1020237003094A
Other languages
English (en)
Other versions
KR102599476B1 (ko
Inventor
아담 크리스토퍼 크랜머
Original Assignee
어플라이드 머티어리얼스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어플라이드 머티어리얼스, 인코포레이티드 filed Critical 어플라이드 머티어리얼스, 인코포레이티드
Publication of KR20230025921A publication Critical patent/KR20230025921A/ko
Application granted granted Critical
Publication of KR102599476B1 publication Critical patent/KR102599476B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2836Fault-finding or characterising
    • G01R31/2837Characterising or performance testing, e.g. of frequency response
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D19/00Control of mechanical oscillations, e.g. of amplitude, of frequency, of phase
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31368MAP manufacturing automation protocol
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36176Edit servo control parameters
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37605Accuracy, repeatability of machine, robot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39412Diagnostic of robot, estimation of parameters
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40213Record history, log of instructions sent from task planner to path planner

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulator (AREA)
  • Control Of Electric Motors In General (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

서버는 링키지를 구동하는 모터를 제어하는 증폭기에 토크 커맨드를 공급하고; 모터 및 링키지의 주파수 응답을 테스트할 교번 신호 파를 토크 커맨드에 포함시키고; 증폭기로부터, 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 각각의 시간 스텝에서 모터의 순간적 토크 값 및 링키지의 순간적인 기계적 파라미터 값을 수신하고; 이러한 값들 둘 모두의 합계를 저장하고; 교번 신호 파의 제1 주파수에 대해, 순간적인 기계적 파라미터 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하고; 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 모터 및 링키지의 진단을 수행하는 데 사용되는 핑거프린트를 생성하는 프로세서를 포함한다.

Description

서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단
[0001] 본 개시내용의 실시예들은 서보 제어 메커니즘(servo controlled mechanism)들을 특성화하기 위한 주파수 응답 진단에 관한 것이다.
[0002] 서보 제어 메커니즘들은 보통 제조 산업들에서, 이를테면 제조 자동화에 채용되는 로봇 도구들에서 사용된다. 일부 경우에, 이러한 제조는 로봇 도구들이 반도체 기판들을 탈기(또는 세정), 증착 및 에칭 프로세스들의 단계에서 단계로 이동시키는 로봇 링키지(robot linkage)들에 부착된 모터들을 포함하는 반도체 디바이스들의 다단계 처리이다. 예를 들어, 로봇 링키지들은 공장 인터페이스 및 이송 챔버 등 내에서 기판 이송에 사용되는 로봇의 암들 및 엔드 이펙터들일 수 있다. 로봇 링키지들은 또한 모터와 암 또는 다른 로봇 링키지 사이에서 토크의 전달을 용이하게 하는 하나 이상의 풀리 벨트를 포함할 수 있다.
[0003] 모터에서, 모터에 의해 구동되는 로봇 링키지에서, 또는 모터와 로봇 링키지 간의 구동력을 가능하게 하는 풀리 벨트에서를 막론하고, 이러한 서보 제어 메커니즘들에서는 결함들(또는 오류들)이 발생한다. 통상적으로, 실제 결함이 발생하거나 또는 (예를 들어, 오류를 통해) 의심되는 결함이 검출될 때, 숙련된 엔지니어는 모터에 대한 액추에이터로서 역할을 하는 증폭기에서 실행되는 소프트웨어에 직접 연결하고 사용하도록 요구된다. 이러한 직접 연결은, 예를 들어 보통 범용 직렬 버스(Universal Serial Bus)(USB)(또는 다른 직접) 연결을 통한 컴퓨팅 디바이스의 유선 연결을 통해 이루어진다. 엔지니어는 컴퓨팅 디바이스를 통해 로봇 도구(또는 다른 서보 제어 메커니즘)의 진단을 실행하여 결함 또는 오류의 원인을 진단할 수 있다. 이 방법을 통해 한 번에 단일 모터만이 테스트될 수 있다. 추가로, 풀리 벨트들의 장력들은 통상적으로 풀리 벨트의 직접적인 물리적 측정을 통해 검증되기에, 모터 스택 및 로봇 연결 링키지들의 분해를 필요로 한다.
[0004] 풀리 벨트(들)의 직접적인 물리적 측정뿐만 아니라, 증폭기 소프트웨어에 직접 연결하고 사용해야 하는 요구 사항 때문에, 테스트를 수행할 고객 제조 시설들에 대한 액세스가 전형적으로 금지되므로, 진단을 위해 전체 로봇 도구(또는 그 일부)는 로봇 도구 제조업체로 배송된다. 이것은 반도체 처리와 같은 자동화된 제조에 상당한 가동 중지 시간(downtime)과 중단을 초래한다. 이러한 가동 중지 시간의 결과에는 생산의 비용들 및/또는 결함이 있는 장비가 진단되어 수리되는 동안 사용될 수 있는 중복 장비의 비용들이 포함된다.
[0005] 본 명세서에 설명된 실시예들 중 일부는 메모리 및 메모리에 결합된 프로세서를 포함하는 모션 제어 서버를 다룬다. 프로세서는 모터를 제어하는 증폭기에 (예를 들어, 명령어들의 실행을 통해) 토크 커맨드를 공급하도록 적응될 수 있으며, 여기서 모터는 로봇 링키지를 구동한다. 프로세서는 모터 및 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 토크 커맨드에 더 포함시킬 수 있다. 프로세서는 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 모터의 순간적 토크 값 및 로봇 링키지의 순간적인 기계적 파라미터 값을 증폭기로부터 추가로 수신할 수 있다. 프로세서는 순간적 토크 값들의 합계 및 순간적인 기계적 파라미터 값들의 합계를 메모리에 추가로 저장할 수 있다. 프로세서는 교번 신호 파의 제1 주파수에 대해, 순간적인 기계적 파라미터 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 추가로 결정할 수 있다. 프로세서는 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑커프린트(bode plot fingerprint)를 추가로 생성할 수 있으며, 보드 플롯 핑거프린트는 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다.
[0006] 관련 실시예들에서, 본 명세서에서는 서보 제어 메커니즘을 진단하기 위한 방법이 설명된다. 방법은 모션 컨트롤러에 의해, 모터를 제어하는 3중 루프 증폭기(triple-loop amplifier)에 토크 커맨드를 공급하는 단계를 포함할 수 있으며, 여기서 모터는 로봇 링키지를 구동한다. 방법은 모션 컨트롤러에 의해 토크 커맨드에, 모터 및 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 추가하는 (포함시키는) 단계를 더 포함할 수 있다. 방법은 모션 컨트롤러에 의해, 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 모터의 순간적 토크 값 및 로봇 링키지의 순간적인 속도 값을 3중 루프 증폭기로부터 수신하는 단계를 더 포함할 수 있다. 방법은 모션 컨트롤러에 의해 메모리에, 순간적 토크 값들의 합계 및 순간적 속도 값들의 합계를 저장하는 단계를 더 포함할 수 있다. 방법은 모션 컨트롤러에 의해 교번 신호 파의 제1 주파수에 대해, 순간적 속도 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하는 단계를 더 포함할 수 있다. 방법은 모션 컨트롤러에 의해, 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑커프린트를 생성하는 단계를 더 포함할 수 있으며, 보드 플롯 핑거프린트는 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다.
[0007] 모션 컨트롤러의 프로세싱 디바이스에 의해 실행될 때, 프로세싱 디바이스로 하여금 복수의 동작들을 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체에 대한 추가 실시예에서, 복수의 동작들은 모터를 제어하는 증폭기에 토크 커맨드를 공급하는 것을 포함할 수 있으며, 여기서 모터는 로봇 링키지를 구동한다. 복수의 동작들은 모터 및 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 토크 커맨드에 추가하는 (또는 포함시키는) 것을 더 포함할 수 있다. 복수의 동작들은 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 모터의 순간적 토크 값 및 로봇 링키지의 순간적 포지션 값을 증폭기로부터 수신하는 것을 더 포함할 수 있다. 복수의 동작들은 순간적 토크 값들의 합계 및 순간적 포지션 값들의 합계를 메모리에 저장하는 것을 더 포함할 수 있다. 복수의 동작들은 일정 시간 기간에 걸친 순간적 포지션 값들에 기초하여, 로봇 링키지의 속도 값들의 합계를 계산하는 것을 더 포함할 수 있다. 복수의 동작들은 교번 신호 파의 제1 주파수에 대해, 속도 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하는 것을 더 포함할 수 있다. 복수의 동작들은 모션 컨트롤러에 의해, 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑커프린트를 생성하는 것을 더 포함할 수 있으며, 보드 플롯 핑거프린트는 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다.
[0008] 다수의 다른 특징들이 본 개시내용의 이들 및 다른 실시예들에 따라 제공된다. 본 개시내용의 다른 특징들 및 실시예들은 다음의 상세한 설명, 특허 청구의 범위 및 첨부 도면들로부터 보다 완전하게 명백해질 것이다.
[0009] 본 개시내용은 유사한 참조 번호들이 유사한 요소들을 표시하는 첨부 도면의 도면들에서 제한이 아닌 예로서 예시된다. 본 개시내용에서 "하나의" 또는 "일" 실시예로 상이하게 언급하는 것은 반드시 동일한 실시예에 대한 것이 아니며 이러한 언급들은 적어도 하나를 의미한다는 것을 유의해야 한다.
[0010] 도 1a는 다양한 실시예들에 따른, 대응하는 모터들 및 로봇 링키지들을 작동시키는 역할을 하는 다수의 증폭기들에 결합된 모션 컨트롤러를 포함하는 제어 시스템의 블록도이다.
[0011] 도 1b는 실시예에 따른, 모터 및 로봇 링키지를 작동시키는 예시적인 3중 루프 증폭기를 예시하는, 도 1a의 제어 시스템의 보다 상세한 블록도이다.
[0012] 도 2a는 다양한 실시예들에 따른, 주파수 응답 진단을 수행하여 서보 제어 메커니즘들을 특성화하기 위한 방법의 흐름도이다.
[0013] 도 2b는 실시예에 따른, 주파수 응답 진단에 사용 가능한 크기 및 위상 시프트 데이터의 합계의 생성을 위한 방법의 흐름도이다.
[0014] 도 2c는 실시예에 따른, 주파수 응답 진단에 사용 가능한 두 개의 모터들 및 루트 링키지로부터 크기 및 위상 시프트 데이터의 합계의 생성을 위한 방법의 흐름도이다.
[0015] 도 3은 실시예에 따른, 로봇 링키지의 불량 관성(bad inertia)을 검출하는 보드 플롯 핑거프린트 비교의 방법의 흐름도이다.
[0016] 도 4는 실시예에 따른, 로봇 링키지의 불량 관성을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다.
[0017] 도 5는 실시예에 따른, 잘못된 벨트 장력(incorrect belt tension)을 검출하기 위한 보드 플롯 핑거프린트 비교의 방법의 흐름도이다.
[0018] 도 6은 실시예에 따른, 잘못된 벨트 장력을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다.
[0019] 도 7은 실시예에 따른, 폐루프 불안정성(closed loop instability)을 검출하는 보드 플롯 핑거프린트 비교의 방법의 흐름도이다.
[0020] 도 8은 실시예에 따른, 폐루프 불안정성을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다.
[0021] 본 명세서에 설명된 실시예들은 이를테면 모터 및 모터에 의해 구동되는 로봇 링키지(들)를 포함하는 로봇 도구들에서 발견되는 서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단을 수행하는 데 사용하기 위한 시스템들 및 방법들에 관한 것이다. 예를 들어, 힘, 변형, 압축, 마찰, 공진, 포지션, 속도 등을 비롯한 로봇 링키지의 다수의 기계적 파라미터들은, 예를 들어 모터가 구동되는 주파수에 따라 변한다. 추가로, 주파수 응답 분석(frequency response analysis)(FRA)이라고도 하는 주파수 응답 진단은 자연적인 공진들 및 베어링 마찰 레벨들의 영향들을 감지하는 것 외에도, 로봇 링키지들의 컴포넌트들에 힘을 전해주는 모터 스택 상에서 잘못된 풀리 벨트들의 장력을 성공적으로 검출할 수 있다. 또한 FRA는 모터 스택, 풀리 벨트들 및 로봇 링키지들을 포함하는 전체 제어 시스템의 로봇 링키지들의 잘못된 관성 또는 폐루프 불안정성을 진단하는 데 사용될 수 있다.
[0022] 따라서, 서보 제어 메커니즘들에서의 결함들 또는 오류들을 진단하기 위한 통상의 방법들에서 위에서 언급한 결점들을 해결하기 위해, 본 개시내용은 주파수 응답 진단 데이터 수집 및 분석, 예를 들어 FRA를 수행하는 모션 컨트롤러 상에서 명령어들을 실행하는 실시예들을 설명한다. 모션 컨트롤러는 매일 제조 시설에서 모터 스택 및 로봇 링키지들의 모션 제어를 수행하는 (모션 제어 서버와 같은) 컴퓨팅 디바이스일 수 있다. 따라서, 모터 스택 및 결합된 로봇 링키지들은 고장난 부품의 상세한 주파수 응답 진단을 수행하기 위해 분해하거나 배송될 필요가 없으며, 이에 따라 제조 프로세스들의 가동 중지 시간을 회피할 수 있다.
[0023] 다양한 실시예들에서, 명령어들의 실행은 모션 컨트롤러가 모터를 작동시키는 증폭기로 전송되는 피드포워드 토크 커맨드에 (사인파 또는 코사인파와 같은) 교번 신호 파를 삽입하게 한다. 명령어들은 또한 모션 컨트롤러가 모터의 토크 및 로봇 링키지의 기계적 파라미터들에 대한 순간적 값들을 수신하고 각각의 주파수에 대한 이러한 순간적 값들의 합계를 저장하게 한다. 모션 컨트롤러는 교번 신호 파의 각각의 주파수에 대해, 순간적인 기계적 파라미터 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정한다. 그런 다음 모션 컨트롤러는 예를 들어, 사인 스윕 또는 코사인 스윕을 삽입함으로써 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 (보드 플롯 핑거프린트와 같은) 핑거프린트를 생성한다. 일 실시예에서, 보드 플롯 핑거프린트는 예를 들어, 처음 배치될 때 제대로 기능하는 시스템에서 얻은 베이스라인 보드 플롯 핑거프린트와의 비교를 통해 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다.
[0024] 또한, 이러한 실시예들에서, 이러한 보드 플롯 핑거프린트의 분석적 비교는 다른 결함들 또는 오류들 중에서, 잘못된 로봇 링키지의 관성, 잘못된 벨트 장력 또는 폐루프 불안정성을 검출하도록 유도할 수 있다. 대부분의 로봇 링키지들은 다수의 풀리 벨트들로 로봇 링키지들을 구동하기 위해 밀접하게 교차 결합되고 함께 기능하는 4개의 모터들(예를 들어, 하나 초과의 모터)을 가지고 있다. 개시된 주파수 응답 분석은 모터 스택 및 로봇 링키지가 제조 시설 내에서 여전히 상호 연결되어 있는 동안 수행되기 때문에, FRA를 사용하는 진단은 제조 구성에서 모터들 간의 주파수 응답을 수집할 수 있고, 그래서 로봇 링키지 및 모터 스택에서 가능한 결함들을 진단할 수 있거나, 또는 손상이 있는지 아니면 잘못된 장력을 받고 있는 풀리 벨트들이 있는지를 진단할 수 있다. 또한 통상의 기술들을 사용해서는 이전에 이용할 수 없었던 모터 및 링키지들의 추가적인 성능 정보를 제공하는 교차 축 전달 함수가 계산될 수 있다. 추가로, 고장 분석을 수행하기 위해 결함 있는 부품의 분해 및 운송으로 인해 통상적으로 요구되는 며칠 또는 몇 주 동안의 가동 중지 시간이 회피될 수 있다. 본 도면들을 참조하여 설명되는 바와 같이 추가적 또는 상이한 장점들이 당업자들에게 명백해질 것이다.
[0025] 도 1a는 다양한 실시예들에 따른, 대응하는 모터들 및 로봇 링키지들을 작동시키는 역할을 하는 다수의 증폭기들에 결합된 모션 컨트롤러를 포함하는 제어 시스템(100)의 블록도이다. 보다 구체적으로, 제어 시스템(100)은 모션 컨트롤러(102), 증폭기 세트(150), 및 모터 스택 및 로봇 링키지들(160)을 포함할 수 있다. 증폭기들(150)은 모션 컨트롤러(102)에 의해 제어되는 모터들에 대한 액추에이터들일 수 있다. 다양한 실시예들에서, 제어 시스템(100)은 진공 로봇들, 대기압 로봇들, 직접 구동 조인트들을 갖는 로봇들, 및/또는 직접 구동(예를 들어, 조인트에서의 모터) 로봇과 밴드 구동 로봇의 하이브리드 어레이에 관한 것이다. 대기압 로봇들은 밴드 또는 벨트 트랜스미션들이 있거나 없는 기어 감속기들을 갖고 있을 수 있다. 따라서 로봇 링키지들에 대한 참조는 제한이 아니라 광범위하게 보아야 한다.
[0026] 모터 스택 및 로봇 링키지들(160)은 다수의 모터들 및 로봇 링키지들, 예를 들어 제1 모터(160A) 및 제1 로봇 링키지(164A), 제2 모터(160B) 및 제2 로봇 링키지(164B), 제N 모터(160N) 및 제N 로봇 링키지(164N)를 포함할 수 있다. 일 실시예에서, 로봇 링키지들(164A, 164B...16N)은 상호 연결되어 있고, 따라서 다수의 모터들(160A, 160B...160N)은 협력하여 작동하여 모션 컨트롤러(102)에 의해 지시되는 대로 그리고 모터들 및 로봇 링키지들부터의 피드백에 따라 로봇 링키지들을 움직일 수 있다. 모터당 로봇 링키지가 없을 수 있으며, 그래서 이 경우 모터들 중 일부는 로봇 링키지들 중 하나 또는 그 조합에 공동으로 결합되어 움직일 수 있다. 다른 실시예들에서, 모터들(160A, 160B...160N) 중 하나 이상은 각각의 로봇 링키지들 중 적어도 일부를 독립적으로 제어한다.
[0027] 증폭기들(150)은 제1 증폭기(150A), 제2 증폭기(150B) 및 제N 증폭기(150N)를 포함할 수 있고, 각각은 모션 컨트롤러(102)로부터 수신된 커맨드들(예를 들어, 명령어들)을 실행하는 개개의 프로세서(154A, 154B...154N)를 포함한다. 제어 시스템(100)은 각각의 모터에 대한 증폭기를 포함할 수 있으므로, 일부 실시예들에서 모터들이 협력하여 동작할 수 있다는 사실에도 불구하고 각각의 모터의 독립적인 제어가 가능하다. 각각의 증폭기(150A, 150B...150N)는 모션 컨트롤러(102)로부터 수신된 커맨드(또는 명령어들)를 실행하기에 충분한 로컬 메모리에 저장된 펌웨어 또는 다른 소프트웨어 코드를 포함할 수 있다. 증폭기들(150A, 150B...150N)은 각각 비례 미분(proportional-integral-derivative)(PID) 컨트롤러, PI 컨트롤러 또는 3중 루프 컨트롤러일 수 있으며, 이는 도 1b를 참조하여 더 상세하게 논의될 것이다.
[0028] 제어 시스템(100)은 모션 컨트롤러(102), 증폭기(150), 모터 스택 및 로봇 링키지들(160) 간의 실시간 피드백 제어를 할 수 있게 하기에 충분한 반응적이고 결정적인 통신 네트워크(110)를 더 포함할 수 있다. 예를 들어, 통신 네트워크(110)는 100 마이크로초 미만의 데이터 업데이트 시간 및 1 마이크로초 미만의 통신 지터를 포함할 수 있다. 따라서, 통신 네트워크(110)는 EtherCAT(Ethernet for Control Automation Technology)과 동일하거나 유사할 수 있다.
[0029] 통신 네트워크(110)는 CANopen(Controller Area Network open) 프로토콜 또는 유사한 마스터-슬레이브 통신 모델을 더 채용할 수 있다. 하나 이상의 실시예들에 따른 분산 모션 네트워크(distributed motion network)들은 모션 컨트롤러(102)(마스터)로부터의 명령어들과 긴밀한 조정을 제공하면서 분산 모션 플래닝(distributed motion planning)을 허용할 수 있다. 소프트웨어 프로그램들/펌웨어는 모션 컨트롤러(102)(마스터) 및 본 명세서에서 증폭기들(150)(슬레이브들)로 지칭되는 액추에이터 드라이버들에 각각 저장될 수 있다. 이것은 모션 플래닝이 마스터와 슬레이브(들) 사이에 분산될 수 있도록 할 수 있고 통신 네트워크에 걸쳐 발생할 수 있는 데이터 전송량을 줄임으로써 마스터와 통신 네트워크(110)에 지워진 부담을 줄일 수 있다.
[0030] 예를 들어, 모션 컨트롤러(102)(마스터)에 의해 생성된 갭 교정에 관련한 모션 명령어는 미리 정의된 속도 및 가속도의 제약 조건들 내에서 제1 포지션(예를 들어, 안전한 시작 포지션)과 제2 포지션(예를 들어, 예상되는 접촉 포지션을 벗어난 타깃 포지션) 사이에서 모터(160A)의 움직임을 개시시킬 수 있다. 모션 명령어는 액추에이터 드라이버(슬레이브) 내부의 모션 플래너에 의해 수신될 수 있으며, 모션 플래너는 모션 명령어 데이터에 기초하여 매 순간 제1 모터(160A)의 모션을 정밀하게 서술하는 모션 프로파일을 생성하여 속도 및 가속 변경들을 제어할 수 있으며, 예를 들어, 가속의 제1 도함수인 "저크(jerk)"를 제한할 수 있으며, 그 중 후자는 모터 및 부착된 컴포넌트들에 대해 원치 않는 마모 또는 진동들을 생성할 수 있다.
[0031] 따라서, 커맨드되는 모션 데이터는 통신 네트워크(110)를 통해 전송될 필요가 없고, 단지 액추에이터 드라이버들 내의 모션 플래너를 개시시키는 상위 레벨의 모션 커맨드만 전송된다. 모션 플래닝의 분산 특성은 증폭기(150A), 모터(160A) 및/또는 로봇 링키지(164A)로부터의 모션 피드백 데이터(밀리초당 하나의 샘플, 20 밀리초당 하나의 샘플, 또는 일부 다른 샘플링 레이트 사이일 수 있음)를 포함하는 실시간 프로세스 데이터를 모션 포지셔닝 성능을 감소시키지 않고 모션 컨트롤러(102)로 전송하기 위한 통신 네트워크 트래픽을 확보한다. 이러한 분산 제어는 또한 모션 컨트롤러(102)(마스터)가 갭 교정 또는 다른 기능들을 위해 동시에 다수의 모터들을 제어할 수 있게 한다. 그러므로 본 명세서에 개시된 방법들은 하나 이상의 실시예들에 따라 모션 플래닝 가능 액추에이터 드라이버(motion-planning capable actuator driver)들을 갖는 모션 제어 시스템에서 수행될 수 있다.
[0032] 일부 실시예들에서, 모션 컨트롤러(102)는 포지션 커맨드들 및 토크 커맨드들(예를 들어, 피드포워드 토크 커맨드들)을 다수의 증폭기들(150)에 전송하여 모터들을 제어하고 이에 따라 로봇 링키지들을 제어한다. 이러한 커맨드들은 도 1b를 참조하여 보다 상세하게 논의될 것이다. 주파수 분석 데이터를 모으기 위해, 모션 컨트롤러(102)는 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 다수의 시간 스텝들의 각각의 시간 스텝에서 증폭기들(150)로부터 피드백 데이터 신호들을 추가로 수신할 수 있다. 예를 들어, 진단 테스트는 보다 상세하게 논의될 보드 플롯 핑커프린트를 생성하는 데 사용될 피드백 데이터를 생성하기 위하여, 다수의 주파수들 각각에서 몇 초 동안 실행될 수 있다. 각각의 피드백 데이터 신호는 (모터들의) 순간적 토크 값들 및 (링키지들 및 풀리 벨트들로부터의) 순간적인 하드웨어 파라미터 값들을 포함할 수 있다. 이러한 피드백 데이터 신호들은 도 1a에서 점선들로서 예시된다. 하드웨어 파라미터 값들은 이것으로 제한되는 것은 아니지만 링키지(들) 중 적어도 한 링키지의 힘, 변형, 압축, 마찰, 공진, 포지션 또는 속도를 비롯한 애플리케이션에 따라 달라질 수 있다.
[0033] 다양한 실시예들에서, 모션 컨트롤러(102)는 이것으로 제한되는 것은 아니지만, 하드웨어를 포함하거나 펌웨어를 포함하는 명령어들을 실행하여 모터 스택들 및 로봇 링키지들(160) 내 결함들 또는 오류들을 진단하도록 의도된 보드 핑거프린트 주파수 응답 분석(frequency response analysis)(FRA)(108)을 포함하는 진단(106)을 수행하는 프로세서(104)를 포함한다. 모션 컨트롤러(102)는 예를 들어, 프로세서(104)에 의해 실행 중인 명령어들을 저장하는 메모리(130)(휘발성, 비휘발성 또는 이들의 조합)를 더 포함할 수 있다. 메모리(130)는 모터 스택 및 로봇 링키지들(160)로부터의 피드백 데이터 신호들을 통해 수신된 순간적 토크 값들 및 순간적 하드웨어 파라미터 값들의 합계를 추가로 버퍼링할 수 있다. 모션 컨트롤러(102)는 모니터, 디스플레이 스크린 등과 같은 디스플레이 디바이스(134), 디스플레이 디바이스(134) 내 오퍼레이터 간의 상호 작용을 용이하게 하는 사용자 인터페이스(136), 통신 인터페이스(140), 다중 입력/출력(input/output)(I/O) 디바이스(144) 및 저장 디바이스(148)(예를 들어, 하나 이상의 디스크 드라이브들 및/또는 솔리드 스테이트 드라이브들)를 더 포함할 수 있다.
[0034] 실시예들에서, 통신 인터페이스(140)는 통신 네트워크(110)를 통해 논의된 증폭기(150A)와의 통신을 용이하게 한다. I/O 디바이스(144)는 키보드, 마우스, 터치패드, 마이크로폰 등과 같은 입력 디바이스들 뿐만 아니라, 스피커, 디스플레이 디바이스(134), 프린터 등과 같은 출력 디바이스들을 포함할 수 있다. 저장 디바이스(148), 예를 들어, 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체는 소프트웨어를 저장할 수 있고, FRA가 수행되는 순간적 토크 값들 및 순간적 하드웨어 파라미터 값들의 합계를 위한 영구 저장소로서 역할을 할 수 있다. 모션 컨트롤러(102)는 본 명세서에 설명된 방법론들 중 하나 이상의 방법론들 및/또는 실시예들을 수행하기 위한 명령어들을 실행할 수 있다. 본 명세서에서 메모리가 언급될 때, 그것은 메모리(130)(예를 들어, 메인 메모리) 또는 저장 디바이스(예를 들어, 비휘발성, 장기 컴퓨터 저장소) 중 하나 또는 둘 다를 의미하는 것으로 이해되어야 한다.
[0035] 일 실시예에서, 저장 디바이스(148)는 (하나 이상의 모터들로부터의) 합계된 순간적 토크 값들의 세트와 (하나 이상의 모터들에 결합된 로봇 링키지로부터의) 대응하는 합계된 순간적 하드웨어 파라미터 값들의 세트 간의 크기 및 위상 시프트 값들을 합계하는 (테이블 또는 데이터베이스와 같은, 도 1b 참조) 데이터 구조체(131)를 저장한다. 이러한 값들은 교번 신호 파가 다수의 주파수들을 통해 스윕되고 개개의 증폭기들(150)로 전송된 토크 커맨드들 위에 삽입됨에 따라 순차적으로 합계될 수 있다. 크기 및 위상 시프트 데이터가 주파수들의 범위에 걸쳐 수집됨에 따라, 이것은 제어 시스템(100)의 전달 함수를 형성하며, 그런 다음 전달 함수는 로봇 링키지들을 제어하는 데 사용되는 이득 및 필터들을 설계 또는 업데이트하는 데 사용될 수 있다.
[0036] 다양한 실시예들에서, 데이터 구조체(131)는 또한 메모리(130)에 저장될 수 있고 저장 디바이스(148)에 저장된 데이터 구조체(131)와 일관성 있게 유지될 수 있다. 다수의 주파수들을 통해 테스트가 완료되고 주어진 테스트에 대해 데이터 구조체(131)가 완료된 후에, 모션 컨트롤러(102)는 데이터 구조체(131)를 로그 파일(132)(도 1b)에 저장할 수 있다. 그런 다음 모션 컨트롤러(102)는, 예를 들어, 사인 스윕 또는 코사인 스윕으로서 삽입되었던 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑거프린트를 생성하기 위해 로그 파일에 저장된 데이터를 사용한다. 각각의 보드 플롯 핑거프린트는 또한 저장 디바이스(148)에 영구적으로 저장될 수 있고, 선택적으로는 디스플레이 디바이스(134)에서 오퍼레이터에 디스플레이될 수 있는 로그 파일(132)에 저장될 수 있다.
[0037] 보드 플롯 핑거프린트는, 예를 들어, 제어 시스템(100)이 처음 배치되었을 때 제대로 기능하는 시스템에서 얻은 베이스라인 보드 플롯 핑거프린트와의 비교를 통해 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다. 예를 들어, 프로세서(104)는 보드 플롯 핑거프린트를 모터 및 링키지에 대해 이전에 생성된 베이스라인 보드 플롯 핑거프린트와 비교할 수 있다. 프로세서(104)는 또한 비교에 기초하여, 모터 또는 링키지 중 하나에 결함 또는 오류가 있다고 결정할 수 있다. 결함 또는 오류를 검출하는 것에 응답하여, 모션 컨트롤러(102)는 디스플레이 디바이스(134) 등을 포함하는 사용자 인터페이스 또는 다른 I/O 디바이스(144)를 통해 결함 또는 오류를 오퍼레이터에게 통지할 수 있다.
[0038] 모션 컨트롤러(102)는 퍼스널 컴퓨터, 서버 컴퓨터(예를 들어, 모션 제어 서버), 프로그래밍 가능 로직 컨트롤러(programmable logic controller)(PLC), 마이크로컨트롤러 등과 같은 컴퓨팅 디바이스이고/이거나 이를 포함할 수 있다. 모션 컨트롤러(102)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 프로세싱 디바이스를 포함할 수 있다. 특히, 프로세싱 디바이스는 복합 명령어 세트 컴퓨팅(Complex Instruction Set Computing)(CISC) 마이크로프로세서, 축소 명령어 세트 컴퓨팅(Reduced Instruction Set Computing)(RISC) 마이크로프로세서, 훨씬 긴 명령어 워드(Very Long Instruction Word)(VLIW) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세싱 디바이스는 또한 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래밍 가능 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 프로세싱 디바이스들일 수 있다.
[0039] 도 1b는 실시예에 따른, 모터 및 로봇 링키지를 작동시키는 예시적인 3중 루프 증폭기를 예시하는, 도 1a의 제어 시스템(100)의 보다 상세한 블록도이다. 보다 구체적으로, 제어 시스템(100)의 증폭기(150A)는 제1 모터(160A) 및 제1 로봇 링키지(164A)의 작동을 제어하는 3중 루프 증폭기일 수 있다. 더 단순한 제어 애플리케이션들과 달리, 서보 모터 설계들은 3개의 상호 의존적인 성능 특성들: 포지션, 속도 및 전류에 따라 달라진다. 모터 로터의 포지션을 변경하기 위해, 그의 속도가 변경될 필요가 있다. 차례로, 그의 속도를 변경하기 위해, 펄스 폭 변조(pulse-width modulation)(PWM)를 통해 모터 권선들에 인가되는 전류가 변경될 필요가 있다.
[0040] 서보 모터 제어 개발자들은 도 1b에 예시된 바와 같은 캐스케이드 제어 구조에 이러한 루프 상호 의존성을 반영한다. 보다 구체적으로, 전류 컨트롤러(174), 속도 컨트롤러(184) 및 포지션 컨트롤러(164)를 포함하는 한 세트의 3개 컨트롤러들이 모터에 가장 가까운 거리에서부터 가장 먼 거리까지 직렬로 배열될 수 있다. 각각의 컨트롤러는 각각 (예를 들어, 실제 토크를 나타내는) 전류, 로봇 링키지(164A)의 속도 및 로봇 링키지(164A)의 포지션을 포함하는 제어 피드백 값을 수신한다. 속도 피드백 값은 또한 모터(160A)로부터 지시되어 입력될 수 있지만, 단순화를 위해 포지션 값의 시간 경과에 따른 도함수로서 예시된다. 내부 루프 포지션에 있을 때, 전류 컨트롤러(174)는 펄스 폭 변조(PWM) 증폭기(162)를 피딩하고, 증폭기는 전류 컨트롤러(174)에 의해 지시된 주파수에서 전류를 모터(160A)에 공급한다.
[0041] 이러한 중첩식(nested) 접근법은 본질적으로 기본 오류들이 전파되기 전에 이들 오류를 보정함으로써 안정성을 지원한다. 예를 들어, 가장 안쪽의 전류 루프는 부하 변경이 속도 및 포지션에 크게 영향을 미치기 전에 (로봇 링키지들에서의) 부하의 변경에 매우 잘 응답하여 토크를 독립적으로 수정할 수 있다. 동시에, 이러한 중첩식 접근법은 외부 루프들(속도 및 포지션)이 그들의 기본 내부 루프들 못지 않게 수행할 수 있다는 것을 의미한다. 서보 시스템들에서, 내부 루프가 외부 루프 성능 기대치들을 지원할 대역폭이 부족하다면 포지션 및 속도 성능을 향상하려는 노력들은 필연적으로 미흡해질 것이다. 궁극적으로, 내부 전류 루프의 성능은 전체 서보 시스템의 성능의 한계를 효과적으로 정의한다. 이것은 통신 네트워크(110)를 EtherCAT 기반 네트워크로서 채용하기 위한 이유 중 하나이다.
[0042] 다양한 실시예들에서, 이러한 3중 제어 구조에 대해 보다 구체적으로, 증폭기(150A)는 모션 컨트롤러(102)로부터의 피드포워드 토크 커맨드(또는 그저 단순화를 위해 토크 커맨드라 함), 속도 컨트롤러로부터의 출력, 및 PWM 증폭기(162)의 출력으로부터의 피드백 전류 값(실제 토크)를 결합하는 제1 합산기(176)를 포함할 수 있다. 제1 합산기(176)의 출력은 전류 컨트롤러(174)에 입력되는 제어 신호일 수 있다.
[0043] 또한, 증폭기(150A)는 (모션 컨트롤러(102)로부터 수신된 포지션 커맨드의 도함수 계산기(198)에 의해 변환된) 속도 커맨드, 포지션 컨트롤러(194)의 출력, 및 모터 또는 로봇 링키지로부터의 피드백 속도 값을 결합하는 제2 합산기(186)를 포함할 수 있다. 제2 합산기(186)의 출력은 속도 컨트롤러(184)에 입력되는 제어 신호일 수 있다. 또한, 증폭기(150A)는 (모션 컨트롤러(102)로부터 수신된) 포지션 커맨드와 로봇 링키지(164A)로부터의 포지션 피드백 값을 결합하는 제3 합산기(196)를 포함할 수 있다. 제3 합산기(196)의 출력은 포지션 컨트롤러(194)에 입력되는 제어 신호일 수 있다.
[0044] 다양한 실시예들에서, 증폭기(150A)의 3중 루프 제어 구조는 로봇 링키지(164A), 풀리 벨트 및 예를 들어 베어링들로부터의 마찰과 연관된 토크 및 다른 하드웨어 파라미터들의 순간적 값들을 포함하는 피드백 데이터 신호들을 모션 컨트롤러(102)로 전송하는 것을 용이하게 한다. 순간 토크의 피드백은 실선(x)으로 라벨링된다. 모션 컨트롤러(102)는 주파수 응답 분석을 위한 크기 및 위상 시프트를 결정하기 위해 임의의 다른 순간적 값을 순간적 토크와 비교하여 사용할 수 있으므로, 다른 피드백 데이터 신호들은 이 신호들이 선택적임을 의미하는 점선들로 예시되며, 여기서 크기 및 위상 시프트는 나중에 베이스라인 보드 플롯 핑거프린트와의 적절한 비교를 위해 스케일링될 수 있다.
[0045] 보다 구체적으로, 순간적 하드웨어 파라미터 값들의 피드백은 점선(p)으로 예시되고, 순간적 포지션 값의 피드백은 점선(y)으로 예시되며, 순간적 속도 값은 점선(z)으로 예시된다. 순간적 포지션 및 속도 값들은 하드웨어 파라미터 값들이지만, 이러한 y 및 z 값들은 보통 증폭기(150A) 내의 피드백 값들로서 전달하여 사용 가능하다. 순간적 속도 값은 또한 도함수 계산기(188)에 순간적 포지션 값을 입력하는 것으로부터 획득될 수 있다. 일부 실시예들에서, 증폭기(150A)의 프로세서(154A)(도 1a)는 증폭기(150A)로부터 모션 컨트롤러(102)로 이들 순간적 값들의 전송을 수신하고 용이하게 하지만, 예시의 단순화를 위해 도 1b에는 예시되지 않는다. 프로세서(154A)는 또한 피드포워드 토크 커맨드 및 포지션 커맨드와 연관되거나 그로부터 변환된 값들을 각각 수신하고 개개의 합산기들(176 및 196)로 전송할 수 있다. 이러한 선택적 추가 단계는 또한 도 1b를 단순화하고 덜 혼잡스럽게 유지하기 위해 예시되지 않는다.
[0046] 실시예에서, 모션 컨트롤러(102)는 이러한 순간적 값들을 메모리(130)(및/또는 저장 디바이스(148))의 데이터 구조체(131)로 합계하여 모션 컨트롤러(102)가 이러한 값들을 시간에 걸쳐 수집하여 주어진 주파수에 대한 크기 및 위상 시프트 데이터를 생성하는 FRA를 수행할 수 있다. 모션 컨트롤러(102)는 다수의 주파수들에 대한 진폭 및 위상 시프트 데이터의 합계를 데이터 구조체(131)로 결합할 수 있으며, 데이터 구조체는 일단 완전한 테스트로부터 가득 채워지면 논의된 바와 같이 로그 파일(132)에 저장될 수 있다.
[0047] 도 2a는 다양한 실시예들에 따른, 주파수 응답 진단을 수행하여 서보 제어 메커니즘들을 특성화하기 위한 방법(200A)의 흐름도이다. 도 2b는 실시예에 따른, 주파수 응답 진단에 사용 가능한 크기 및 위상 시프트 데이터의 합계의 생성을 위한 방법(200B)의 흐름도이다. 방법들(200A 및 200B)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그래밍 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에서 실행 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법들(200A 및 200B)은 모션 컨트롤러(102)(도 1)에 의해 수행된다. 특정한 순차 또는 순서로 도시될지라도, 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 병렬로 수행될 수 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스들이 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
[0048] 동작(210)에서, 프로세싱 로직은 모터를 제어하는 증폭기에 토크 커맨드를 공급하며, 여기서 모터는 로봇 링키지를 구동한다. 토크 커맨드는 예를 들어 도 1b를 참조하여 논의된 바와 같은 제1 합산기(176)로의 피드백 포워드 토크 커맨드이다. 동작(215)에서, 프로세싱 로직은 모터 및 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 토크 커맨드에 포함시킨다(또는 추가한다). 이러한 교번 신호 파는 사인 스윕, 코사인 스윕 또는 예를 들어 일정 시간 기간 후에 주파수가 때때로 변동하는 교번 신호 파의 또 다른 스윕일 수 있다. 이러한 시간 기간은 테스트의 길이에 따라 1초, 수 초 또는 그 이상으로 설정될 수 있다.
[0049] 동작(220)에서, 프로세싱 로직은 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 다수의 시간 스텝들의 각각의 시간 스텝에서 모터의 순간적 토크 값 및 로봇 링키지의 순간적인 기계적 파라미터 값을 증폭기로부터 수신할 수 있다. 순간적인 기계적 파라미터 값은, 예를 들어, 로봇 링키지의 적어도 하나의 컴포넌트의 힘, 변형, 압축, 마찰, 공진, 포지션 또는 속도 중 하나를 표시할 수 있다. 동작(225)에서, 프로세싱 로직은 순간적 토크 값들의 합계 및 순간적인 기계적 파라미터 값들의 합계를 메모리에 저장할 수 있다. 이러한 합계된 값들은, 예를 들어, 데이터 구조체(131)(도 1b)에 저장될 수 있다.
[0050] 동작(230)에서, 프로세싱 로직은 교번 신호 파의 제1 주파수에 대해, 순간적인 기계적 파라미터 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정한다. 동작(235)에서, 프로세싱 로직은 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑커프린트를 생성하며, 보드 플롯 핑거프린트는 모터 및 로봇 링키지의 진단을 수행하는 데 사용된다.
[0051] 도 2b를 참조하면, 동작(240)에서, 프로세싱 로직은 교번 신호 파의 주파수를 변경할 수 있다. 동작(245)에서, 프로세싱 로직은 교번 신호 파의 다수의 주파수들 각각에 대해, 순간적인 기계적 파라미터 값들의 합계와 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정할 수 있다. 예를 들어, 프로세싱 로직은 다수의 주파수들 각각에 대해 동작들(220, 225 및 230)을 반복하여 동작(235)에서 사용된 크기 및 위상 시프트 데이터의 합계를 생성할 수 있다. 동작(250)에서, 프로세싱 로직은 다수의 주파수들에 대해 획득된 크기 및 위상 시프트 데이터의 합계를 메모리의 데이터 구조체, 예를 들어 데이터 구조체(131)에 저장할 수 있다. 따라서 프로세싱 로직은 동작(235)에서, 데이터 구조체에 저장된 이러한 순간적 값들의 합계를 사용하여 보드 플롯 핑거프린트를 생성할 수 있다.
[0052] 프로세싱 로직은 또한 모터 스택의 다수의 모터들 및 동일한 로봇 링키지에 결합된 로봇 링키지들(160)을 테스트할 수 있기 때문에, 방법(200A 및 200B)은 제2 모터에 결합된 제2 증폭기로부터 추가적인 크기 및 위상 데이터를 수집하는 것을 포함하도록 확장될 수 있다. 도 2c는 실시예에 따른, 주파수 응답 진단에 사용 가능한 두 개의 모터들 및 루트 링키지로부터 크기 및 위상 시프트 데이터의 합계의 생성을 위한 방법(200C)의 흐름도이다. 방법(200C)은 또한 방법들(200A 및 200B)과 유사한 프로세싱 로직, 예를 들어 모션 컨트롤러에 의해 수행될 수 있다.
[0053] 도 2c를 참조하면, 동작(255)에서, 프로세싱 로직은 또한 제2 모터를 제어하는 제2 증폭기에 토크 커맨드 및 교번 신호 파를 공급하며, 제2 모터는 또한 로봇 링키지를 구동한다. 예를 들어, 이러한 제2 모터는 (방법들(200A 및 200B)의) 제1 모터가 그 제1 축을 따라 정렬되는 로봇 링키지의 제2 축을 따라 정렬될 수 있다. 동작(260)에서, 프로세싱 로직은 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 다수의 시간 스텝들의 각각의 시간 스텝에서 제2 모터의 제2 순간적 토크 값 및 로봇 링키지의 제2 순간적인 기계적 파라미터 값을 제2 증폭기로부터 수신한다.
[0054] 동작(265)에서, 프로세싱 로직은 제2 순간적 토크 값들의 합계 및 제2 순간적인 기계적 파라미터 값들의 합계를 메모리에 저장한다. 동작(270)에서, 프로세싱 로직은 교번 신호 파의 제1 주파수에 대해, 제2 순간적인 기계적 파라미터 값들의 합계와 제2 순간적 토크 값들의 합계 간의 제2 크기 및 위상 시프트를 결정한다. 동작(275)에서, 프로세싱 로직은 주파수 응답 분석의 수행 시, 다수의 주파수들에 걸쳐 (방법들(200A 및 200B)로부터의) 크기 및 위상 시프트 데이터와 제2 크기 및 위상 시프트 데이터의 합계를 사용하여 보드 플롯 핑거프린트를 생성한다. 이러한 방식으로, 보드 플롯 핑거프린트는 동일한 로봇 링키지를 둘 모두 구동하는 제1 모터와 제2 모터 둘 모두의 주파수 응답 정보를 포함한다. 이 기술은 동일한 로봇 링키지를 제어하는 데에도 사용되는 추가(예를 들어, 제3 및 제4) 모터들로 확장될 수 있다.
[0055] 도 3은 실시예에 따른, 로봇 링키지의 불량 관성(bad inertia)을 검출하는 보드 플롯 핑거프린트 비교의 방법(300)의 흐름도이다. 도 4는 실시예에 따른, 로봇 링키지의 불량 관성을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다. 방법(300)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그래밍 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에서 실행 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(300)은 모션 컨트롤러(102)(도 1)에 의해 수행된다. 특정한 순차 또는 순서로 도시될지라도, 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 병렬로 수행될 수 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스들이 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
[0056] 도 3을 참조하면, 동작(310)에서, 프로세싱 로직은 (예를 들어, 방법(200A 또는 200C)에서 생성된) 보드 플롯 핑거프린트를 모터(들) 및 로봇 링키지에 대해 이전에 생성된 베이스라인 보드 핑거프린트와 비교한다. 이러한 비교는 둘 사이의 차이들 및/또는 유사성들을 검출하기 위하여 대응하는 주파수들에서 두 플롯들을 비교함으로써 이루어질 수 있다. 비교는 또한 로그 파일(132)에 선택적으로 로케이팅될 수 있는 데이터 구조체(131)에 저장된 원시 크기 및 위상 데이터에 대해 수행될 수 있다.
[0057] 동작(320)에서, 프로세싱 로직은 보드 플롯 핑거프린트의 크기의 제1 최소값 및 베이스라인 보드 플롯 핑거프린트의 제2 최소값을 검출한다. 이러한 제1 크기(402)는 크기를 예시하는 도 4의 가장 오른쪽의 보드 플롯 핑거프린트에 예시되어 있다.
[0058] 동작(330)에서, 프로세싱 로직은 제1 최소값이 제2 최소값과는 상이한 설정 백분율보다 큰지 여부를 결정한다. 이러한 백분율은 제조 중에 설정되거나 고객에 의해 설정될 수 있지만, 대략 5 퍼센트 10 퍼센트 20 퍼센트 또는 그 이상에서 결함이 검출될 유사한 백분율일 수 있다. 도 4는 일 실시예에서 안전 구역인 베이스라인 보드 플롯 핑거프린트의 제2 최소값 주위의 주파수 범위(405)를 예시한다. 제1 최소값은 이 주파수 범위(405) 밖에 있기 때문에, 프로세싱 로직은 도 4의 보드 플롯 핑거프린트를 고려하여 결함 또는 오류를 표시할 것이다.
[0059] 제1 최소값이 제2 최소값과는 상이한 설정 백분율보다 크지 않으면, 동작(340)에서, 프로세싱 로직은 결함 또는 오류를 검출하지 않는다. 제1 최소값이 제2 최소값과는 상이한 설정 백분율보다 크면, 동작(350)에서, 프로세싱 로직은 로봇 링키지의 불량 관성을 검출하며, 이것은 오퍼레이터에게 보고될 수 있다.
[0060] 도 5는 실시예에 따른, 잘못된 벨트 장력을 검출하기 위한 보드 플롯 핑거프린트 비교의 방법(500)의 흐름도이다. 도 6은 실시예에 따른, 잘못된 벨트 장력을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다. 방법(500)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그래밍 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에서 실행 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(500)은 모션 컨트롤러(102)(도 1)에 의해 수행된다. 특정한 순차 또는 순서로 도시될지라도, 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 병렬로 수행될 수 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스들이 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
[0061] 도 5를 참조하면, 동작(510)에서, 프로세싱 로직은 (예를 들어, 방법(200A 또는 200C)에서 생성된) 보드 플롯 핑거프린트를 모터(들) 및 로봇 링키지에 대해 이전에 생성된 베이스라인 보드 핑거프린트와 비교한다. 이러한 비교는 둘 사이의 차이들 및/또는 유사성들을 검출하기 위하여 대응하는 주파수들에서 두 플롯들을 비교함으로써 이루어질 수 있다. 비교는 또한 로그 파일(132)에 선택적으로 로케이팅될 수 있는 데이터 구조(131)에 저장된 원시 크기 및 위상 데이터에 대해 수행될 수 있다.
[0062] 동작(520)에서, 프로세싱 로직은 베이스라인 보드 플롯 핑거프린트의 대응하는 크기와 비교된 보드 플롯 핑거프린트의 크기의 증가를 검출한다. 도 6의 보드 플롯 핑거프린트의 크기 플롯은 (402)에서 그와 같은 크기의 증가를 예시한다. 동작(530)에서, 프로세싱 로직은 두 보드 플롯 핑거프린트들 간의 크기의 증가가 임계 크기 차이를 초과하는지를 결정한다. 일 실시예에서, 이러한 차이는 도 6의 (405)에서 예시된, 베이스라인 보드 핑거프린트의 크기로부터 20 데시벨(dB) 초과의 크기의 증가일 수 있다. 5 dB, 10 dB, 15 dB, 25 dB 등과 같은 추가적인 임계 차이가 선택되어 프로세싱 로직으로 프로그래밍될 수 있다.
[0063] 크기의 증가가 임계 크기 차이 내에 있으면, 동작(540)에서, 프로세싱 로직은 결함 또는 오류를 검출하지 않는다. 크기의 증가가 임계 크기 차이를 초과하면(또는 넘으면), 동작(550)에서, 프로세싱 로직은 잘못된 벨트 장력을 검출하며 그 다음에 이것은 오퍼레이터에게 보고될 수 있다.
[0064] 도 7은 실시예에 따른, 폐루프 불안정성을 검출하는 보드 플롯 핑거프린트 비교의 방법(700)의 흐름도이다. 도 8은 실시예에 따른, 폐루프 불안정성을 예시하는 크기 및 위상 시프트 보드 플롯 핑거프린트들의 한 쌍의 그래프들이다. 방법(700)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그래밍 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에서 실행 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(700)은 모션 컨트롤러(102)(도 1)에 의해 수행된다. 특정한 순차 또는 순서로 도시될지라도, 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 예시된 실시예들은 단지 예들로서 이해되어야 하며, 예시된 프로세스들은 상이한 순서로 수행될 수 있고, 일부 프로세스들은 병렬로 수행될 수 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스들이 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
[0065] 도 7을 참조하면, 동작(710)에서, 프로세싱 로직은 (예를 들어, 방법(200A 또는 200C)에서 생성된) 보드 플롯 핑거프린트를 모터(들) 및 로봇 링키지에 대해 이전에 생성된 베이스라인 보드 핑거프린트와 비교한다. 이러한 비교는 둘 사이의 차이들 및/또는 유사성들을 검출하기 위하여 대응하는 주파수들에서 두 플롯들을 비교함으로써 이루어질 수 있다. 비교는 또한 로그 파일(132)에 선택적으로 로케이팅될 수 있는 데이터 구조(131)에 저장된 원시 크기 및 위상 데이터에 대해 수행될 수 있다.
[0066] 동작(710)에서, 프로세싱 로직은 보드 플롯 핑거프린트 및 베이스라인 보드 플롯 핑거프린트에서 최대 크기로 끝나는 크기의 증가를 검출한다. 도 8은 두 곡선 모두 약 150 dB에서 정점에 도달하는 방법을 예시한다. 동작(720)에서, 프로세싱 로직은 보드 플롯 핑거프린트에 대한 최대 진폭에서 플래토(plateau)(802)가 검출되는지를 결정한다. 이러한 플래토는, 예를 들어, 최대 진폭이 검출된 후에 대략 0의 평균 기울기를 계산함으로써 검출될 수 있다.
[0067] 최대 진폭에서 플래토가 검출되지 않으면, 동작(740)에서, 프로세싱 로직은 결함 또는 오류를 검출하지 않는다. 프로세싱 로직이 보드 플롯 핑거프린트에 대한 최대 진폭에서 플래토를 검출하면, 동작(750)에서, 프로세싱 로직은 플래토(802)가 시작되는 주파수에서 시작하는 제어 시스템(100)에 대한 폐루프 불안정성을 검출하며, 이것은 오퍼레이터에게 보고될 수 있다. 이 예에서, 제어 시스템(100)의 불안정성은 대략 275 Hz의 주파수에서 시작된다. 추가적인 결함들 또는 오류들이 유사하게 검출되어 시스템 오퍼레이터에게 보고될 수 있다.
[0068] 이전의 설명은 본 개시내용의 몇몇 실시예들의 양호한 이해를 제공하기 위해 특정 시스템들, 컴포넌트들, 방법들 등의 예들과 같은 다수의 특정 세부사항들을 기재한다. 그러나, 본 개시내용의 적어도 일부 실시예들이 이러한 특정 세부사항들 없이도 실시될 수 있다는 것은 당업자에게 명백할 것이다. 다른 예시들에서, 잘 알려진 컴포넌트들 또는 방법들은 본 개시내용을 불필요하게 모호하게 하는 것을 피하기 위해, 상세히 설명되지 않거나 간단한 블록 다이어그램 포맷으로 제시된다. 따라서, 기재된 특정 세부사항들은 단지 예시일 뿐이다. 특정한 구현들은 이러한 예시적인 세부사항들과 다를 수 있으며, 여전히 본 개시내용의 범위 내에 있는 것으로 고려된다.
[0069] 본 명세서 전반에 걸쳐 "일 실시예" 또는 "실시예"에 대한 참조는, 실시예와 관련하여 설명된 특정한 피처, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 장소들에서의 어구 "일 실시예" 또는 "실시예"의 출현들 모두는 반드시 동일한 실시예를 지칭할 필요는 없다. 부가적으로, 용어 "또는"은 배타적인 "또는" 보다는 포괄적인 "또는"을 의미하도록 의도된다. 용어 "약" 또는 "대략"이 본 명세서에서 사용될 때, 이는 제시된 공칭 값이 ±10% 내에서 정확하다는 것을 의미하도록 의도된다.
[0070] 본 명세서의 방법들의 동작들이 특정한 순서로 도시되고 설명되지만, 각각의 방법의 동작들의 순서는, 특정한 동작들이 역순으로 수행될 수 있어서, 특정한 동작들이 다른 동작들과 적어도 부분적으로 동시에 수행될 수 있도록 변경될 수 있다. 다른 실시예에서, 별개의 동작들의 명령들 또는 하위-동작들은 간헐적이고 그리고/또는 교번적인 방식으로 이루어질 수 있다.
[0071] 위의 설명은 제한이 아니라 예시적인 것으로 의도된다는 것을 이해한다. 위의 설명을 판독 및 이해할 시에, 많은 다른 실시예들이 당업자들에게 명백할 것이다. 따라서, 본 개시내용의 범위는, 첨부된 청구항들이 권리를 가지는 등가물들의 전체 범위와 함께 그러한 청구범위들을 참조하여 결정되어야 한다.

Claims (20)

  1. 모션 제어 서버로서,
    메모리; 및
    상기 메모리에 결합된 프로세서를 포함하고, 상기 프로세서는,
    모터를 제어하는 증폭기에 토크 커맨드(torque command)를 공급하고 - 상기 모터는 로봇 링키지(robot linkage)를 구동함 -;
    상기 모터 및 상기 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 상기 토크 커맨드에 포함시키고;
    상기 증폭기로부터, 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 상기 모터의 순간적(instantaneous) 토크 값 및 상기 로봇 링키지의 순간적인 기계적 파라미터 값을 수신하고;
    상기 순간적 토크 값들의 합계(aggregate) 및 상기 순간적인 기계적 파라미터 값들의 합계를 상기 메모리에 저장하고;
    상기 교번 신호 파의 제1 주파수에 대해, 상기 순간적인 기계적 파라미터 값들의 합계와 상기 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하고;
    상기 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 핑거프린트를 생성하고; 그리고
    상기 핑거프린트를 사용하여, 상기 모터 및 상기 로봇 링키지의 주파수 응답 진단을 수행하는, 모션 제어 서버.
  2. 제1항에 있어서,
    상기 메모리는 상기 프로세서에 의해 실행될 때, 상기 모션 제어 서버가 통신 네트워크를 통해 슬레이브로서의 증폭기와 마스터로서 통신하게 하는 명령어들을 더 저장하며, 상기 통신 네트워크는 100 마이크로초 미만의 데이터 업데이트 시간 및 1 마이크로초 미만의 통신 지터를 포함하는, 모션 제어 서버.
  3. 제1항에 있어서,
    상기 순간적인 기계적 파라미터 값은 상기 로봇 링키지의 적어도 하나의 컴포넌트의 힘, 변형, 압축, 마찰, 공진, 포지션 또는 속도 중 하나를 포함하는, 모션 제어 서버.
  4. 제1항에 있어서,
    상기 프로세서는 상기 교번 신호 파와 결합된 상기 토크 커맨드를 상기 증폭기의 전류 컨트롤러에 공급하고, 상기 프로세서는 추가로,
    상기 교번 신호 파의 주파수를 변경하고;
    상기 교번 신호 파의 상기 다수의 주파수들 각각에 대해, 상기 순간적인 기계적 파라미터 값들의 합계와 상기 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하고; 그리고
    상기 다수의 주파수들에 대해 획득된 크기 및 위상 시프트 데이터의 합계를 상기 메모리의 데이터 구조체에 저장하는, 모션 제어 서버.
  5. 제1항에 있어서,
    상기 핑거프린트는 보드 플롯 핑거프린트(bode plot fingerprint)이고, 상기 프로세서는 추가로,
    상기 보드 플롯 핑거프린트를 상기 모터 및 상기 링키지에 대해 이전에 생성된 베이스라인 보드 플롯 핑거프린트와 비교하고; 그리고
    상기 비교에 기초하여, 상기 모터, 상기 로봇 링키지, 또는 상기 모터를 상기 로봇 링키지에 결합하는 벨트 중 하나에 결함이 있다고 결정하는, 모션 제어 서버.
  6. 제5항에 있어서,
    상기 프로세서는 추가로,
    상기 보드 플롯 핑거프린트의 크기의 제1 최소값 및 상기 베이스라인 보드 플롯 핑거프린트의 제2 최소값을 검출하고; 그리고
    상기 제1 최소값이 상기 제2 최소값과는 상이한 설정 백분율보다 크다는 것에 기초하여, 상기 로봇 링키지의 불량 관성(bad inertia)을 검출하는, 모션 제어 서버.
  7. 제5항에 있어서,
    상기 프로세서는 추가로,
    상기 베이스라인 보드 플롯 핑거프린트의 대응하는 크기와 비교된 상기 보드 플롯 핑거프린트의 크기의 증가를 검출하고; 그리고
    상기 크기의 증가가 임계 크기 차이를 초과한다고 결정하는 것에 기초하여 상기 벨트의 잘못된 장력(incorrect tension)을 검출하는, 모션 제어 서버.
  8. 제5항에 있어서,
    상기 프로세서는 추가로,
    상기 보드 플롯 핑거프린트 및 상기 베이스라인 보드 플롯 핑거프린트에서 최대 크기로 끝나는 크기의 증가를 검출하고;
    상기 보드 플롯 핑거프린트에 대한 상기 최대 크기에서 진폭의 플래토(plateau)를 검출하고; 그리고
    상기 플래토를 검출하는 것에 대한 응답으로 상기 결함이 폐루프 불안정성(closed loop instability)이라고 결정하는, 모션 제어 서버.
  9. 제1항에 있어서,
    상기 핑거프린트는 보드 플롯 핑거프린트이고, 상기 프로세서는 추가로,
    제2 모터를 제어하는 제2 증폭기에 상기 토크 커맨드 및 상기 교번 신호 파를 또한 공급하고 - 상기 제2 모터는 또한 상기 로봇 링키지를 구동함 -;
    상기 제2 증폭기로부터, 상기 샘플링 레이트에 따라 그리고 상기 일정 시간 기간에 걸친 상기 복수의 시간 스텝들의 각각의 시간 스텝에서 상기 제2 모터의 제2 순간적 토크 값 및 상기 로봇 링키지의 제2 순간적인 기계적 파라미터 값을 수신하고;
    상기 제2 순간적 토크 값들의 합계 및 상기 제2 순간적인 기계적 파라미터 값들의 합계를 상기 메모리에 저장하고;
    상기 교번 신호 파의 상기 제1 주파수에 대해, 상기 제2 순간적인 기계적 파라미터 값들의 합계와 상기 제2 순간적 토크 값들의 합계 간의 제2 크기 및 위상 시프트를 결정하고; 그리고
    상기 보드 플롯 핑거프린트를 생성하기 위해, 상기 프로세서는 추가로 주파수 응답 분석의 수행 시, 상기 다수의 주파수들에 걸쳐, 상기 크기 및 위상 시프트 데이터의 그리고 상기 제2 크기 및 위상 시프트 데이터의 합계를 사용하는, 모션 제어 서버.
  10. 방법으로서,
    모션 컨트롤러에 의해, 모터를 제어하는 3중 루프 증폭기(triple-loop amplifier)에 토크 커맨드를 공급하는 단계 - 상기 모터는 로봇 링키지를 구동함 -;
    상기 모션 컨트롤러에 의해 상기 토크 커맨드에, 상기 모터 및 상기 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 포함시키는 단계;
    상기 3중 루프 증폭기로부터, 상기 모션 컨트롤러에 의해, 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 상기 모터의 순간적 토크 값 및 상기 로봇 링키지의 순간적 속도 값을 수신하는 단계;
    상기 모션 컨트롤러에 의해 메모리에, 상기 순간적 토크 값들의 합계 및 상기 순간적 속도 값들의 합계를 저장하는 단계;
    상기 모션 컨트롤러에 의해 상기 교번 신호 파의 제1 주파수에 대해, 상기 순간적 속도 값들의 합계와 상기 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하는 단계;
    상기 모션 컨트롤러에 의해, 상기 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 핑거프린트를 생성하는 단계; 및
    상기 핑거프린트를 사용하여, 상기 모터 및 상기 로봇 링키지의 주파수 응답 진단을 수행하는 단계를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 공급하는 단계 및 상기 포함시키는 단계는 상기 토크 커맨드 및 상기 교번 신호 파를 상기 3중 루프 증폭기의 전류 컨트롤러에 공급하는 단계를 포함하고, 상기 방법은,
    상기 교번 신호 파의 주파수를 변경하는 단계;
    상기 수신하는 단계, 상기 저장하는 단계 및 상기 결정하는 단계를 상기 다수의 주파수들 각각마다 반복하여, 상기 크기 및 위상 시프트 데이터의 합계를 생성하는 단계; 및
    상기 크기 및 위상 시프트 데이터의 합계를 상기 메모리의 데이터 구조체에 저장하는 단계를 더 포함하는, 방법.
  12. 제10항에 있어서,
    상기 핑거프린트는 보드 플롯 핑거프린트이고, 상기 방법은,
    상기 모션 컨트롤러에 의해, 상기 보드 플롯 핑거프린트를 상기 모터 및 상기 링키지에 대해 이전에 생성된 베이스라인 보드 플롯 핑거프린트와 비교하는 단계; 및
    상기 비교하는 단계에 기초하여, 상기 모터, 상기 로봇 링키지, 또는 상기 모터를 상기 로봇 링키지에 결합하는 벨트 중 하나에 결함이 있다고 결정하는 단계를 더 포함하는, 방법.
  13. 제12항에 있어서,
    상기 결정하는 단계는,
    상기 보드 플롯 핑거프린트의 크기의 제1 최소값 및 상기 베이스라인 보드 플롯 핑거프린트의 제2 최소값을 검출하는 단계; 및
    상기 제1 최소값이 상기 제2 최소값과는 상이한 설정 백분율보다 크다는 것에 기초하여, 상기 로봇 링키지의 불량 관성을 검출하는 단계를 포함하는, 방법.
  14. 제12항에 있어서,
    상기 결정하는 단계는,
    상기 베이스라인 보드 플롯 핑거프린트의 대응하는 크기와 비교된 상기 보드 플롯 핑거프린트의 크기의 증가를 검출하는 단계; 및
    상기 크기의 증가가 임계 크기 차이를 초과한다고 결정하는 것에 기초하여 상기 벨트의 잘못된 장력을 검출하는 단계를 포함하는, 방법.
  15. 제12항에 있어서,
    상기 결정하는 단계는,
    상기 보드 플롯 핑거프린트 및 상기 베이스라인 보드 플롯 핑거프린트에서 최대 크기로 끝나는 크기의 증가를 검출하는 단계;
    상기 보드 플롯 핑거프린트에 대한 상기 최대 크기에서 진폭의 플래토를 검출하는 단계; 및
    상기 플래토를 검출하는 것에 대한 응답으로 상기 결함이 폐루프 불안정성이라고 결정하는 단계를 포함하는, 방법.
  16. 제10항에 있어서,
    상기 핑거프린트는 보드 플롯 핑거프린트이고, 상기 방법은,
    제2 모터를 제어하는 제2 증폭기에 상기 토크 커맨드 및 상기 교번 신호 파를 또한 공급하는 단계 - 상기 제2 모터는 또한 상기 로봇 링키지를 구동함 -;
    상기 제2 증폭기로부터, 상기 샘플링 레이트에 따라 그리고 상기 일정 시간 기간에 걸친 상기 복수의 시간 스텝들의 각각의 시간 스텝에서 상기 제2 모터의 제2 순간적 토크 값 및 상기 로봇 링키지의 제2 순간적인 기계적 파라미터 값을 수신하는 단계;
    상기 제2 순간적 토크 값들의 합계 및 상기 제2 순간적인 기계적 파라미터 값들의 합계를 상기 메모리에 저장하는 단계;
    상기 교번 신호 파의 상기 제1 주파수에 대해, 상기 제2 순간적인 기계적 파라미터 값들의 합계와 상기 제2 순간적 토크 값들의 합계 간의 제2 크기 및 위상 시프트를 결정하는 단계; 및
    주파수 응답 분석의 수행 시, 상기 다수의 주파수들에 걸쳐, 상기 크기 및 위상 시프트 데이터의 그리고 상기 제2 크기 및 위상 시프트 데이터의 합계를 사용하여 상기 보드 플롯 핑거프린트를 생성하는 단계를 더 포함하는, 방법.
  17. 모션 컨트롤러의 프로세싱 디바이스에 의해 실행될 때, 상기 프로세싱 디바이스로 하여금 복수의 동작들을 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 복수의 동작들은,
    모터를 제어하는 증폭기에 토크 커맨드를 공급하는 것 - 상기 모터는 로봇 링키지를 구동함 -;
    상기 토크 커맨드에, 상기 모터 및 상기 로봇 링키지의 주파수 응답을 테스트할 교번 신호 파를 포함시키는 것;
    상기 증폭기로부터, 샘플링 레이트에 따라 그리고 일정 시간 기간에 걸친 복수의 시간 스텝들의 각각의 시간 스텝에서 상기 모터의 순간적 토크 값 및 상기 로봇 링키지의 순간적 포지션 값을 수신하는 것;
    상기 순간적 토크 값들의 합계 및 상기 순간적 포지션 값들의 합계를 메모리에 저장하는 것;
    상기 일정 시간 기간에 걸친 상기 순간적 포지션 값들에 기초하여, 상기 로봇 링키지의 속도 값들의 합계를 계산하는 것;
    상기 교번 신호 파의 제1 주파수에 대해, 상기 속도 값들의 합계와 상기 순간적 토크 값들의 합계 간의 크기 및 위상 시프트를 결정하는 것;
    상기 모션 컨트롤러에 의해, 상기 교번 신호 파의 다수의 주파수들에 대한 크기 및 위상 시프트 데이터의 합계를 사용하여 핑거프린트를 생성하는 것; 및
    상기 핑거프린트를 사용하여, 상기 모터 및 상기 로봇 링키지의 주파수 응답 진단을 수행하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  18. 제17항에 있어서,
    상기 핑거프린트는 보드 플롯 핑거프린트이고, 상기 복수의 동작들은,
    상기 모션 컨트롤러에 의해, 상기 보드 플롯 핑거프린트를 상기 모터 및 상기 링키지에 대해 이전에 생성된 베이스라인 보드 플롯 핑거프린트와 비교하는 것; 및
    상기 비교하는 것에 기초하여, 상기 모터, 상기 로봇 링키지, 또는 상기 모터를 상기 로봇 링키지에 결합하는 벨트 중 하나에 결함이 있다고 결정하는 것을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  19. 제18항에 있어서,
    상기 복수의 동작들은,
    상기 보드 플롯 핑거프린트의 크기의 제1 최소값 및 상기 베이스라인 보드 플롯 핑거프린트의 제2 최소값을 검출하는 것; 및
    상기 제1 최소값이 상기 제2 최소값과는 상이한 설정 백분율보다 크다는 것에 기초하여, 상기 로봇 링키지의 불량 관성을 검출하는 것을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  20. 제18항에 있어서,
    상기 복수의 동작들은,
    상기 보드 플롯 핑거프린트 및 상기 베이스라인 보드 플롯 핑거프린트에서 최대 크기로 끝나는 크기의 증가를 검출하는 것;
    상기 보드 플롯 핑거프린트에 대한 상기 최대 크기에서 진폭의 플래토를 검출하는 것; 및
    상기 플래토를 검출하는 것에 대한 응답으로 상기 결함이 폐루프 불안정성이라고 결정하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237003094A 2020-09-15 2021-09-13 서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단 KR102599476B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/948,363 2020-09-15
US16/948,363 US11314232B2 (en) 2020-09-15 2020-09-15 Frequency response diagnostics for characterizing servo controlled mechanisms
PCT/US2021/050111 WO2022060672A1 (en) 2020-09-15 2021-09-13 Frequency response diagnostics for characterizing servo controlled mechanisms

Publications (2)

Publication Number Publication Date
KR20230025921A true KR20230025921A (ko) 2023-02-23
KR102599476B1 KR102599476B1 (ko) 2023-11-06

Family

ID=80626576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237003094A KR102599476B1 (ko) 2020-09-15 2021-09-13 서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단

Country Status (5)

Country Link
US (1) US11314232B2 (ko)
KR (1) KR102599476B1 (ko)
CN (1) CN116097185B (ko)
TW (1) TW202228956A (ko)
WO (1) WO2022060672A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116533253B (zh) * 2023-07-03 2023-09-19 佛山智能装备技术研究院 一种基于反馈电流频谱分析的工业机器人故障诊断方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817377A2 (en) * 1996-06-26 1998-01-07 United Technologies Corporation Increased bandwidth for plants with resonant modes using nonlinear notch filters
US20110074330A1 (en) * 2009-09-29 2011-03-31 George Ellis Auto-tune of a control system based on frequency response
KR101297755B1 (ko) * 2012-11-08 2013-08-22 주재훈 구동기용 다목적 하중 모의 시험기 및 이를 이용한 모의 시험 시스템
US20160018466A1 (en) * 2014-07-18 2016-01-21 Rockwell Automation Technologies, Inc. Drive performance measurement
US20180067086A1 (en) * 2016-09-08 2018-03-08 Linestream Technologies Method for automatically identifying resonance

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3584276A (en) * 1969-05-13 1971-06-08 Allis Chalmers Mfg Co Vehicle electric motor drive system
US3720863A (en) * 1969-08-27 1973-03-13 Allis Chalmers Electrically driven vehicle steered by control of power and speed of tractive elements
US3577050A (en) * 1969-08-27 1971-05-04 Allis Chalmers Mfg Co Vehicle driven by synchronous motors
US3845372A (en) * 1970-11-19 1974-10-29 Allis Chalmers Mfg Co Circuit for starting electric motor from standstill with maximum torque
US4131936A (en) * 1977-03-07 1978-12-26 Westinghouse Electric Corp. Symmetrical phase shifting apparatus, digital delaying device used therein and harmonic neutralized inverter system using the apparatus
US4454426A (en) * 1981-08-17 1984-06-12 New Process Industries, Inc. Linear electromagnetic machine
US4484154A (en) * 1981-09-04 1984-11-20 Rockwell International Corporation Frequency control with a phase-locked-loop
CN1086808C (zh) * 1998-01-14 2002-06-26 西安交通大学 基于扭振的回转机械状态监测方法
CA2603916A1 (en) * 2005-04-04 2006-10-12 Fisher-Rosemount Systems, Inc. Statistical processing methods used in abnormal situation detection
US7531973B2 (en) * 2005-05-31 2009-05-12 Rockwell Automation Technologies, Inc. Wizard for configuring a motor drive system
US9104650B2 (en) * 2005-07-11 2015-08-11 Brooks Automation, Inc. Intelligent condition monitoring and fault diagnostic system for preventative maintenance
CN1869625B (zh) * 2006-06-30 2010-05-12 中国船舶重工集团公司第七一一研究所 伺服电机式动态扭矩发生系统及其方法
US8831755B2 (en) * 2010-08-25 2014-09-09 Socovar, S.E.C. System and method for feedback control
US10033319B2 (en) * 2015-09-01 2018-07-24 Rockwell Automation Technologies, Inc. Method for tuning a motor drive using frequency response
GB2551324B (en) * 2016-06-08 2021-12-22 Cambridge Entpr Ltd Measurement system using a resonant sensor and method of operating a resonant sensor based measurement system
US10099377B2 (en) * 2016-06-29 2018-10-16 Applied Materials, Inc. Methods and systems providing misalignment correction in robots
JP6953690B2 (ja) * 2016-08-10 2021-10-27 株式会社ジェイテクト 解析システム
JP6394724B2 (ja) * 2017-03-09 2018-09-26 オムロン株式会社 サーボパラメータ調整装置およびサーボパラメータ調整方法
US10378951B2 (en) * 2017-04-10 2019-08-13 Rockwell Automation Technologies, Inc. System and method of integrated vibration monitoring in motor drives
CA3122578A1 (en) * 2018-12-17 2020-06-25 Saudi Arabian Oil Company Monitoring rig activities

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817377A2 (en) * 1996-06-26 1998-01-07 United Technologies Corporation Increased bandwidth for plants with resonant modes using nonlinear notch filters
US20110074330A1 (en) * 2009-09-29 2011-03-31 George Ellis Auto-tune of a control system based on frequency response
KR101297755B1 (ko) * 2012-11-08 2013-08-22 주재훈 구동기용 다목적 하중 모의 시험기 및 이를 이용한 모의 시험 시스템
US20160018466A1 (en) * 2014-07-18 2016-01-21 Rockwell Automation Technologies, Inc. Drive performance measurement
US20180067086A1 (en) * 2016-09-08 2018-03-08 Linestream Technologies Method for automatically identifying resonance

Also Published As

Publication number Publication date
KR102599476B1 (ko) 2023-11-06
CN116097185B (zh) 2024-03-05
US11314232B2 (en) 2022-04-26
CN116097185A (zh) 2023-05-09
WO2022060672A1 (en) 2022-03-24
TW202228956A (zh) 2022-08-01
US20220083026A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US11650581B2 (en) Intelligent condition monitoring and fault diagnostic system for preventative maintenance
US8356207B2 (en) Intelligent condition monitoring and fault diagnostic system for preventative maintenance
US11148282B2 (en) Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device
JP6469065B2 (ja) 機械学習装置及び加工時間予測装置
US7679299B2 (en) Techniques for redundancy and fault tolerance in high demand machine safety applications
KR20010031303A (ko) 로봇 제어 장치와 그 제어 방법
US10379531B2 (en) Test system for performing machine test
KR102599476B1 (ko) 서보 제어 메커니즘들을 특성화하기 위한 주파수 응답 진단
CN111712359B (zh) 机器人控制装置、异常诊断方法及计算机可读记录媒体
JP2010513039A (ja) コントロール・システム
TW202019640A (zh) 減速機系統、對驅動單元之指令值之修正方法、修正資料之產生方法、及減速機系統之製造方法
CN110888398B (zh) 控制装置、cnc装置以及控制方法
JP6721012B2 (ja) モータ制御システム
JP2017076392A (ja) 非周期的に更新されるコントローラにおける速度に基づく制御、プロセスを制御する方法、プロセスコントローラ
JP6796287B2 (ja) モータ制御システム
KR102272872B1 (ko) 반도체 제조공정 로봇 진단 방법
JP7080446B1 (ja) 多軸制御調整装置、多軸制御調整システム、多軸制御調整方法
Girs et al. Development of a Technique for Automated Control of Actuators of Robotic Systems Subject to Aperiodic Dynamic Loads

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant