KR102285648B1 - 반복 모션 제어 방법 - Google Patents

반복 모션 제어 방법 Download PDF

Info

Publication number
KR102285648B1
KR102285648B1 KR1020187034056A KR20187034056A KR102285648B1 KR 102285648 B1 KR102285648 B1 KR 102285648B1 KR 1020187034056 A KR1020187034056 A KR 1020187034056A KR 20187034056 A KR20187034056 A KR 20187034056A KR 102285648 B1 KR102285648 B1 KR 102285648B1
Authority
KR
South Korea
Prior art keywords
velocity
acceleration
motion
motor
time
Prior art date
Application number
KR1020187034056A
Other languages
English (en)
Other versions
KR20190051895A (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 KR20190051895A publication Critical patent/KR20190051895A/ko
Application granted granted Critical
Publication of KR102285648B1 publication Critical patent/KR102285648B1/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/1628Programme controls characterised by the control loop
    • 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/416Numerical 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 control of velocity, acceleration or deceleration
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • 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/406Numerical 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 monitoring or safety
    • G05B19/4062Monitoring servoloop, e.g. overload of servomotor, loss of feedback or reference
    • 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/406Numerical 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 monitoring or safety
    • G05B19/4063Monitoring general control system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • B25J9/12Programme-controlled manipulators characterised by positioning means for manipulator elements electric
    • B25J9/126Rotary actuators
    • 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/32Operator till task planning
    • G05B2219/32404Scada supervisory control and data acquisition
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42244Enter acceleration, jerk, generator outputs acceleration, speed, position by integration
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43065Limitation of jerk
    • 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/49Nc machine tool, till multiple
    • G05B2219/490233-D printing, layer of powder, add drops of binder in layer, new powder

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)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Control Of Position Or Direction (AREA)
  • Feedback Control In General (AREA)
  • Control Of Velocity Or Acceleration (AREA)

Abstract

모션 제어하에 있는 시스템으로부터의 실시간 피드백을 사용하여 다음 웨이포인트의 원하는 위치 및 원하는 속도에 도달하기 위해, 가속도의 운동 미분인 수치적 "저크(jerk)"를 반복적으로 계산하는 계산 모션 엔진의 방법 및 장치가 기술되어 있다. 모션 엔진의 출력은 단지 원하는 가속도일 뿐이므로, 위치 또는 속도의 중간 계산없이 모터 드라이버로 전달된다. 두 번째 내부 피드백 루프는 비선형 보정 테이블을 사용할 수 있는 모션 엔진의 가속도 출력을 기반으로 모터 샤프트에서 원하는 가속 또는 토크를 유지한다. 위치와 속도를 모두 포함하는 웨이포인트는 모션 엔진에 대한 입력이다. 다음 웨이포인트까지의 시간은 입력으로 제공되기보다는 계산된다. 다음 웨이포인트로의 이동 최적화는 이동 중 가장 완만한 속도 변화를 기반으로 한다. 실시예는 기계적, 2축 SCARA 암 모션 시스템을 포함한다.

Description

반복 모션 제어 방법
본 출원은 2016년 4월 27일자로 출원된 미국 가출원 제62/328,547호의 우선권을 주장하며, 종래 기술은 "Katz"의 US5770829A; "Tian"의 US9041337B2; "Egi"의 US20130197688A; 및 "Goor"의 US4769583A를 포함한다.
본 발명의 분야는 소정의 경로를 따라 물체를 이동시키기 위한 장치이다. 보다 상세하게, 상기 분야는 기계식 모션 컨트롤 및 비기계식 프로세스를 포함한 폐루프 시스템에서의 모션 컨트롤러이다. 물체는 툴 헤드일 수 있고, 경로는 임의의 개수의 축에 있는 머신 경로일 수 있다. 예컨대, 일반적인 3D 프린터에서, 2D 면의 벡터 패턴에 프린트 헤드를 구동시킴으로써 각 증분층이 세워진다. 고정된 워크피스 위로 툴 헤드를 구동시키는 것과 마찬가지로, 워크피스는 고정된 툴 헤드 아래에서도 구동될 수 있다.
종래 기술은 각각의 이동 명령이 기계의 하드웨어에 의해 직접 실행되거나 컨트롤러에 의해 작은 단계로 분리되는 G-코드와 같은 종종 판독 가능한 텍스트 및 숫자 형식의 이동 명령 시퀀스를 사용하며, 이러한 단계는 구동장치에 출력하는 데 사용된다. 모터는 펄스, 마이크로스텝, 펄스-폭-변조(PWM) 또는 아날로그 전류 또는 전압 파형에 의해 구동되는 스테퍼 또는 서보일 수 있다. 최종 모터 제어 출력을 제외하고, G-코드 이전의 모든 데이터 처리는 실시간이 아니라 사전에 수행될 수 있다. 종래 기술은 피제어 시스템에 대해 원하는 위치 또는 속도 웨이포인트를 계산한다.
종래 기술은 PID(Proportional-Integral-Differential) 컨트롤러의 사용을 포함한다.
이동 명령을 필수 하위 레벨의 모터 제어 출력으로 변환하는 데 필요한 브레이크다운을 "모션 엔진"이라 하며, 방법 및 방법 단계를 실행하는 기계 모두를 말한다. 계산 요구사항들이 일반적으로 많기 때문에, 높은 계산 정확도와 고속 처리가 모두 필요하다.
또한, 계산 "모션 엔진"을 통한 이동 명령들로부터 종래 기술의 연산 순서(데이터 처리 단계들)는 개방-루프 시퀀스이다. 즉, 계산 순서는 툴 헤드(또는 다른 구동 객체)의 임의의 실제 측정된 실시간 위치 또는 시스템의 다른 파라미터를 고려하지 않고 상기 정보를 사용하여 모션 엔진 또는 모터 제어 출력 중 어느 하나의 출력을 동적으로 변경한다.
종래 기술은 모션 엔진에서 실제 모터까지 개방루프 시스템을 사용할 수 있다. 예로는 스테퍼 모터에 대한 스텝(마이크로스텝 포함) 또는 서보 모터에 대한 전압 또는 전류가 있다. PWM 또는 마이크로스텝핑과 같은 변조는 개방루프의 토폴로지를 변경하지 않는다. 모터에서의 기본 폐쇄루프 제어는 스테퍼 모터에서 누락된 스텝의 감지 또는 스텝 시간의 측정을 포함할 수 있다. 폐루프 모터 제어는 모션 엔진으로부터 원하는 위치 명령을 유지하기 위해 위치를 측정하거나, 모션 엔진으로부터 원하는 속도를 유지하기 위해 속도를 측정할 수 있다.
일부 종래 기술은 툴 헤드 또는 워크피스로부터의 피드백을 모션 컨트롤러에 대한 입력으로 사용한다. 그러나, 이러한 시스템은 제어 루프의 안정성과 모션 명령과 실제 툴 헤드 위치 사이에 상대적으로 긴 지연을 필요로 하므로 속도가 느려지는 경향이 있다. 이는 입력이 급격하게 변하는 PID 컨트롤러의 단점으로 알려져 있다. 또한, 이러한 피드백 시스템은 복잡하기 때문에, 툴 헤드에 직접 매우 높은 정밀 측정을 필요로 한다. 기계 강성 요건은 일반적으로 그러한 기계를 크고 비싸게 한다.
종래 기술의 또 다른 단점은 피드백 루프에서 달성하기 위한 목표로서(위치와 같은) 단 하나의 스칼라만을 사용한다는 것이다.
종래 기술의 피드백 방법 및 장치의 또 다른 단점은 제어하에 있는 시스템의 이전 동작 또는 상태에 대한 "메모리"를 갖는다는 것이다. 시간에 따라 입력이 변하는 경우, 이러한 "메모리"는 큰 에러를 발생시키거나 안정 시간을 늦출 수 있다. 예를 들어, PID 컨트롤러의 I(integration)는 바로 그 정의에 의해 "메모리"이다.
종래 기술의 또 다른 단점은 PID와 같은 방법이 비직교 축상에 별도의 피드백 루프로서 구성될 때 잘 수행되지 않는다는 것이다. 예를 들어, 한 축의 모션이 "드리프트", "오프셋" 또는 다른 에러로 나타나며 다른 축의 모션에 영향을 줄 수 있다. 이러한 에러를 보완하려는 시도는 느리고 나중에 다른 축이 다른 모션에 있을 때 보상으로 인해 오류가 발생한다.
일부 종래 기술은 "뱅뱅(bang-bang)" 컨트롤러와 같은 2진수 또는 3진수의 형태로 저크(jerk)를 고려한다.
종래 기술의 또 다른 단점은 피드백을 생성하는 데 알려진 시스템 속도 및 가속도를 이용하지 않는다는 것이다. PID 컨트롤러와 같은 일부 컨트롤러는 가령 I(적분) 항을 사용해 속도와 비슷한 값을 "계산"하지만, 이 값은 실제 실시간 속도의 측정이라기 보다 계산된 것이므로, 에러, 노이즈, 안정성 문제가 있을 수 있고 시스템 변경에 대한 응답이 느려질 수 있다.
기계 시스템을 시나리오, 실시 및 실시예라고 하지만, 청구범위는 카메라 제어, 조명 제어 및 동적인 생물학적 시스템의 애플리케이션을 포함하는 산업 프로세스 및 비산업 프로세스를 포함하는 비기계식 시스템을 포함한다.
본 발명의 실시예는 종래 기술의 상기 단점을 극복한다.
특히, 모션 엔진의 일 실시예는 도함수의 미적분 정의를 사용하여 가속도의 모션 미분인 "저크(jerk)" 수치를 반복적으로 계산한다. 이들 실시예는 각각 "반복 저크(iterative jerk)" 방법 또는 장치를 실행 또는 구현하는 것으로 언급한다. 이러한 반복 단계는 3D 프린터와 같은 기계 시스템의 피드백을 사용하여 모션 엔진의 출력 및 모터 제어 출력의 품질을 향상시킨다.
일 실시예는 필요한만큼 많은 축에서 위치 및 속도 모두를 포함하는 타겟, 목표점 또는 "웨이포인트"로서 각 "이동"을 본다. 레이트(rate)와 속력은 속도를 대체한 용어다. 타겟 또는 목표는 툴 헤드가 웨이포인트 위치 및 웨이포인트 속도에 도달하는 것이다. 모션 엔진의 각 반복에서, 현재 툴 헤드 위치, 속도 및 가속도, 타겟 위치 및 타겟 속도와 같은 기계의 현재 상태와 관련된 데이터만 모션 엔진 방법 단계에 의해 고려된다. 즉, 실제로 따른 경로가 뭐였든지 간에, 즉 현재 웨이포인트에 대한 현재 경로의 모션 히스토리는 모션 제어 엔진 방법과 관련이 없거나 사용되지 않는다.
실시예는 목표, 입력 및 이점으로서 타겟 위치 및 타겟 속도 모두를 사용한다.
실시예들은 실시간 측정 위치, 측정 속도 및 입력으로서 측정 속도를 사용한다; 실시예들은 실시간 위치 피드백을 기초로 실시간으로 계산된 속도 또는 가속도를 사용할 수 있다.
실시예들은 모션 엔진의 출력을 단지 축마다 선형으로 완만하게 변하는 가속도 스칼라로서 사용한다. 일부 실시예는 먼저 저크를 계산 한 후, 이를 현재 가속도 값에 적용하여 다음 반복을 위한 출력 가속도 값 및 새로운 가속도 값을 생성한다. 이 가속도 값은 실시간 "명령"으로서 모터 드라이버로 전송되고, 상기 모터 드라이버는 원하는 명령된 가속도를 실행하고 유지하기 위해 개방루프 또는 폐쇄루프일 수 있다. 참고로, 중간 위치 또는 속도는 모션 제어 엔진에서 모터 컨트롤러로의 명령으로 사용되지 않는다. 모터 컨트롤러의 다른 명칭은 모터 드라이버이다.
실시예는 모션 엔진에 대한 입력으로서 제공되는 다음 웨이포인트까지의 이동 시간이 없다. 오히려, 실시예는 다음 웨이포인트로의 이동 시간을 계산한다. 이러한 계산은 최적화, 비반복적 계산 또는 추정일 수 있다. 한가지 최적화는 현재 위치 또는 웨이포인트에서 다음 웨이포인트 또는 타겟 웨이포인트까지속도 값의 완만함, 즉, 선형성을 극대화하는 이동 시간을 생성하는 것이다. 실시예들은 모션 엔진에 대한 입력으로서 최대 속도 제한이 없다. 실시예는 직교 좌표를 2축의 SCARA 암 모션 시스템에 의해 사용되는 좌표와 같이 극좌표로 변환한다. 실시예는 비선형 및 비직교 시스템을 포함하는 다른 2축 및 다축 좌표 시스템을 포함한다.
비록 "수학", "수학식" 및 "알고리즘"이 기술적으로 사용되었으나, 기능적인 특허 가능한 방법 및 장치와 별개로 어떠한 청구범위 주장을 하지 않는 것에 유의해야 한다. 또한 소프트웨어와 관련된 모든 청구범위도 마찬가지이다. 이러한 범위 제한은 적절한 청구범위 구성을 위해 필요하다.
본 발명의 내용에 포함됨.
도 1은 장치 및 방법 모두의 실시예의 블록도를 도시한 것이다.
도 2는 일 실시예를 포함하는 제어 시스템의 블록도를 도시한 것이다.
도 3은 일 실시예를 포함하는 다른 제어 시스템의 블록도를 도시한 것이다.
도 4는 종래 기술을 도시한 것이다.
도 5는 스프레드시트 형태로 방법의 예시적인 실행의 초기 값을 개시하는 것을 도시한 것이다.
도 6은 도 5의 방법의 예시적인 실행에 대한 반복 실행을 도시한 것이다.
도 7a는 도 6의 방법의 예시적인 실행으로부터의 위치 그래프를 도시한 것이다.
도 7b는 도 6의 방법의 예시적인 실행으로부터의 속도의 그래프를 도시한 것이다.
도 8a는 도 6의 방법의 예시적인 실행으로부터의 가속도의 그래프를 도시한 것이다.
도 8b는 도 6의 방법의 예시적인 실행으로부터의 저크(jerk)의 그래프를 도시한 것이다.
도 9는 도 5 - 8b에서 사용된 수학식을 도시한 것이다.
도 10은 방법의 다른 예시적인 실행을 위한 스프레드시트의 일부를 도시한 것이다.
도 11은 CAD 시스템으로부터 실행까지의 데이터 흐름의 블록도를 도시한 것이다.
모든 도면, 논의 및 시나리오는 비제한적인 예시적인 실시예다.
도 1은 장치 및 방법의 실시예의 블록도를 도시한 것이다. 원래 출원된 청구항 1과 함께 이 도면을 고려하는 것이 유용하다.
시스템 프로세스(71)는 몇몇 청구된 실시예의 일부이며, 다른 실시예들의 일부가 아니다. 어느 경우에나, 이는 실시예에 의한 폐쇄루프 제어 하의 시스템이나, 전형적으로 반드시 기계 시스템일 필요는 없다. 도시된 바와 같이, 시스템은 시스템 프로세스(71)에 적절하거나 외부에 있을 수 있는 출력, 측정 또는 센서 값 또는 계산으로서, 현재 위치, 현재 속도 및 현재 가속도를 제공한다. 이 3가지 출력 중 어느 것도 직접 측정되기 보다는 센서 데이터에서 계산될 수 있다. 예를 들어, 샤프트 위치 센서와 같은 적절한 위치 센서로부터의 데이터는 현재 속도 및 현재 가속도를 계산하는데 사용될 수 있다.
실시예에 대한 입력은 우측 상단에 도시된 타겟 위치 및 타겟 속도이다. 종종 타겟 위치와 타겟 속도의 조합을 다음 웨이포인트 또는 "목표"라 한다. 본 발명의 주요 신규성 및 이점은 타겟 위치 및 타겟 속도가 모놀리식 웨이포인트(monolithic waypoint)로서 도달해야 한다는 것에 주목하라. 이를 성공적으로 달성하는 것이 실시예의 목표이다.
본 발명의 주요 신규성은 출력으로서 저크(78) 또는 가속도(82)를 생성하는 요소 또는 단계들(73, 74, 75, 76, 77, 78 및 79)로 도시된 바와 같은 방법이며, 또한 시스템 또는 프로세스(71)로 되돌려 보내는 위치, 위치 오차, 속도 또는 속도 오차 신호의 생성이 없다.
도면에서 사용된 용어 "t"는 추정되거나 계산된 값이다.
감산기 모듈(72)은 타겟 위치와 현재 위치 사이의 위치 차이 값을 생성한다. 이는 적어도 종래 기술의 맥락에서 위치에 대해서만 "에러" 신호로 볼 수 있다.
모듈(73)은 위치 차이 값에 4를 곱하여 거리 단위로 스케일링된 위치 차이 값을 생성한다.
모듈(74)은 현재 속도에 3을 곱한 다음, 반복시간을 곱하여, 거리 단위로 스케일링된 현재 속도 값을 생성한다.
모듈(75)은 타겟 속도에 반복시간을 곱하여 거리 단위로 스케일링된 타겟 속도 값을 생성한다.
모듈(76)은 4개의 값: 즉, (i) 거리 단위로 현재 가속도에 반복시간 제곱을 곱한 값; (ii) 스케일링된 위치 차이; (ⅲ) 스케일링된 현재 속도에 반복시간을 곱한 값; 및 (iv) 타겟 속도에 반복시간을 곱한 값을 합산한다. 이 4개의 거리 단위 값의 합은 반복시간 세제곱으로 나누어져 저크(가속도의 미분) 단위로 미보정 저크 합을 생성한다.
모듈(77)은 미보정 저크 합에 -6을 곱하여 78로 표시된 스케일링된 저크값을 생성한다. 78에서 이 값은 실시예의 한 출력이다. 이 저크값(78)은 가속도 또는 토크(82)를 생성하기 위해 반복시간 간격 또는 시간 간격의 적분과 같은 시간 간격으로 곱해질 수 있다. 이 가속도 값은 가산 모듈 또는 단계(80)에서 현재 가속도에 선택적으로 더해진 다음 원하는 가속도가 되며 그런 후, 시스템 또는 프로세스(71)에 1차 피드백 신호 또는 유일한 피드백 신호로서 피드백된다. 선택적 요소(80, 81)는 원하는 가속도를 실제로 생성하기 위해 모터 전류 또는 위상각과 같은 시스템 또는 프로세스로의 실제 구동신호에 더 가깝게 매치시키기 위해 계산 결과를 선형화하는 것처럼 가속도를 수정할 수 있다
이러한 저크값을 가속도 값으로 변환하여 시스템 또는 프로세스(71)로 피드백을 계속할 경우, 저크(78)는 모듈(79)에서 반복시간이 곱해져 저크를 가속도 단위로 변환한 다음, 모듈(80)의 현재 가속도에 선택적으로 더해져 "피드백 가속도"를 생성한다. 이는 다음 반복주기에 대한 "타겟 가속도"로 볼 수 있다. 이상적으로, 시스템 또는 프로세스(71)는 이 피드백 가속도를 사용하여 가속화한다. 완벽한 시스템에서, 각 반복시 시스템 또는 프로세스(71)로부터의 현재 가속도 출력은 이전 반복으로부터의 입력 피드백 가속도와 동일할 것이다.
용어 "xt"는 t를 곱한 것을 의미한다.
실시예들은 도시된 모듈들을 결합할 수 있음에 주목하라. 모듈 및 모듈의 계산은 동시에 또는 순차적으로 또는 임의의 조합으로 동작할 수 있다. 계산은 디지털 또는 아날로그 또는 혼합일 수 있다. 계산은 프로세서, 마이크로컨트롤러, CPU, MPU, DSP, FPGA, 하드와이어드 로직 또는 다른 수단에 의해 수행될 수 있다.
이제 도 2를 참조하면, 예시적인 실시예가 도시되어 있다. 구현은 연속적이거나 불연속적일 수 있다. 구현은 마이크로컨트롤러, DSP 칩, FPGA, 하드와이어드 전자장치 등을 사용할 수 있다. 당업자가 알고 있는 바와 같이, 요소 및 단계를 구현하는 많은 상이한 기술 및 방법이 있다. 개별 요소 또는 단계는 FGPA 또는 다른 칩과 같은 단일 물리적 요소에 결합될 수 있다. 요소와 단계 간의 연결성은 직접적 또는 간접적일 수 있으며, 신호는 유선을 통해 전달되거나 광범위한 기술, 속도 및 거리로 전달되는 디지털 값일 수 있다.
피제어 시스템은 117로 도시되어 있다. 이는 본 명세서의 다른 곳에서 설명된 다른 많은 시스템의 머신 툴, 모터일 수 있다. 116은 피드백 프로세스로, 전형적으로 계산부이다. 예를 들어, 이는 PID 컨트롤러일 수 있다. 이는 다음 형태의 수학식일 수 있다.
j = -(6 *(4 * p-4 * pt + a *(tt^2) + 3 * tt * v +(tt) * vt)) /(tt^3)
여기서 j는 저크값, p는 위치, a는 가속도, v는 속도, pt는 타겟 위치, vt는 타겟 속도, tt는 타겟 위치에 도달하기까지 남은 시간이다. 저크(j)는 반복 간격 시간이 곱해지거나 요소(116)의 출력일 수 있는 가속도를 생성하기 위해 시간주기에 걸쳐 적분될 수 있다. 요소(116)의 피드백 프로세스의 다른 많은 형태들이 당업자에 알려져 있다. 피드백 프로세스(116)는 120으로 도시된 바와 같이 웨이포인트, 위치, 속도 또는 위치와 속도 둘 다와 같은 목표치를 받아들인다. 피드백 프로세스(116)는 원하는 가속도(115)를 출력한다. 상기 수학식에서 상수 6, 4 및 3은 이상적으로 정확히 이 수이어야 한다. 그러나 ±1%, ±3%, ±5% 또는 ±10%와 같은 사소한 변화가 수용가능한 결과를 제공할 수 있으며 각각의 이러한 범위도 청구된다. 따라서, 공칭 상수 값에 대한 임의의 이러한 수정도 이러한 값의 올바른 구성이다. 비교 가능한 결과들의 경우, 등가 규칙이 침해 결정에 적용된다.
강제함수 실행(104)은 계산 요소(104)에 제공된 것으로 도시된 비선형 강제함수(105)를 사용하여 원하는 가속도(115)를 원하는 힘 값(106)으로 변환한다. 강제함수(105)는 동적 업데이트에 거의 변하지 않을 수 있다. 요소 또는 단계(104)에 의해 계산된 강제함수(105)의 목적은 피드백 루프를 선형화하는 것이다.
요소 또는 단계(107)는 원하는 힘 값(106) 및 선택적으로 현재의 구동 위치(108)로부터 원하는 구동값(109)을 계산한다. 예를 들어, 원하는 힘 값(106)은 뉴턴-미터 단위와 같이 토크로 측정될 수 있다. 원하는 구동값은 전계강도, 코일 전류, 모터 전압, PWM 퍼센트, 또는 피제어 시스템(117) 내의 모터 또는 다른 액추에이터를 구동시키는 실제 신호와 보다 근접하게 매칭되는 다른 파라미터일 수 있다. 요소 또는 단계(107)의 계산은 효과적으로 단위변환을 수행하기 위해 선형 곱셈 또는 덧셈과 같이 단순할 수 있다. 요소 또는 단계(107)에서보다 복잡한 계산은 샤프트 각 또는 위상과 같은 현재 구동 위치(108)를 고려하기 위한 것일 수 있다. 원하는 힘 값(109)은 현재 구동 위치(108)로부터 위상 오프셋과 같은 차일 수 있다. 예로서, 원하는 힘 값(106)은 원하는 가속도(115)를 달성하기 위한 공칭상 모터 토크일 수 있다. 116으로부터 원하는 가속도 값(115)은 1차 제어 루프의 많은 반복에 걸쳐 비교적 일정해질 수 있다. 그러나, 이러한 반복 동안 시스템(117) 내의 다상 모터는 여러 위상들을 통해 순환한다. 따라서, 현재 구동 위치(108)는 반복적으로 순환하고, 원하는 구동값, 이 예에서는 미분 위상각도 또한 여러 위상들을 통해 순환한다.
요소 또는 단계(110)에서, 출력값이 원하는 구동값으로부터 생성되거나 계산된다. 일부 실시예에서, 이 단계는 선택적이다. 이 요소 단계(110)는 토크 또는 위상 오프셋 각도와 같은 구동값을 2개의 위상각, 하나 이상의 전압, 또는 PWM 퍼센트로 변환할 필요가 있을 수 있다. 요소 또는 단계(110)는 2-코일 스테퍼 모터와 같은 2상 모터를 구동하는데 필요한 것과 같이 스칼라 입력(109)을 2개의 출력으로 변환할 필요가 있을 수 있다. 일부 실시예는 3개의 출력 위상을 필요로 한다. 이러한 변환은 응용 또는 실시예에 의존한다. 요소 또는 단계(110)는 선택적이다. 110의 출력(들)은 111로 표시되어 있다.
요소 또는 단계(112)는 선택적이다. 예를 들어, 이들의 입력(111)은 PWM 퍼센트일 수 있다. 모듈레이터(112)는 모듈레이터의 입력(111)에 지정된 듀티 사이클을 갖는 PWM 펄스 트레인을 생성할 수 있다. 모듈레이터(112)는 모터 코일용 전류 드라이버와 같은 증폭기 또는 다른 전자 드라이버일 수 있다. 모듈레이터 또는 증폭기(112)의 출력은 113으로 도시되어 있으며, 증폭기, 리미터 등과 같은 추가의 개재 요소가 있을 수 있지만, 전형적으로는 피제어 시스템(117)에서 모터와 같은 액추에이터에 직접 연결된다. 도 2는 요소(111, 112 및 113)가 중복 도시되어 있기 때문에 2개의 채널을 도시한 것이다. 이러한 실시예는 예를 들어 2-코일 스테퍼 모터에 적합하다. 다양한 실시예는 1개, 2개, 3개 또는 그 이상의 채널을 가질 수 있다.
피제어 시스템(117)은 위치, 속도 또는 온도와 같은 다른 파라미터일 수 있는 출력 신호(114)를 제공한다. 이 신호(114)는 스칼라, 벡터 또는 세트일 수 있다. 예를 들어 위치와 속도를 모두 포함할 수 있다. 이는 전형적으로 샤프트 인코더와 같은 피제어 시스템(117)의 센서에 의해 제공된다. 광범위한 센서 범위가 당업계에 공지되어 있고 시스템 및 실시예에 따라 다르다. 신호(114)는 "피드백"으로서 시스템(117)으로부터 피드백 프로세스 또는 계산기(116)로 제공된다.
이 1차 폐쇄루프는 경로(116, 115, 104, 106, 107, 109, 110, 111, 112, 113, 117, 114)이며 일부 요소 또는 단계는 선택적이거나 "패스-스루"인 것에 다시 주목하라. 폐쇄루프 시스템의 목표(120)는 적절한 1차 피드백 루프에 있지 않고 오히려 이 실시예 또는 시스템에 타겟을 알리는 것에 유의하라. 또한, 강제함수는 요소 또는 단계(104)에서 사용되지만, 강제함수(105)를 제공하는 것은 1차 피드백 루프 외부에 있다.
피제어 시스템(117)을 순수한 계산 단계로서 모터 또는 머신 툴 및 요소 또는 단계(116)와 같은 기계 시스템으로 생각하는 것이 편리하나, 제한은 아니다.
도 4의 종래 기술과 도 2를 비교하면, 도 4의 "플랜트/프로세스"는 일반적으로 도 2의 시스템(117)이다. P, I 및 D의 계산 및 그 둘의 합산이 1차 피드백 프로세스 요소 또는 단계(116) 내에 있을 수 있다. 도 4의 r(t)는 도 2의 목표(120)에 대응한다. 도 4에서 종래 기술의 PID 루프는 강제 요소 또는 단계(104)를 포함하지 않고 비선형 계산을 포함하지 않는다. 종래 기술은 목표로서 속도 및 위치 모두의 입력을 계산에 포함하지 않는다.
일부 실시예에서, 현재 구동 위치인 신호(108)가 필요하지 않을 수 있다. 예를 들어, 단순한 단일 채널 DC 서보 애플리케이션에서, 힘 값(106)은 토크 또는 전압일 수 있다. 이 값은 시스템(117) 내의 서보 모터를 직접 구동하는 증폭기인 단일 모듈레이터(112)에 직접 전달될 수 있다. 이러한 간단한 시스템에서도, 요소 또는 단계(104)의 비선형 강제함수가 중요할 수 있다. 서보 모터 토크는 전압에 따라 선형적이지 않을 수 있으며, 이 요소 또는 단계가 이를 보정할 수 있다. 일부 실시예에서, 요소 또는 단계(104)는 모터 속도, 모터 부하, 시스템 온도 또는 다른 많은 요인들과 같이 도 1에 도시되지 않은 추가 입력을 가질 수 있다.
도 2에 도시된 1차 폐쇄루프 제어 시스템은 일반적으로 단일 축 또는 단일 스칼라(가령 온도)에 대한 것이다. 그러나, 실제로는 여러 축을 제어해야 하는 것이 종종 필요하다. 이러한 방법 중 하나는 본질적으로 각 축에 대해 도 2의 제어 시스템의 사본을 별도로 복제하는 것이다. 그러나, 대부분의 축은 여러 축에 타겟 위치를 포함하는 단일 웨이포인트와 같이 완전히 독립적이지 않는다. 따라서, 도 2의 일부 요소는 각 축에 대한 각 구현간에 공유될 수 있다.
실시예는 온도를 제어하는 것과 같은 상응하거나 유사한 요소를 갖는 비기계 시스템을 포함하고 이에 적용된다.
도 2는 또한 "외부 루프(outer loop)"라고 하는 부가적인 피드백 루프를 도시한 것이다. 이 피드백 루프는 피제어 시스템(117)을 관찰하고, 그 관찰(118)은 요소 또는 단계(119)가 1차 제어 루프에서 요소 또는 단계(104)에 의해 사용되는 강제함수(105)를 선택하거나 계산하게 한다. 이 외부 루프는 일반적으로 1차 제어 루프보다 훨씬 느린 반복 속도로 작동한다. 모터 또는 부하와 같은 구성요소가 피제어 시스템(117)에서 대체될 때마다 1회 반복만큼 느릴 수 있다. 요소 또는 단계(119)가 강제함수(105)를 선택하거나 계산할 수 있게 할 명확한 목적을 위해 피제어 시스템(117)의 캘리브레이션 또는 다른 동작의 실행시에만 동작할 수 있다. 이는 동작 중에 피제어 시스템(117)을 관찰하고 주기적으로 강제함수(105)를 업데이트하여 연속적으로 동작할 수 있다.
도 2는 또한 요소들 또는 단계들(108, 107, 109, 110, 111, 112, 113 및 117)을 포함하는 "내부 루프"를 도시한 것이다. 이 내부 루프는 피제어 시스템(117)에서 모터 또는 다른 액츄에이터에 가깝게 동작한다. 예를 들어, 내부 루프의 일은 모터에 원하는 자속 또는 코일 전류를 제공하는 것일 수 있다. 이 내부 제어 루프의 일은 원하는 힘 값(106)을 구현하고 유지하는 것이라 생각할 수 있다. 내부 제어 루프는 일반적으로 1차 제어 루프보다 빠른 반복 속도로 작동한다. 그러나, 반복률은 1차 제어 루프의 속도만큼 느릴 수 있다. 예를 들어, 1차 제어 루프는 초당 100-1000회 실행될 수 있는 반면, 내부 제어 루프는 초당 1000-1백만 회 속도로 실행된다. 이 속도는 적용에 따라 크게 다를 수 있다. 예를 들어, 위성 통신을 위한 고속 모듈레이터는 기가 헤르쯔 속도로 작동할 수 있는 반면, 전염병 또는 지구 온난화를 추적하거나 관리하는 시스템은 주(週) 단위로 순환할 수 있다. 내부 제어 루프는 아날로그 전자기기로 구현될 수 있는 반면 1차 제어 루프는 디지털이다.
이제 도 3을 참조하면, 다수의 상이한 실시예가 도시되어 있다. 제 1 실시예는 굵은 박스(178)의 폐쇄루프 제어 방법 및 장치이며, 여기에 도시된 입력 및 구조 요소의 사용을 포함한다. 이러한 실시예는 타겟 위치(162) 및 타겟 속도(163)를 수용한다. 실시예의 동작은 특히 폐쇄루프 및 실시간 반복을 구현함으로써 현재 이동의 마지막에서 타겟 위치(162) 및 타겟 속도(163)에 도달하는 것이다. 실시간 입력은 현재 위치와 현재 속도를 포함한다. 이들은 물리적 시스템, 예를 들어 모터(167)로부터 측정되거나, 또는 위치만이 측정되고(169), 속도는 박스(161)의 위치로부터 계산될 수 있다. 이러한 계산은 박스(178) 내에 도시된 반복 속도와 같이 전체 루프에 대한 것보다 더 빠르거나 더 빈번하거나 더 높은 대역폭일 수 있다. 또한, 박스(166)에서의 피드백은 전체 루프보다 더 빠르거나 더 빈번하거나 더 높은 대역폭일 수 있다. 실제로, 실시예 및 이 아키텍처의 주요 이점은 특히 166-167-168을 포함하는 루프 또는 161에서의 계산, 또는 둘 모두가 루프 속도보다 더 빠르기 때문에 시스템 성능이 더 높다. 이러한 속도 차이는 실시예로서 청구된다.
박스(161)는 그 자체로 종래 기술이지만 이 요소는 일부 실시예에 포함된다.
폐쇄루프 반복 프로세스에서 핵심적이고 신규한 단계는 요소 또는 단계(170)에서 저크의 계산이다. 일부 실시예는 이 단계에서 정의된 계산을 포함하지만 다른 실시예는 계산의 특성을 명확히 포함하지 않는다. 저크 계산 요소 또는 단계(170)는 청구범위 밖일 수 있으며, 따라서 그러한 계산의 상세한 설명이 부족해도 개시 특이성의 부재로 인한 청구범위가 무효로 되지는 않는다. 전형적으로, 입력 단계(170)는 현재 위치, 속도 및 가속도, 및 타겟 위치 및 속도를 포함한다. 요소 또는 단계(170)의 출력은 저크 스칼라(171)이다. 단계(172)에서, 저크는 토크 또는 가속도 값으로 변환된다. 이러한 변환은 1의 값을 가질 수 있는 선형 상수일 수 있다. 즉, 변환은 단순히 단위가 바뀐 패스-스루 기능이다. 이 단계(172)의 출력은 가속도 또는 토크 스칼라(173)이다. 단계(170)가 청구범위 밖인 실시예에 대해, 요소 또는 단계(172)는 입력으로서 저크값을 수용한다. 일부 실시예에서, 선택적이거나 누락된 강제함수(174)는 위상각 오프셋 또는 불감대역(dead-bands) 등의 함수로서 비선형 모터 토크와 같은 시스템내 비선형성을 보정한다. 강제함수(174)는 또한 샤프트 인코더(168) 또는 임의의 다른 센서의 편심 또는 비선형성을 보정할 수 있다. 강제함수(174)는 또한 한계를 계산, 테스트 또는 강제할 수 있다. 강제함수(174)의 출력(175)은 모터(167) 또는 다른 타겟을 구동하기 위해 비교적 간단한 모듈레이터/드라이버(166)에 의해 사용될 수 있는 단위가 없는 스칼라 Q이다. 그러나, 값(175)은 위치도 속도도 아니다. 토크와 함께 변한다. 모듈레이터/드라이버(166)는 위치 또는 속도를 달성하는 단계 또는 장치가 아니다. 예를 들어, 일반적으로 위치 명령인 스텝 명령을 기반으로 스테핑 모터에 단계를 간단하게 생성하는 것이 아니라 생성되는 속도를 고려함으로써 속도 명령으로 간주될 수 있다. 값(175)의 일례는 모터 위상 오프셋이다. 이러한 오프셋은 물리적 모터 샤프트 위치와 모터 코일의 자기장 세기 간의 차이다. 이러한 오프셋은 모터 샤프트에 토크를 제공한다. 위상각과 토크의 관계는 단계(174)의 일부 실시예에서의 목적인 선형이 아닐 수 있다. 목적 모듈레이터/드라이버(166)는 선형화된, 제한된 또는 그렇지 않으면 강제함수(174)에 의해 변경된 것처럼 모터로의 원하는 토크 값(173)으로부터의 단순한 변환으로 볼 수 있다. 즉, 모듈레이터/드라이버(166)는 모터(167)를 구동하여 원하는 모터 토크를 달성한다. 일 실시예에서, 상기 명세서에서 설명된 바와 같이, 모듈러는 펄스-폭-모듈레이터(PWM)로서, 0% 내지 100% 범위의 입력에 따라 동작하고, 이 스칼라 입력을 2-코일 스테핑 모터를 구동하는데 필요한 2개 위상으로 변환시킨다. 일부 실시예에서, 모터는 고전적인 DC 서보-모터와 같은 단일 코일을 가지거나 2개 이상의 코일을 가질 수 있다. 모듈레이터/드라이버가 입력(175)을 통해 명령된 위상 오프셋을 유지하기 위해, 도면에 도시된 바와 같이, 샤프트 인코더 또는 다른 위치 인코더(168)를 통해 제공될 수 있는 현재의 샤프트 또는 로터 위상을 알아야 한다. 일부 실시예에서, 모듈러/드라이버(166)는 청구범위의 일부가 아니다. 일부 실시예에서, 모터(167) 및 인코더(268)는 청구범위의 일부가 아니다. 그러나, 다른 실시예는 이 도면에 도시된 바와 같이 완전한 폐쇄루프 시스템을 포함한다.
모듈(166)의 요소 또는 단계 또는 단계들의 일 실시예는 다음과 같다:
(i) 로터의 현재 위치는 "위상"으로 변환되며, 단위 변환을 위해 4 모듈러스 2π로 나누어진 단계들의 수가 될 수 있다.
(ii) 중립 자계 위상은 "디텐트력(detent force) 평형 테이블"을 사용하고, 그런 후 이에 "고정 강제값"을 더하여 결정된다. 디텐트력 평형 테이블은 로터(x) 대 필드 값(y)의 위상이다. 이 테이블은 장치 캘리브레이션 중에 작성될 수 있으며 수시로 업데이트될 수 있다. 이는 외부에서 공급될 수 있다. 고정 강제값은 고정되거나, 정규화되거나, +/- 90도 범위로 제한된다.
(iii) 상기 중립 자계 위상은 2개의 모터 위상의 사인과 코사인을 나타내는 펄스-폭-변조(PWM) 듀티 사이클에 대한 "모양 파형"에서 룩업된다. PWM 모듈레이터의 출력은 모터 권선에서 유효한 전류, 전압, 전력 또는 전계 강도이다. PWM 모듈레이터의 출력은 모터 토크와 토크의 방향을 결정한다.
도 3을 계속하면, 어떤 경우에는 강제함수(174)가 때때로 변한다. 유효 강제함수는 물리적 시스템으로부터 주기적으로 측정된 후, 176으로 도시된 바와 같이 요소 또는 단계(174)로 업데이트될 수 있다. 이러한 측정은 그 자체를 폐쇄루프 시스템으로 볼 수 있다. 그러나, 이러한 루프는 전형적으로 반복 이동 컨트롤러(178)보다 매우 느리게 또는 덜 빈번하게 동작한다. 다양한 강제함수 및 측정 기술은 명세서 및 또한 다양한 도면과, 청구범위의 일부 실시예에 상술된다. 샤프트 인코더(168)는 광학 또는 자기 인코더일 수 있다. 모터(167)의 샤프트에 장착되거나 샤프트에 연결된 자석을 가진 단일 또는 다중 홀효과 센서(들) IC일 수 있다. 일부 홀효과 센서는 상당한 비선형성 및 편심을 가질 수 있다. 이러한 보정은 인코더(168) 내에서, 단계(161)에서 또는 강제함수(174)에 의해 행해질 수 있다. 강제함수(174)의 일부 실시예는 또한 현재 위치 또는 현재 속도, 또는 양자 모두에 응답한다. 예를 들어, 인코더(168)의 편심은 현재 위치를 알 필요가 있다. 다른 예로서, 모터 역기전력(EMF) 또는 마찰은 현재 속도를 참작하여 고려될 수 있다. 신호(176)의 일 실시예에서, 단계(161)로부터의 현재 가속도뿐만 아니라 단위없는 값(Q)은 강제함수(174)를 주기적으로 업데이트하는데 사용된다. 적절한 홀효과 센서는 AMW AS5311이다(ams AG, Tobelbader Strasse 30, 8141 Premstaetten, Austria).
도 3에서, 타이머는 177로 도시되어 있다. 이는 폐쇄루프 프로세스(178)에 시간 기준(165)을 제공한다. 통상적으로, 시간 간격(165)은 루프의 각 반복에 해당한다. 아날로그 시스템, 서브시스템 또는 구성요소의 경우, 미분 단계는 상수 또는 단위의 특성에 따라 효과적인 타이머 간격을 갖는다. 예를 들어 m/s 또는 rad/s2 등을 포함할 수 있다.
폐쇄루프 프로세스(178)의 실시예들의 중요 측면은 이전의 위치, 속도, 가속도 또는 저크에 대해 "메모리"가 유지되지 않지만, 161과 같은 요소는 간단한 샤프트 위치 입력(169)으로부터 실제 시스템 위치를 계산하기 위해 메모리를 필요로 할 가능성이 있다. 일부 시스템의 전체 범위는 모터 샤프트의 많은 사이클일 수 있다. 또한, 단계(161)에서 속도의 임의의 계산은 적어도 알려진 사전 위치를 필요로 한다.
도 4는 종래 기술의 "PID(Proportional-Integral-Differential)" 폐쇄루프 제어를 도시한 것이다. 이러한 종래 기술은 잘 알려져 있으므로 여기서는 상세히 설명하지 않는다. 이러한 루프는 단일 타겟 파라미터, 일반적으로 위치만 제어한다. 타겟 위치와 타겟 속도 모두에 이르도록 제어할 수 없다. PID 컨트롤러의 또 다른 단점은 적분(I) 항과 미분(D) 항의 모두의 형태로 "상태" 또는 히스토리 정보의 고유한 사용이다. 다양한 입력에 대해, 이러한 상태 히스토리는 새로운 입력 목표에 대해 그리고 이러한 현재 목표와의 간섭에 대해 사실상 무관하다.
이제 도 5-9를 참조하면, 시작 위치와 속도 쌍으로부터 예제 타겟 위치와 속도 쌍을 대략 13회 반복 실행을 나타내는 동일한 단일 스프레드시트의 여러 부분을 본다. 현재의 특허 도면의 진부한 공식적인 제한 사항으로 인해 여러 도면들이 필수적이다. 이들 도면에서 요소에 대한 참조는 행 및 열 지정자를 포함하며 여기서는 일반적으로 스프레드시트 기술에 표시되어 있다. 이 도면은 단일 "라이브" 스프레드시트의 스크린 샷이다. 즉, 수학식에서와 같이 도면에서 행, 열 및 행과 열 셀 식별자의 사용이 내부적으로 일관됨을 의미한다. 이 도면과 텍스트의 정보에서 유사한 라이브 스프레드시트를 쉽게 복제할 수 있다.
도 5는 예시적인 실시예에 대한 예시적인 시작 및 종료 웨이포인트에 대한 입력 파라미터를 도시한 것이다. 시작 상태 위치, 속도 및 가속도, p, v 및 a는 단위를 포함하여 E2 : H5에 표시된다. 셀 G3 : G5는 이 파라미터의 값에 대한 숫자를 보유한다. 여기서, 이들은 모두 0이다. 타겟 웨이포인트 또는 목표 상태는 단위를 포함하여 A2 : D4에 표시된다. 웨이포인트에는 위치와 속도가 모두 포함된다; 이 쌍을 상태 벡터라고 부르는 것이 종종 편리한다. 그러나, 대부분의 시스템에 대해, 완벽한 시스템 상태에는 추가 파라미터가 포함된다. 여기서, 타겟 위치(pt)는 10이고 타겟 속도(vt)는 0이다. 셀 C3 : C4는 이 파라미터 값에 대한 숫자를 보유한다. 행 7과 8은 텍스트 주석이다. 연산 수학식이 아니라 단지 텍스트로 표시된 사용된 수학식이 행 8에 표시되어 있다. 수학식은 6, 4 및 3개의 상수를 사용한다. 스프레드시트에서, 이들은 변수명(ml_, m2_ 및 m3_)에 지정되며, 셀 I2 : K5에 표시된다. 이 상수는 본 명세서의 다른 곳에서 더 자세하게 논의된다. 반복 간격은 셀 L2 : 03에 표시된다. 값 0.23초는 셀 N3에 있다. 전형적인 시스템 실시예는 종종 10밀리초(ms)와 같은 반복 간격 수정을 갖는다. 그러나, 이러한 시간은 특정한 적용이며 나노초에서 수개월 또는 그보다 더 광범위하게 변할 수 있다.
편의상, 앞서 논의된 파라미터들은 블록 All : D18에서 재생된다. 이 블록에서의 하나의 새로운 값은 도달예정시간(또는 ETA(Estimated-Time-of-Arrival)) 변수(tt)이다. 본 명세서의 다른 곳에서 논의된 바와 같이, 이 값은 선택자 또는 최적화 단계에 의해 사전에, 즉 실시간 조작에 앞서, 종종 결정된다. 여기서, ETA는 셀 C17에서 3초(s)이다.
계산된 저크와 그런 후 상기 저크(j)로부터 계산된 다음 가속도인, 후속 가속도(a)가 셀 A19 : D21에 표시된다. 셀 C20과 C21은 하기에 언급된 수학식을 갖는다. 스프레드시트에 의해 계산된 이들 수학식의 출력은 각각 8.89 및 1.02로 표시된다. 이들 두 값은 제 1 반복에 대한 예시적인 방법의 출력으로 간주될 수 있다. 그러나, 편의상, 여기에서 반복 횟수 0으로 식별한다. 이 두 값은 이 방법 실행 경로의 출력이며 다음 반복의 입력으로 사용된다.
도 6은 실제로 실행중인 방법의 실시예를 도시한 것이다. 열 A는 값의 이름을 포함한다. 열 C는 상술한 바와 같이 시작 값과 첫 번째 계산된 j 및 다음 a를 포함한다. 셀 D26 : P35는 수학식을 보유하고 도면은 스프레드시트에 의해 계산된 결과를 보여준다. 사용된 수학식은 나타낸 바와 같고 아래에 언급된다. C 내지 P와 같은 각 열은 일 실시예의 방법의 반복을 나타낸다. 편의상, 반복 횟수가 행 25에 도시되어 있다. 실시예의 수학식은 반복 횟수를 직접 사용하지 않는다는 것을 유의하라. 행 29, 30 및 32 각각에서, 타겟 위치(pt), 타겟 속도(vt), 반복시간간격(ts)은 변경되지 않는다는 점에 유의하라. 남은 시간 또는 ETA, tt, 행 31은 반복시간간격(ts)에 따라 각 반복마다 선형적으로 떨어진다. 이 도면에서, 위치, 속도, 가속도 및 저크 값은 스프레드시트에 의해 생성된 그래프로 도 7a 내지 도 8b에 나타나 있다. 알 수 있듯이, 위치 pt = 10 및 속도(v)t = 0의 타겟 웨이포인트는 사실상 p = 9.99 및 v = 0.18인 열 P에서 반복 횟수 13에 근접해 유효하게 도달한다.
도 9는 주요 수학식을 도시한 것이다. 이 도면은 도 5-8b에 사용된 동일한 스프레드시트의 스크린 샷이다. 셀 C12 : C18 및 C26 : C32는 이러한 셀의 값이 상술한 스프레드시트의 데이터 설정 영역에서 단순히 복제되었음을 나타낸다. 셀 C20의 수식은 이 도면에 완전히 표시되지 않으며 잠시 무시해야 한다. 실시예에 대한 주요 수학식이 셀 D34에 도시되어 있다. 이 수학식은 피제어 시스템에 대한 "현재 상태" 정보만 사용한다. 이는 모든 일정하지 않은 입력들이 동일한 열에서 왔음을 쉽게 알 수 있다: 여기서, D 열은 동일한 반복 또는 시간상 현재 시점을 나타낸다. 즉, 현재의, 순간적인 시스템 상태이다. 셀 D35에서 다음 반복에 대한 가속도가 셀 D34에서 저크(j)로부터 계산된다. 이는 한 반복시간(여기서, 0.23 초) 동안 저크의 적분이다. 적분 수학식은 "현재 가속 + (현재 저크 - 이전 저크) * 반복시간간격/2"이다. 다음 가속도의 초기 계산을 위해, 이전의 저크값은 0일 수도 있으나 반드시 0일 필요는 없다.
위치 및 속도에 대한 수학식은 D26 : D27에 각각 도시된 바와 같이 유사하게 적분된다. 이 스프레드시트의 경우, 실제 시스템이 스프레드시트 계산에 의해 실행되지 않으므로 위치를 반드시 "시뮬레이션"해야 할 필요가 있다. 본 명세서의 다른 곳에서 논의된 바와 같이, 일반적으로 위치 및 종종 속도는 계산된 것이 아니라 실시간 입력이다. 속도는 가속도의 적분이며 위치는 속도의 적분이다.
셀 D26 : D35의 라이브 수학식이 (통상적으로 잘라내기 및 복사 동작과 함께) 셀 D26 : P35로 복제된다. 그 결과가 도 6에 숫자로 나타내며 도 7a 내지 도 8b에 도시되어 있다. 타겟 웨이포인트는 대략 열 P의 반복 13에 도달하기 때문에, 더 이상의 반복이 없을 것이므로 셀 P34 : P35에는 저크 및 다음 가속도에 대한 계산이 없다.
도 7a는 상기 데이터로부터의 위치 플롯을 도시한 것이다. 원하는 바에 따라 pt로 설정된 위치가 시작시 0으로부터 끝의 10까지 바뀌는 것을 명확히 알 수 있다.
도 7b는 상기 데이터로부터 속도의 플롯을 도시한 것이다. 원하는 바에 따라 vt로 설정된 시작 속도와 종료 속도가 모두 0이인 것을 명확히 알 수 있다.
도 8a는 상기 데이터로부터 가속도의 플롯을 도시한 것이다.
도 8b는 상기 데이터로부터 저크의 플롯을 도시한 것이다.
저크 및 가속에 대한 값은 실시예에 대해 연속적이어야 한다는 것에 유의해야 한다. 이는 가속도 또는 저크가 -1, 0 또는 +1과 같은 제한된 값을 갖는 종래 기술과 구별된다.
종래 기술에 대한 실시예의 이점은 노이즈, 작은 센서 에러, 비선형성, 마찰 등과 같은 실제 문제에 대한 본 방법의 내성이다. 스프레드시트 수학식을 수정하여 난수 또는 고정된 "두릅(droop)"또는 마찰 오차와 같은 오차를 도입함으로써 그러한 내성을 테스트할 수 있다. 이러한 실험 오차는 p 및 v 또는 다른 장소의 계산에 도입될 수 있다. 매우 많은 노이즈 또는 두릅이 있는 경우에도 적절한 정확도로 타겟 위치 및 속도에 대개 도달하는 것을 관찰할 수 있다. 그러한 실증은 독자들에게 남겨둔다. 종래 기술의 방법은 그러한 내성을 갖지 않는다.
도 7a, 도 7b 및 도 8a의 그래프는 적어도 부분적으로 도 5 및 도 6에 도시된 값들을 사용하여 스프레드시트에 의해 라이브 스프레드시트 내에서 직접 생성된다. 도 7a, 도 7b 및 도 8a는 스크린 샷이다.
도 10은 상이한 타겟 속도(vt)를 갖는 상기와 동일한 스프레드시트를 도시한 것이다. 여기서, 타겟 속도는 셀 C16에 표시된 10이다. 열 P에서 알 수 있는 바와 같이, 실시예 및 스프레드시트는 위치 및 속도 모두에 대해 9.90의 값을 가지며 반복 횟수 13에서 이 목표에 도달했다. 플롯을 관찰하는 것은 독자의 연습 과제로 남겨둔다. 행 28의 "소프트 스타트" 가속도와 함께, 행 27의 속도(v)는 거의 선형이임에 유의하라.
이제 도 11을 참조하면, 머신에 대한 설계와 같은 실시간 실행에 이르는 CAD(Computer Aided Design) 또는 CAM(Computer Aided Machining) 시스템의 출력으로부터 단계를 포함하는 실시예가 도시되어 있다. CAD 시스템 또는 다른 소스는 전형적으로 G-코드, 401 또는 STP 파일 포맷(미도시) 또는 독점적 포맷(403)과 같은 표준 포맷으로 데이터를 출력한다. 부품 설계로부터 입력 데이터 포맷이 무엇이든 간에, 파서(parser)(402)는 데이터스트림 또는 파일을 파싱하여 이동 명령 세트(404)를 생성한다. 이들은 모션 제어 API(405)라고 하는 모듈로 이동하여, 모션 명령(404)을 탐색, 추적, 커브, 이동 또는 상주와 같은 알려진 가능한 이동 세트 또는 API 내로 이동하도록 적용시킨다. 모듈(405)의 출력은 모션 제어 프레임 워크 내에서의 이동 세트 또는 API 호출 또는 객체이거나, 이전에 정의된 옵션, 특징 및 기능 세트이다. 잘 정의된 이동(406)이 도시되어 있다. 이러한 이동은 큐(407)로 진행한다. 큐는 또한 이동에 대한 기능을 수행할 수 있지만, 도시된 실시예에서는 단지 FIFO 큐이다. 큐에 대한 하나의 이유는 머신 툴 대신이거나 그렇지 않으면 실시간으로 실행될 수 있는 409 내지 414와 같은 실시간 모듈로 원격 또는 비실시간일 수 있는 업스트림 모듈(401, 402, 403 및 405) 상류에 시간영역 매치를 위한 것이다. 큐는 구현에 따라 "푸시(push)" 또는 "풀(pull)"로 작동할 수 있다. 일 실시예에서, 큐에의 입력은 출력이 실시간으로 보여지는 동안 비실시간으로 보여질 수 있다. 407로부터 모션 명령(408)이 플래너(409)로 입력된다. 플래너는 좌표 변환, 일련의 웨이포인트로의 이동 명령 제동, 최적화, 경계 및 종점 감지, 범위 체크, 스케일링 및 기타 단계와 같은 다수의 중요한 단계를 수행하며 복잡할 수 있다. 좌표 변환은 극좌표 시스템, SCARA 구성 또는 다른 많은 기계식 좌표계와 같이 기계식 좌표계의 직교 좌표계에서 발생될 수 있다. 예를 들어, 유압 밸브로 백호(backhoe)에 있는 셔블의 모션을 구동하는 것은 원하는 흙 형태의 3D 직교 맵에서 복잡한 변환이다. 유사하게, 무대 댄서에 대한 플로 스폿(follow spot)을 제어하는 것은 알려진 안무에서 조명 제어까지 복잡한 변환이다. 종종, 움직임 사이의 경계에는 코너에서의 모션과 같은 특별한 처리를 필요로 한다. 플래너의 출력은 임시 웨이포인트(410)로 도시되어 있다. 선택 단계는 가속도 옵티마이저(411)이다. 이 모듈(411) 내의 동작은 대안으로 플래너(409)에서 수행될 수 있다. 일반적으로, 이 모듈(411)은 재료 또는 한 기계에 고유한 또는 현재 시간에 한 기계에만 고유한 선형성 보정 기능과 같은 부품의 알려진 세부사항과 같이 모두 기계 특이적이고 응용 특이적이다. 최적화는 신속한 "드래프트" 부품 제조 대 느린 "최종" 부품 제조의 선택과 같은 사용자 입력에 응답할 수 있다. 이 단계는 또한 기계 특징 또는 캘리브레이션을 수행할 수 있다. 모듈(411)의 출력은 최종 웨이포인트(412)이다. 이들 웨이포인트, 전형적으로 위치 및 속도 쌍 더하기 추정된 ETA 또는 tt가 실시간 액추에이터 제어 모듈(413)로 송신된다. 일 실시예에서, 이 모듈(413)은 도 1, 및 도 5-8b 및 출원된 바와 같이 청구항 1을 포함한 관련된 청구항에 전체적으로 기술된 수학식 및 반복적인 제어를 포함한다. 위치와 같은 센서 피드백은 화살표(416)로 도시되어 있다. 기계(416)로의 순방향 화살표는 실시예의 방법의 출력 단계이다. 기계(414)는 또한 제어하에 있는 시스템 또는 프로세스일 수 있다. 이는, 본 명세서의 다른 곳에서 광범위하게 논의된 바와 같이, 머신 툴이나 모터 또는 다른 많은 "기계", 모터 또는 액추에이터 중 어느 하나일 수 있다. 화살표(415)는 선형 테이블과 같은 기계 특성 또는 캘리브레이션 또는 "강제함수"과 같은 함수를 포함할 수 있는 선택적 "외부 피드백" 루프의 일부이다.
실시예들의 동작(단계 및 이점 모두)이 기계 시스템에서 각각의 개별적인 기계적 이동 중에 피드백 포인트 또는 워크피스에서 툴 경로가 유효한 정확도로 개선된다는 것이다. 기계 컨트롤러 및 전체 시스템 수준 모두에서 기계 성능이 더 빨라질 수 있다는 이점이 있다. 또 다른 이점은 제어 루프의 더 높은 안정성이다.
여기서, 툴 헤드 제어의 4개의 중첩된 레벨(또는 동일하게는 워크피스의 이동)을 구별한다. 가장 큰 레벨은 피스 또는 프로젝트와 관련된 거시적인 타겟 또는 목표인 "경로"이다. 경로는 시작 위치와 끝 위치, 및 경로가 따르는 방법에 대한 요건을 가지고 있다. 경로는 단순하거나 복잡할 수 있다; 이는 직선이거나 곡선일 수 있다; 하나의 축 또는 다중 축에 있을 수 있다. 경로의 예로는 워크피스의 전체 가장자리를 따라 커팅 헤드가 이동하는 경우이다. 경로는 도 11에서 시리즈(404 또는 406)의 일부일 수 있다. 경로의 또 다른 예는 백호 셔블이 흙 더미로부터 참호로 들어가, 더 많은 흙을 긁어 모으고, 상기 흙 더미에 다시 쌓는 경로이다. 경로의 추가 예에는 스포츠 경기 또는 공연 예술 작품이 포함된다.
제 2 레벨의 세부 사항은 "이동"이다. 경로는 일종의 파서(parser)에 의한 이동으로 분해된다. 파서는 시스템에 고유하다. 예를 들어, G-코드 파서는 2D 또는 3D CAD 데이터를 입력으로 사용하여 일련의 이동을 생성하며, 여기서 각 이동은 G-코드에서 한 라인이다. 다른 파서 예는 상기 예에서 백호 경로를 취해 하나 이상의 유압 점, 선 또는 곡선으로 수행될 수 있는 일련의 기계적인 이동으로 분해한다. 지정된 이동에 대한 파라미터는 다중 축일 수 있음에 유의하라. 이동은 도 11에서 시리즈(406)에 도시되어 있다.
제 3 레벨의 세부 내용은 일련의 "웨이포인트(waypoint)"이다. 두 번째 파서 또는 특정한 기하학적 모양의 "플래너"는 각 이동을 보다 관리하기 쉽고 시스템의 기하학적 모양 및 메커니즘과 일치하는 일련의 웨이포인트로 변환할 수 있다. 플래너의 한 가지 예는 G-코드의 직교 좌표를 하나 이상의 반경방향 메커니즘을 사용하는 머신 툴 용의 반경방향 좌표 시스템으로 변환하는 프로세스이다. 플래너의 다른 예는 백호와 같은 하나의 건설 장비의 3차원 이동을 개별 유압 실린더에 대한 스칼라 선형 운동으로 변환하는 프로세스이다. 플래너의 또 다른 예는 스포츠 볼의 호를 팬-틸트-줌(pan-tilt-zoom) 카메라의 모션 축으로 변환하는 프로세스이다. 플래너의 또 다른 예는 스테이지 상에 한 명 이상의 댄서들의 움직임을 하나 이상의 스테이지 조명 또는 카메라의 기계적 액츄에이터 모션으로 변환하는 프로세스이다. 플래너의 또 다른 예는 유기체 또는 질병의 돌연변이 또는 전염 과정을 전염병의 돌연변이 또는 전파를 모니터하거나 통제하기 위해 수행될 수 있는 특정 행동으로 변환하는 프로세스이다. 웨이포인트는 도 11에서 시리즈(410 및 412)의 일부로서 도시되어 있다.
실시예의 웨이포인트는 위치 및 속도 모두를 포함한다는 것이 중요하다. 종래 기술의 웨이포인트는 일반적으로 위치 정보만을 제공한다. 한 웨이포인트에서 다음 웨이포인트로의 "이동"에 대해 논의할 때, 그러한 이동에는 위치와 속도가 모두 포함된다.
일반적으로 웨이포인트가 단일 축에 있다고 가정한다. 플래너는 일반적으로 다축 입력을 평행한 단일 축 출력으로 변환한다. 그러나, 일부 실시예에서, 복수의 단일 축 데이터 또는 방법으로의 이러한 변환은 가속도 옵티마이저에 또는 실시간 액추에이터 컨트롤러에서와 같이 프로세스의 후반에 있을 수 있다.
제 4 레벨의 세부 내용은 본 발명의 실시예의 반복 방법이다. 이 반복 방법은 한 웨이포인트에서 다음 웨이포인트로 이동을 달성하기 위해 실시간 제어 출력을 제공한다. 이러한 이동은 반복 저크 방법에서 가속 스칼라를 입력으로 취하고 개방루프 또는 폐쇄루프 중 원하는 모터 가속도(또는 토크)를 유지하는 모터 컨트롤러로의 출력 가속도로 구현된다. 그러한 실시간 반복 폐쇄루프 제어가 도 11의 모듈 또는 단계(413)에 도시되어 있다.
모션 브레이크다운의 처음 세 레벨, 즉 경로, 이동 및 웨이포인트 중 어느 하나가 실시예에서 선택적임을 유의해야 한다. 모든 시스템 또는 모든 실시예에서 하나 이상의 레벨이 요구되지 않을 수도 있다.
요약하면(몇몇 예외를 제외하고): 실시간 반복 시퀀스는 툴 헤드를 한 웨이포인트(현재 위치 및 속도)에서 다음 웨이포인트(타겟 위치 및 속도)로 이동시킨다; 일련의 웨이포인트가 이동을 구현하고, 일련의 이동이 경로를 구현한다. 일련의 경로는 일반적으로 일부분을 기계가공 또는 제조하거나 여기에 설명된대로 비기계식 목적을 수행한다.
실시예의 중요한 요건은 웨이포인트가 위치 및 속도 모두를 갖는다는 것이다. 기계 시스템에서, 위치와 속도(또는 경우에 따라 속력)라는 용어는 일반적인 기계적 의미를 지닌다. 일부 시스템에서는, 동일한 파라미터를 식별해야 한다. 예를 들어, 유기체 돌연변이 또는 전염병의 확산의 경우, "위치"는 식별된 상태일 수 있는 반면에, "속도"는 상기 상태의 변화율이다. 중요한 것은 초기 다축 값(일반적으로)에서 반복적인 저크 모션 제어 방법에 필요한 단일 축 값으로의 "위치", "속도" 및 "가속도"의 의미가 바뀐다는 것에 유의하라. 각 제어 축에 대해, 반복적인 저크 모션 제어 방법이 동시에 실행된다.
기계식 및 비기계식 시스템 모두 질량, 스프링 상수 및 댐핑 인자 또는 그 등가물을 갖는다. 일부 시스템의 경우, 이러한 세 가지 파라미터가 사전에 알려지거나 추정되거나 실시간으로 측정되거나 무시될 수 있다. 그러나, 많은 시스템의 경우, 이 세 파라미터 모두를 쉽게 알 수 있는 것은 아니다. 이러한 파라미터 중 하나가 실시간으로 측정되거나 계산될 수 있더라도, 상기 파라미터에 대한 지식을 제어 시스템에 통합하기 어려울 수 있다. 본 발명의 실시예가 가장 가치있는 것은 이러한 시스템을 위한 것이다.
실시예의 반복적 폐쇄루프 방법의 목적 및 이점은 가능한 한 가까이 위치 및 속도 또는 타겟 웨이포인트에 도달하는 것이다. 이를 위해, 이 방법은 툴 헤드의 현재 위치, 속도 및 가속도를 주요 입력으로 사용한다. 이 세 가지 입력 중 어느 하나는 모션 시스템에서 직접 측정할 수도 있고 다른 측정에서 계산될 수 있음에 유의하라. 각 반복 내의 계산은 또한 타겟 웨이포인트의 위치와 속도도 사용하지만 이 두 파라미터는 임의의 반복 개시 전에 고정되어 있으며, 반복 중에 다시 계산되지 않는다. 현재 반복 이전의 모션은 상기 반복에 대한 계산의 일부가 아니다. 이는 PID 컨트롤러의 "I" 항과 같이 종래 기술의 주요 단점을 극복한다. 물론, 이전 모션이 현재 위치와 속도를 만들어 냈다. 또한, 시스템의 실제 모션은 실시간으로 파라미터를 계산하는 데 사용될 수 있고, 이 파라미터는 "상수"의 최적화 또는 선택에 사용될 수 있다. 그러나, 본 발명자들은 일부 실시예의 일부임에도 불구하고, 그러한 최적화 및 선택이 방법에 대한 부차적 입력인 것으로 간주한다.
유의할 점으로, "툴 헤드"에 대해 언급한다. 그러나, 달리 언급하지 않는 한 모든 경우에 있어서, 논의, 예, 실시예, 도면 및 청구범위는 워크피스 이동에 동일하게 적용된다. 유의할 점으로, "속도"라는 용어를 사용한다. 적용 가능한 시스템에서, 속도는 속력으로 해석될 수 있다. 유의할 점으로, 주로 단일 축에서의 동작을 언급한다. 그러나, 다르게 언급되지 않는 한 모든 경우에, 논의, 예, 실시예, 도면 및 청구범위는 다수의 축에 동일하게 적용된다. 축은 직각일 수도 있고 아닐 수도 있으며, 독립적일 수도 있고 아닐 수도 있다. 유의할 점으로, 실시예는 다축 또는 제어 요소가 상호 의존적이거나 비직교하는 시스템에 특히 적용 가능하다. 이러한 시스템은 종종 어렵거나 사실상 불가능한 최적화된 개폐루프 제어 시스템을 가지고 있다.
본 발명의 실시예는 매 반복마다 "저크"를 계산한다. 본래 출원된 바대로, 도 1 및 도 3과 청구항 1을 참조하라. 저크는 가속도 기울기의 단위인 m/s3의 단위를 가지고 있다. 가속도가 속도의 변화를 일으키고 속도가 위치의 변화를 일으키는 것과 마찬가지로 "저크"가 가속도의 변화를 일으키는 것으로 광범위하게 볼 수 있다. 이 "저크"를 사용하는 제어 시스템은 기술되고 청구된 바와 같이 신규하다.
거리, 거리/시간, 거리/시간2 및 거리/시간3 측정 단위를 본 명세서에서 종종 사용하지만, 일부 실시예에서는 이들 단위가 실제로는 라디안(또는 다른 각도 측정 단위), 라디안/시간, 라디안/시간2 및 라디안/ 시간3이다. 당업자는 거리를 사용하는 청구항, 실시예, 도면, 차트 및 수학식을 포함하는 모든 이러한 논의가 라디안과 같은 각도 측정에도 또한 적용된다는 것을 이해할 것이다. 밀리미터와 같은 거리는 직교 좌표계를 사용하는 시스템에 가장 적합한다. 라디안은 적어도 하나의 회전축을 사용하는 시스템에 가장 적합하다. 기계식 시스템에서 회전하는 로터가 있는 모터를 사용하는 경우, 최종 모션이 직선인지 비스듬한지에 상관없이 거리가 아닌 라디안 또는 도 단위로 계산하는 것이 편리할 수 있다. 또한, 이러한 측정은 절대적이거나 상대적일 수 있음에 유의하라. 예를 들어, 거리 단위는 실제로 모터 샤프트의 위상각 또는 상대 오프셋 위상각일 수 있다. 로터 샤프트의 많은 회전이 궁극적인 각도 또는 거리로 변환되므로, 이러한 위상 넘버들이 반복적으로 순환한다. 당업자는 위상 또는 몇몇 다른 반복 측정 단위를 사용하는 실시예에 적용되는 청구범위, 실시예, 도면, 차트 및 수학식을 포함하여 논의에 내포된 제한이 없음을 이해할 것이다. 일예로서, "거리 증가"는 실제로 이러한 순환 동안 위상각이 자연적으로 양 및 음인 위상각의 다중 사이클을 필요로 할 수 있다.
비기계식 시스템의 경우, 동등하거나 적용가능하게 동등한 측정 단위가 사용되어야 한다. 이러한 단위는 카메라의 초점 길이, 광세기, 온도, 감염된 인구의 비율, 환자의 건강 파라미터를 측정한 값 또는 유기체의 유전자 또는 타겟 행동과 관련된 메트릭스일 수 있다.
일 실시예의 한 가지 이점은 수치 "저크"를 사용하는 반복적인 계산이 종래 기술보다 계산상 효율적이어서 더 낮은 비용의 프로세서, 고속 연산 또는 둘 다를 허용한다는 것이다.
이 실시예의 두 번째 이점은 실시간 기계 피드백의 사용이 워크피스(또는 기계 시스템의 피드백 포인트)에서의 툴 헤드 모션의 정확성을 향상시키고, 이는 가공된 완성된 워크피스의 정확도를 향상시킨다는 것이다. 이러한 차이는 종래 기술보다 개선된 것이다.
이 실시예의 세 번째 이점은 결합된 기계식 시스템 및 워크피스의 "스프링-질량-댐핑" 파라미터가 광범위하게 독립적이라는 것이다. 즉, 일부 종래 기술에서 요구되는 바와 같이, 복잡한 공구 및 워크피스 시스템의 물리학을 시뮬레이션할 필요가 없다. 많은 경우, 필요한 물리적 파라미터, 특히 "스프링-질량-댐핑" 파라미터가 3차원 또는 그 이상의 차원(교차 차원 효과 제외)에서 가공 전에 미리 알거나 가공 중에 현실적으로 측정하는 것이 사실상 불가능한다. 일 예로, 움직이는 플랫폼에 3D 워크피스가 만들어지고 있다고 가정해보라. 워크피스의 크기가 커지면 무게가 증가한다. 마찬가지로, 플랫폼은 워크피스보다 더 뻣뻣하며 벨트와 같은 모터 및 중간 부품도 또한 있다. 따라서, 모터, 구동 시스템, 플랫폼 및 워크피스의 완벽한 물리적 모델링은 극도로 복잡할뿐만 아니라 워크피스 위치 및 제조 중에 변경된다. 또한 플랫폼 위치가 다르며 공구 위치가 다르면 스프링-질량-댐핑 파라미터도 역시 크게 달라진다. 즉, 전체 시스템을 모델링하는 데 필요한 파라미터가 툴 및 워크피스 동작 중에 빠르게 변경된다. 또한, 이러한 문제가 충분하지 않은 것처럼, 추가 제조로 제작되는 워크피스는 예를 들어 시작시 소프트한 재료이며, 그런 후 냉각되거나 경화될 때 더욱 단단해진다.
실제로, 모션 엔진을 통해 모터 구동 신호에 이상적인 이동 명령으로부터 계산적으로 보정할 수 있도록 결합된 기계 시스템 및 워크피스 시스템의 스프링-질량-댐핑 파라미터를 가공 전에 모델링하거나 가공 중에 동적으로 측정하고 모델링하는 것은 사실상 불가능할 수 있다.
일 실시예는 원하는 속도로 원하는 웨이포인트에 도달해야 하는 툴 헤드를 얻기 위해 실제 기계 시스템 위치를 실시간으로 측정하고, 각각의 (또는 일부) 반복(들)에 대해 계산 및 모터 구동 신호 모두를 효과적으로 보정함으로써 이러한 스프링-질량-댐핑 모델링 요건을 방지한다.
일 실시예는 이동 플랫폼의 위치를 실시간으로 측정한다. 일 실시예는 실시간으로 2개의 이동 플랫폼의 위치를 측정한다. 일 실시예는 측정된 플랫폼 기울기를 보정한다. 일 실시예는 2개 이상의 축들 사이의 상호 작용을 보정한다.
일부 실시예는 다수의 축들 사이의 모션을 동기화한다. 이는 계산된 예상도착시간(ETA) 또는 가장 선형적인 속도 램프의 최적화 동안 수행될 수 있다. 여기서, 속도 램프는 시작 지점에서 웨이포인트로 이동하는 동안 한 웨이포인트에서 다음 웨이포인트까지의 일련의 속도 값이다. 여러 축을 동기화하는 한 가지 방법은 조합된(다축) 이동에 대해 축에 대한 ETA를 개별적으로 계산 한 다음, 가장 긴 ETA 인 최악의 경우를 취하여 이를 각 축에 대한 ETA로 사용하는 것이다.
일 실시예는 모터 샤프트에서 상기 모터 샤프트의 회전 위치를 측정함으로써 이동 플랫폼의 위치를 측정한다. 일 실시예는 구동 모터 샤프트와 플랫폼 사이에 임의의 기어, 벨트, 풀리, 체인, 캡스턴, 구동 스크류 등이 없는 직접 구동을 사용한다. 즉, 플랫폼의 각도는 이 직접 구동의 기계적 허용 오차 내에서 구동 모터의 샤프트 각도와 동일하다. 일 실시예는 역 SCARA 구성에서 2개의 회전 플랫폼을 사용한다. 일 실시예는 2개의 SCARA 축 각각을 직접 구동하기 위해 스테핑 모터를 사용한다. 일 실시예는 사인파 시뮬레이션된 전압/전류 파형으로 스테핑 모터를 구동하여 서브-단계 위치를 달성한다. 일 실시예는 오프셋 자기장 각도, 샤프트 각도 오프셋, 토크 또는 자기장 세기 오프셋을 갖는 스테핑 모터를 구동하여 모터 자체 내에 원하는 가속을 직접 구현한다. 계산된 가속도 값과 실제 모터 와이어 사이에는 증폭기 또는 펄스-폭-모듈레이터(PWM)와 같은 구동 전자장치를 사용할 수 있다.
이러한 일부 실시예에서, 플랫폼 경사 또는 축 비직교성은 기계 가공 중에 정적 또는 실시간으로 측정될 수 있으며, 그런 후 반복 출력, 웨이포인트, 이동 및 경로에 대한 조정에 의해 보정될 수 있다. 일반적으로 웨이포인트 또는 이동을 변경하는 것이 이러한 수정을 구현하는 데 바람직한 방법이다.
본 발명자는 예로서 툴 헤드 위치, 플랫폼, 부품, 워크피스, 3D 프린터, 첨가제 제조 및 다른 예를 단지 예로서 사용한다. 방법, 장치 및 시스템은 일부 실시예에서 추가 기계 가공, 기계 가공, 회전 플랫폼 또는 이동 플랫폼에 전혀 제한되지 않는다. 실시예들은 축의 갯수에 의해 제한되지 않는다. 구동은 1축, 2축, 3축, 4축, 5축 또는 6축일 수 있다. 하나 이상의 축 구동은 단일 컨트롤러 및 단일 방법 루프에 통합될 수 있거나, 별도의 그러나 협력하는 모션 엔진을 통해 축 당 하나 일 수도 있고, 또는 각 축에 대해 완전히 별개의 모션 엔진을 사용할 수도 있다. 또한, 툴 헤드가 이동하고 워크피스가 (그 순간에 툴 헤드와 관련하여) 여전히 존재하는지 또는 툴 헤드가 (그 순간에) 여전히 존재하고 워크피스가 이동하는지 여부는 청구범위와 관련이 없다. 당업자가 알고 있는 바와 같이, 하나를 다른 것 위로 이동시키는 것은 기계 시스템의 특정 타입 및 실행되는 단계 또는 모션에 따른다.
통합 컨트롤러 또는 모션 엔진의 일례는 전형적으로 하나 이상의 축에서 모션들로 구성된 "속력"의 계산이다. 모듈 또는 요소에 대한 아래의 수학식에서 볼 수 있듯이, 속력은 이동이 끝날 때 도착 시간을 계산하고 적층가공장치에서 재료의 증착율(및 절삭가공장치에서 워크피스 상의 컷팅 툴의 속도)을 계산할 뿐만 아니라 다른 계산 및 실질적인 이점을 갖는 데 유용한다.
주요 실시예는 G-코드와 같은 입력 이동 명령을 받아들이고 일반적으로 개개의 이동 명령을 웨이포인트라고 불리는 (때로는 많은) 서브 단계로 분할하는 "플래너(planner)"라고하는 계산 요소를 사용한다. 웨이포인트에는 위치와 속도가 있다. 선택적인 다음 계산 요소를 "가속도 옵티마이저"라 한다. 이 요소는 피가공 기계 시스템 또는 워크피스의 물리적 한계(또는 지정된 한계)내에 머무르기 위해 웨이포인트 위치, 웨이포인트 속도 또는 두 가지 모두를 확인하거나 필요에 따라 조정한다. 가속도 옵티마이저의 출력은 "실제 조정 속도를 갖는 웨이포인트"라 생각할 수 있다. 도 11을 참조하라.
주목할 것은, 본 명세서의 다른 곳에서 언급된 바와 같이, 이들 새로운 폐쇄루프 실시예를 사용하는 것은 종종 기계의 미리 정해진 물리적 한계 내에 머무르기 위해 웨이포인트를 변경하는 것을 요구하지 않는다는 것이다. 이러한 한계는 종종 개방루프 결정에 의해 설정되고 그런 후 스테핑 모터에서 누락된 스텝들과 같이 임의의 타입의 "고장"을 피하기 위해 설정된다. 반복 레벨에서 고유 피드백은 시스템의 실제 모션 및 속도를 측정하고, 이에 따라 모터 전력 및 툴 헤드 부하를 기반으로 한 최대 가공 속도와 같은 임의의 기계적 한계가 본질적으로 고려된다. 즉, 실시간으로 실제로 달성할 수 있는 최대 성능이 무엇이든, 기계 시스템을 "완전 가동"하는 것과 같은 이러한 실시예를 볼 수 있다.
주요 실시예는 다음에 "실시간 액추에이터 컨트롤러"라고 하는 계산 요소를 갖는다. 실시예의 방법은 이 요소 내에서 실행된다. 이 요소는 또한 장치로부터의 실시간 위치(예를 들어, 회전) 피드백을 포함하므로, 정의에 의해, 실시간으로 동작한다. 이전의 모든("업스트림") 요소는 실제 머신 모션에 앞서 또는 "오프라인"으로 계산을 할 수 있다. 그러나, 요소는 또한 실시간으로 실행될 수 있다. 요소는 또한 실시간 액추에이터 컨트롤러에 대한 입력 큐을 비우는 것과 같이 하이브리드 "사전 계산" 및 실시간 모드에서 동작할 수 있다. 즉, 요소는 "주문시" 또는 "적시에" 계산한다. 요소의 계산 및 선택적으로 계산 하드웨어(예를 들어, 물리적 프로세서)는 실시간 액추에이터 컨트롤러에 완전히 통합될 수 있다. 일 실시예에서, 이동 명령으로부터 플래너를 거쳐 가속도 옵티마이저를 거쳐 실시간 액추에이터 컨트롤러로 전달되는 데이터는 큐로서 관리되며, 본질적으로 실시간 액추에이터 컨트롤러가 작동하는 속도로 구동된다.
일 실시예에서, 이동은 직선 상에 있다. 즉, 임의의 곡선은 적절한 개수의 서브 이동으로 나뉘며, 각각은 직선이다. 이는 계산을 단순화한다.
일부 실시예는 도면 및 청구범위에 도시된 바와 같은 계산을 포함한다. 본 발명의 실시예들은 이들 도면들에서 설명된 수학식들 및 단계들을 구현하며, 이들 도면들은 청구범위를 해석하는데 사용되어야 한다.
점 A로부터 점 B로의 예시적인 이동을 고려하자. 기계 시스템은 A에서 B로 이동하는 타겟 속도를 갖는다. 따라서, B에서 A까지의 거리 및 속도를 취할 수 있고, A에서 B로 일정 속도의 이동을 위한 모터 제어 명령을 쉽게 계산할 수 있다. 그러나, 툴 헤드는 A에서 정지될 수 있으며, 타겟 속도로 즉시 가속할 수 없다. 또한, 점 B에서 매우 급격한 회전이 있을 수 있으므로, 시스템의 스프링-질량-감쇠 파라미터로 인해 B를 오버슛팅하는 것을 방지하기 위해 B에서의 최종 속도를 기계 시스템 최대 속도가 아니라 0으로 하는 것이 바람직하다. 실제로, 일부 기계는 다양한 이유로 인해 최대 속도를 가질 수 있다. 그러나, 역학에 기반한 대안 모델은 기계가 자체적으로 최대 속도가 아니라 본절적으로 모터 토크와 이동하는 질량의 함수인 최대 가속도를 가지고 있다는 것이다. 실질적인 최대 속도의 두 가지 예는 재료가 적층가공(예를 들어, 3D 프린팅)에서 규정될 수 있는 속도 또는 절삭가공에서 원하는 에지 품질을 달성하기 위한 바람직한 툴 이동 속도일 수 있다.
또한, A 및 B는 직교 X-Y-Z 좌표계에서 직선 상에 있을 수 있으나, SCARA 암 구성에서 회전 플랫폼을 사용하면 직선 상에 있지 않다. 따라서, 직교 시스템에서 A와 B 사이의 점이 회전 플랫폼의 모터 위치로 변환되므로, 추가 방향 및 관성 변경이 필요하다. 플래터, 툴 헤드 및 워크피스가 이동함에 따라, 스프링-질량-감쇠 파라미터, 관성 및 허용 오차를 비롯한 기타 요인들로 인해 직교 좌표로 다시 변환되는 모션의 절대 경로는 직선이 되지 않는다.
본 발명의 실시예는 최대 속도 제한, 임계치 또는 정점이 없다. 종래 기술은 종종 계산된 속도를 허용 범위 이내인지를 확인하기 위해 조정하거나 테스트해야 한다. 종종 그러한 경계는 계산되거나 단순히 미리 결정된 테이블 또는 상수일지라도 수동으로 설정된다. 마찬가지로, 본 발명의 실시예는 최대 가속도 제한, 임계치 또는 정점이 없다. 종래 기술은 종종 계산된 가속도가 허용 범위이내인지를 확인하기 위해 조정 또는 테스트해야 한다. 종종 그러한 경계는 계산되거나 단순히 미리 결정된 테이블 또는 상수일지라도 수동으로 설정된다.
실제로, 머신 헤드에 대해 소정의 최소 또는 최대 속도를 갖는 것이 바람직 할 수 있다. 그러나, 그러한 제한은 본 발명의 모션 제어 방법의 "플래너", "파서", "이동 생성기", "프로파일 생성기", CAM(Computer Aided Machining) 프로그램, 또는 다른 "업스트림" 계산 또는 데이터 소스에서 유래할 수 있다. 예를 들어, 플래너는 아마도 G-코드 파일에서 긴 경로를 취하여 시작, 끝 및 중간 웨이포인트로 정의된 일련의 이동으로 분해할 수 있다. 플래너는 경로의 시작과 끝 및 각각의 중간 웨이포인트에 대해 원하는 속도를 설정할 수 있다. 이들은 반드시 "최대"(또는 최소) 속도가 아니라 오히려 웨이포인트에서 "타겟" 속도인 것에 유의하라. 플래너가 최대로 윤곽이 뚜렷한 코너를 달성하고자 하면, 시작 및 끝 타겟 속도를 0으로 설정할 수 있다. 대안적인 예로서, 적층가공기계는 일정한 이송 속도 또는 예정된 범위 내의 이송 속도를 갖기를 원할 수 있다. 이 예에서, 경로의 시작 및 끝과 같이 코너에서의 속도는 플래너에 의해 최소로 하지만 0이 아닌 타겟 속도로 설정될 것이다.
본 발명의 실시예가 "점 B에 주목"하는 것은, 원래의 시작점 A와는 독립적이다는 것이다. 반복 저크 방법은 점 B에서 타겟 속도를 포함하여 툴 헤드 및 점 B의 현재 위치만을 고려한다. 툴 헤드는 점 B에 계속 가까워지지만, 발생하는 정확한 경로는 본질적으로 반복 저크 방법에 "상관 없다". 각 반복에서, 현재의 실시간 위치와 속도만 주어지면 타겟 속도로 툴 헤드를 점 B로 가져오기 위한 최선의 저크, 가속도, 속도 및 위치를 계산한다.
물론, 전형적으로 한 번에 하나의 치수에 대해 논의하지만, 대부분의 어플리케이션의 경우, 2개 이상의 축이 함께 제어된다. 따라서, 속도는 예를 들어 스칼라가 아닌 벡터이다(저크, 가속도 및 위치, 다양한 타겟, 한계 및 허용 오차 파라미터가 있다).
웨이포인트 또는 타겟 위치 또는 타겟 속도는 실시간 피드백 또는 계산된 정보 또는 둘 모두가 알려진 또는 예상된 툴 헤드 위치를 타겟의 허용 오차 내에 배치할 때 "완료"로 볼 수 있다. 웨이포인트에 대한 반복이 완료되었음을 알 수 있는 한 가지 방법은 다음 반복을 완료하기에 충분한 시간이 없다는 것이다. 위치 자체만으로는 "최종 위치"에 도달했다고 보기에 불충분하다는 것에 유의하라. 툴 헤드는 타겟 위치를 고속으로 지나쳐 오버슈팅할 수 있다. 반복 저크 방법은 툴 헤드를 타겟 위치 또한 0 또는 심지어 음의 속도일 수 있는 타겟 속도로 다시 이동시키는 데 필요한 제어 출력을 제공할 것이다.
웨이포인트가 "도달"되었을 때, 즉 현재 이동에 대한 "종료 조건"을 결정하는 또 다른 방법은 일부 파라미터가 범위를 벗어날 때이다. 특히, 계산된 저크 또는 가속도가 양수 또는 음수로 너무 크면, 상기 방법은 본질적으로 종료된다. 다음 웨이포인트로의 이동은 즉시 시작될 수 있다. 또는, 시스템이 (i) 예상도착시간(ETA)을 통해 "코스트(coast)"하도록 허용될 수 있거나, (ii) 타겟 위치에 도달 또는 통과했거나, 주어진 허용 오차 내에서 있거나, (iii) 타겟 속도에 도달 또는 통과했거나, 주어진 허용 오차 내에서 있다. 이러한 "종료 조건"은 OR 조합, AND 조합 또는 WEIGHTED 조합으로 결합될 수 있다. 종료 조건으로의 "코스팅(Coasting)"은 일반적으로 현재 속도 또는 현재 가속도 또는 조합을 유지하는 것과 관련된다. 실제로, 다른 종료 조건 및 코스팅 방법은 시스템 성능에 거의 영향을 미치지 않는다. 이는 주로 반복 저크 방법의 마지막 한두 번의 반복을 변경하는 것이 단순히 시간이 너무 짧고 워크피스의 최종 성능 또는 최종 품질에 영향을 주는 장치의 움직임의 변화가 너무 적기 때문이다.
일 실시예에서, 종료 조건에 도달하면 다음 웨이포인트는 즉시 다음 타겟이되고 반복 저크 방법은 즉시 그 이동에서 시작한다.
일 실시예에서, 웨이포인트에 대한 경로는 일련의 시간 간격으로 분해된다. 더 이상의 시간 간격이 남아 있지 않으면, 그 웨이포인트는 완료된 것으로 간주된다.
일 실시예에서, 웨이포인트에 대한 경로는 선형적인 속도 램프로서 모델링된다. 일 실시예에서, 반복 수학식 내의 파라미터는 가장 선형적인 속도 램프를 생성하도록 최적화된다. 최적화할 핵심 파라미터는 예상도착시간 또는 ETA이다. 최적화 단계 또는 시뮬레이션을 통해 이동 이전에 ETA를 최적화하는 것이 실시예 또는 실시예의 일부로서 청구된다. 최적화될 수 있는 제 2 파라미터는 루프 시간(또는 아날로그 구현의 경우, 루프 대역폭 또는 루프 대역폭에 영향을 주는 파라미터)이다.
일부 실시예에서, 최적화 단계는 실시간 반복 단계 전에 수행된다. 최적화 단계는 제어 중인 기계 또는 객체의 임의의 실시간 데이터가 없어도 수행할 수 있지만, 피가공 기계 및/또는 객체의 알려진 정적 파라미터를 사용할 수 있다. 그러나, 최적화 단계는 때때로 "정적" 파라미터를 변경하여 업데이트되거나 업데이트될 수 있다. 예를 들어, 새로운 정적 파라미터는 1, 5, 10, 15 또는 30 초마다, 또는 1, 5, 10, 15, 30 또는 60 분마다 또는 다른 시간 간격과 같은 시간 간격에 기초하여 측정되거나 계산될 수 있다. 다른 예로서, 기계의 변화 또는 기계 가공되는 물체의 변화와 같은, 이들 파라미터, 예를 들어, 다른 컷팅 툴 헤드 또는 상이한 추가 재료 또는 헤드; 무게, 비율, 탄력성 또는 섬세함을 변화시키는 물체에 대한 예상될 것 같거나 예상되는 변화에 기초하여 새로운 정적 파라미터가 측정되거나 계산될 수 있다.
이동 중에 "가장 선형적인" 속도 램프의 최적화는 당업계에 공지된 많은 최적화 알고리즘 중 임의의 하나, 예를 들어, 직선으로의 최소자승 피팅; 직선으로부터 최소 및 최대 편차의 차이 최소화, 변곡점 개수의 최소화, 계산된 경로와 직선 사이의 영역 최소화 또는 기타 알고리즘에 의해 계산될 수 있다. 이러한 알고리즘은 닫힌 형식일 수 있거나 반복적인 몬테 카를로 시뮬레이션 어닐링 또는 다른 계산 방법을 사용할 수 있다. 가장 선형적인 속도 램프를 계산하는 데 머신 러닝 또는 AI 방법을 사용할 수 있다. 이동은 세그먼트화될 수 있으며 각 세그먼트는 개별적으로 또는 집합적으로 최적화된다.
일부 실시예에서, ETA 또는 tt는 실시예의 반복적인 실시간 방법에 의해 제어되는 이동의 시작과 끝 사이에서 업데이트되지 않는다.
3D 프린팅과 같은 적층가공에서, 재료의 최적화된 공급속도가 종종 존재한다. 이는 물체 위에 프린트 헤드의 이상적인 속도가 있음을 의미한다. 그보다 빠른 속도는 기계 시스템의 기계적 능력 내에 있거나 그렇지 않을 수도 있지만, 속도가 느리면 너무 많은 재료가 프린팅된다. 효과적인 최소 재료 공급속도가 있을 수 있다. 따라서, 어떤 상황에서는, 이상적인 툴 모션은 실제로 타겟 위치를 오버슈트 한 다음 역방향 속도로 가능한 한 빨리 타겟 위치를 지나 뒤로 가는 것이다. 이러한 방식으로, 재료의 공급속도는 오버 슈트 중에는 0일 수 있으나 최소의 원하는 공급속도보다 결코 작지 않다.
유사한 문제가 절삭가공 및 다른 기계 가공 작업에도 적용된다. 유사한 문제는 가공이 아닌 모션 시스템에도 적용된다. 예를 들어, 로봇 오토바이를 생각해 보라. 오토바이는 넘어지는 것을 막기에 필요한 최소 속도를 가지고 있다. 오토바이가 장애물 코스를 통과해 이동하는 경우, 최소 속도를 유지한다는 의미라면 이상적인 위치에서 벗어나는 것이 더 낫다.
요약하면, 실시예는 툴이 현재 위치 및 속도에 어떻게 도달하는지에 관계없이, 출력 제어를 계산하기 위해 타겟 위치 및 타겟 속도와 관련하여 툴 헤드의 현재 위치 및 속도를 지속적으로 고려한다.
일 실시예에서, 3D 프린터는 역 SCARA 암에 배치된 2개의 회전 플랫폼을 사용한다. 일 실시예에서, 람다 모터는 람다 축을 중심으로 워크피스 플랫폼을 회전시키는 반면, 평행 및 옵셋 쎄타 모터는 상기 평행 및 옵셋 쎄타 축을 중심으로 람다 모터 및 워크피스 플랫폼을 회전시킨다. 두 개의 모터는 워크피스를 이동시켜 프린트 헤드 아래의 워크피스 부분이 프린터의 작업 영역 또는 평면 툴 범위 영역 내에서 평면 내 모든 지점으로 이동할 수 있게 된다. 워크피스의 각 면이 프린팅된 다음 프린트 헤드가 위로 이동하고 워크피스의 다음 면이 프린트된다. 일 실시예에서, 스테핑 모터는 람다 및 쎄타 모터로서 사용된다. 스테핑 모터의 샤프트는 플랫폼에 직접 연결되어 있으므로 플랫폼의 회전 각도는 모터 샤프트와 같다. 회전 센서는 샤프트 각도의 실시간 피드백을 제공하기 위해 모터 샤프트에 사용된다. 모터에서 플랫폼까지의 기계적 경로가 경직되어 있기 때문에, 이러한 센서는 플랫폼의 실시간 위치를 정확하게 측정한다. 프린트 헤드는 효과적으로 고정되어 있거나 각면이 프린트되어 있음에 유의하라. 플랫폼에 비해 낮게 구성된 워크피스의 경우, 이 센서는 프린트 헤드 아래의 워크피스에 스팟의 정확한 위치를 제공한다. 이 기계 시스템 구성에 대해, 일반적으로 "툴 위치" 또는 "툴 헤드"를 말할 때는 실제로 프린트 헤드 아래의 워크피스 상의 스팟을 말하는 것임에 유의하라. 워크피스가 구성되고 플랫폼에서 더 높아지면, 워크피스가 완전히 단단하지 않고 약간의 탄력성을 가지며, 또한 온도, 경화 및 기타 요인에 따라 모양이 변경되기 때문에 실시간 정확도가 떨어진다. 그러나, 이들 요인 중 일부는 미리 계산될 수 있으므로, 구성되는 워크피스가 플랫폼으로부터 더 높아질수록, 가속도 옵티마이저와 실시간 액추에이터 컨트롤러를 포함하는 일부 실시예에서의 로직, 방법 및 단계는 이 계산된 파라미터를 고려할 수 있다. 예를 들어, 최대 속도 및 최대 가속도가 감소될 수 있으며, 또한 체류 시간이 (본질적으로, 워크피스가 완전히 정지하는 것을 허용하기 위해) 0 속도 지점에 추가될 수 있다.
모터 샤프트 상에 실시간 위치 센서를 갖는 구동 모터 샤프트에 직접 연결된 플랫폼과 반복 저크 방법의 조합은 특허청구된 조합으로 예상치 못한 이점을 제공한다. 이러한 위치 피드백은 더 높은 정확도의 제조를 가능하게 한다. 그러나 대부분의 에러가 모터와 워크피스 또는 툴 헤드 사이에 있기 때문에 기존 3D 프린터의 모터 및 다른 제조 장비의 피드백은 비효율적이다. 기존의 컨트롤러가, 상기 피드백을 통해 이점적이라면, 청구된 실시예 중 일부로서 한번의 동작 내에서 여러 개의 지속적이고 변하는 모터 구동 출력 업데이트를 제공하지 않아도록, 상기 피드백을 사용하여 움직이는 동안 고정된 타겟 모터 속도를 유지한다.
종래의 기계 시스템 피드백은 한 번 이동에 대해 "고정된 원하는 속도를 달성" 또는 "고정된 원하는 위치를 달성"하지만 이동 중에 이들 2개의 타겟 파라미터 중 어느 하나를 변경하지 않기 위해 사용되어 왔다. 모션 피드백 종래 기술과는 분명히 다른 반복 저크 방법은 피드백을 사용하여 이동 중에 변하는 모터 제어 출력을 생성한다.
일 실시예에서, 샤프트 드라이브에 의해 제 2 플랫폼이 관통되는 회전 플랫폼 중 하나에 구배진 슬롯이 있다. 이 슬롯에는 플라스틱과 같이 가령 마찰면과 같은 댐핑 재료 또는 요소가 있다. 이 댐핑은 람다 및 쎄타 이동 서브시스템 중 하나 또는 모두를 포함하는 회전 플랫폼의 "스프링-질량-감쇠" 물리적 모델에서 댐퍼로 사용될 수 있다. 이는 이러한 하나 이상의 댐핑요소를 역 SCARA 암 구성에 배치하는 새로운 위치이다. 일부 실시예에서는, 마찰이 적을수록 더 좋다.
주요 실시예는 이동 또는 경로의 "히스토리"가 없다. 종래 기술에서의 이러한 히스토리는 종종 반복 동작 제어 피드백 루프에서 하나 이상의 적분항들에 의해 구현된다. 예를 들어, PID 컨트롤러에서 "I" 적분항이다.
달리 언급되지 않는 한, 여기서의 예시적인 측정 단위는 거리의 경우 밀리미터(mm)이고; 속도 또는 속력의 경우 초당 mm(mm/s); 시간의 경우 초(s); 가속도의 경우 mm/(s2); 저크의 경우 mm /(s3)이다. 다른 실시예 또는 응용 예에서, 이러한 단위들은 상이할 수 있다. 명시적으로 언급되지 않는 한, 응용, 실시예, 청구범위 또는 발명의 청구된 범위 및 폭 내에서 측정 단위 또는 상수, 변수 또는 예시 값의 제한은 없다.
반복적인 실시간 모션 제어 방법의 주요 실시예는 방법이 (제어 중인 각 축에 대해) 가속도만을 출력한다는 것이다. 즉, 실시예는 출력 위치 및 출력 속도 모두가 없다. 마찬가지로, 주요 실시예에서, 반복적인 실시간 모션 제어 방법은 타겟 위치 또는 타겟 속도를 계산하지 않는다. 오히려, 각 이동에 대해, 반복 실시간 모션 제어 방법은 고정 타겟 위치 및 타겟 속도를 입력(예를 들어, 웨이포인트)으로 취한다. 이러한 고정 타겟 위치 및 타겟 속도는 한 모션이 한 웨이포인트로 진행되는 동안 반복적인 실시간 모션 제어 방법을 실행하는 동안 변경되지 않는다. 또한, 반복 실시간 모션 제어 방법은 각 반복 현재 위치 및 현재 속도에 대한 입력을 취한다. 방법의 현재 반복의 계산의 관점에서 이러한 시작점을 "히스토리"로 볼 수 있다. 이들은, 이상적으로는, 각 반복의 시작시, "가장 최근"의 위치와 속도이다.
스테퍼 모터 기술 분야의 당업자들에게는 스테퍼 모터를 구동하는 3가지 광범위한 방법이 있다. "전체 단계"는 인접한 코일 세트를 완전히 턴오프하는 동안 한 세트의 코일을 완전히 턴온 함으로써 얻는다. 회전하는 스테핑 모터의 경우, 이 파형은 대략 역위상 구형파(矩形波)이며, 구동 파형의 1회의 풀 360°는 4개의 풀 스텝들이다. "마이크로-스텝" 모션은 인접한 코일에 별개의 중간 전압/전류를 제공함으로써 달성된다. 회전하는 스테핑 모터의 경우, 이러한 파형은 대략 (일반적으로 90°씩) 역위상의 계단 모양이다. "사인파" 드라이브("시뮬레이션된 사인파 구동"라고도 함)는 인접 코일에 완전히 연속적인 중간 전류를 제공한다. 회전하는 스테핑 모터의 경우, 이러한 파형은 대략 역위상의 사인파이다. "시뮬레이션된 사인파"는 때때로, 가령, 디지털-아날로그(D/A 또는 DA) 컨버터 또는 펄스-폭-변조(PWM) 출력으로부터 사인파 진폭의 생성이 디지털인 경우에 사용되는 용어다. 하이브리드 조합 드라이브도 또한 사용된다. 실시예들은 모션 엔진 또는 모터 컨트롤러 전자장치와 모터 자체 또는 모터 드라이버(예를 들어, 전력 증폭기) 사이에서 이런 가능한 모든 로우-레벨 구동회로를 사용한다. 일부 실시예는 특히 이 드라이브가 특히 직접 구동 시스템에서 높은 정도의 서브-스텝 위치 정확성을 제공하기 때문에 시뮬레이션된 사인파 구동을 청구한다. 또한, 시뮬레이션된 사인파 구동은 청각적으로 더 조용하고 중요한 것은 시스템에 기계적 자극을 생성하지 않으며 다른 스테퍼 모터 구동 방법도 마찬가지다.
일부 실시예는 구형파 모양 및 사인파 모양 모두의 추가 성분으로 구성될 수 있는 수정된 시뮬레이션된 사인파 구동을 사용한다. 선택적으로, 구형파 모양은 코너를 완만하게 하거나 구형파 진폭을 순간적으로 바꾸도록 변경될 수 있다.
도 2 및 도 3은 각각 강제함수인 선택적 모듈(104 및 174)을 도시한 것이다. 이 모듈의 목적은 시스템에서 비선형성을 보정하는 것이다. 예를 들어, 강제함수는 모터에 대한 코일 전류 값의 가속도(또는 토크)를 변환할 수 있다. 토크와 코일 전류 간의 관계는 선형이 아니다. 강제함수를 사용함으로써, 모듈(81)의 출력(82)이 시스템 또는 프로세스(71)에 대한 입력이다. 이 피드백 값(82)은 시스템 또는 프로세스가 그 자체로 선형화되거나 전혀 계산을 수행하지 못하게 할 수 있다. 예를 들어, 시스템 또는 프로세스(71)는 더 이상의 모터 및 위치 센서일 수 없다. (이 예에서, 현재의 속도 및 현재의 가속도는 순차적인 위치 측정치로부터 계산되거나 다른 센서에 의해 측정된다.) 시스템 또는 프로세스(71)는 본질적으로 증식하는 박테리아, 공중에서 호(弧)를 그리는 축구공, 또는 유전적 돌연변이와 같이 "덤브(dumb)"일 수 있다.
실시예의 파라미터는 때로는 tt로 식별되는 다음 웨이포인트에서의 ETA 또는 예상도착시간이다. 현재 상태에서 다음 웨이포인트로 전체 이동하는 동안 속도가 거의 일정한 경우, ETA는 간단히 거리를 속도로 나눈 값으로 추정할 수 있다. 가속도가 일정하다고 추정되는 경우, ETA는 마찬가지로 계산상 추정하기 쉽다. 그러나, 대부분의 경우 ETA는 추정하거나 계산하기가 쉽지 않는다. 일부 실시예에서, η는 그럴듯한 ETA를 조정하는 최적화 알고리즘에 의해 계산되고, 그런 후 다음 웨이포인트로의 이동의 시뮬레이션을 실행한다. 이러한 시뮬레이션은 상술한 스프레드시트와 유사할 수 있다. 시뮬레이션의 목표는 가장 선형적인 속도 램프를 찾는 것이다. "최고의" ETA는 가장 선형적인 속도 램프를 생성하는 것이다. 당업자가 인식하는 바와 같이, 가장 선형적인 속도 램프를 계산하는 많은 다른 방법, 예를 들어, 직선에 대한 최소 자승 피팅이 있다.
일반적으로, ETA가 더 길수록, 시스템은 목표 웨이포인트에 도달하기 위해 더 천천히 움직임에 유의하라. 따라서, 일반적으로 낮은 가속도가 필요하다. 가공과 같은 많은 실제 애플리케이션에서, 기본 목표는 가능한 한 빨리 작업을 완료하는 것이다. 따라서, 이러한 애플리케이션의 경우, 최단 ETA가 가장 좋다. 다른 애플리케이션에는 가속도 또는 속도 제한과 같은 제한이 있다. 이에 대해, 이들 제한 내에 최단 ETA가 가장 좋다. 또 다른 애플리케이션에서는 ETA가 이미 알려져 있다. 예를 들어, 기차역에 진입할 예정인 사전 설정된 시간을 가진 기차를 생각해 보라. 또 다른 예로, 축구 경기에서 축구공를 던질 수 있다. 축구공의 비행 시작부터 경기장에서 축구공을 잡히거나 찰 가능성 있는 ETA가 얼마인지 결정하는 것은 어렵지 않는다. 또 다른 예에서, 무대의 댄서들은 알려진 루틴을 수행하고 있을 수 있다. 따라서, 댄서의 위치와 안무를 예측하기 쉽다: 댄스 시퀀스의 끝은 알려져 있다.
종래 기술에 대한 특허 가능성
종래 기술은 "Katz"의 US5770829A; "Tian"의 US9041337B2; "Egi"의 US20130197688A; "Goor"의 US4769583A; "Kasaka"의 US5569995A 및 "Marcinkiewicz"의 US720895B2를 포함한다.
본 발명의 실시예는 다음과 같은 차이점 때문에 카츠(Katz)보다 특허가 가능하다. Katz는 반복적인 실시간 방법으로부터 위치와 속도를 모두 출력한다; 그는 가속도를 출력하지 않는다. 본 발명의 실시예는 위치 또는 속도가 아니라 가속도만 출력한다.
이 차이는 카츠(Katz)의 도 3과 그의 컬럼 1의 56-59 줄: "... 전기자를 보정 위치로 이동시키기 위해 모터 권선에서 생성될 전류를 결정하는 데 사용된다" 에서 볼 수 있다. 본 발명의 실시예는 카츠(Katz)의 "결정된 새로운 명령 속도" 및 "결정된 새로운 명령 위치" 단계가 없다. 즉, Katz의 제어 루프는 모터 컨트롤러에 원하는 위치를 출력한다는 점에서 종래적이다.
또 다른 차이점은 Katz가 ETA를 최적화하고 웨이포인트 사이에서 가장 선형적인 속도 램프를 최적화하는 주제에 대해 말이 없다는 것이다. 그는 "감독 서브 시스템의 정보는 프로파일 생성기에 의해 원하는 타겟 위치를 결정하는 데 사용된다(컬럼 1, 52-54 줄)"고만 말한다. 그는 그러한 결정에 대한 동기나 방법을 설명하지 않는다.
또 다른 차이점은 카츠(Katz)가 다수의 축 또는 축들 간의 동기화를 교시하지 않는다는 것이다. 사실, "축"이라는 단어는 카츠의 어디에도 나타나지 않는다.
마지막으로, Katz는 하기 실시예 101에 도시된 특정 계산 방법 단계를 교시하지 않는다.
본 발명의 실시예는 다음의 차이점 때문에 Tian보다 특허 가능하다. Tian은 "프로필 생성기는 사용자가 제공하는 일련의 모션 구속조건을 준수하도록 모션 프로필을 만들 수 있다"(요약서)고 기술한다. 본 발명의 실시예는 Tian의 발명의 기본인 최고 속도와 같은 "구속조건"이 없다. Tian은 도 4에서 자신의 프로파일 생성기에 대한 입력인 다섯 가지 구속조건, 즉 "샘플 시간, 속도 제한, 가속도 제한, 감속 제한 및 저크 제한"을 열거한다. 본 발명의 실시예는 Tian의 모든 구속조건이 없다. Tian의 구속조건은 모두 사용자 제공된다.
또 다른 차이점은 Tian이 타겟에 대해 새로운 위치 또는 새로운 속도를 사용한다는 것이다; 그는 본 발명의 실시예와 같이 위치 및 속도 모두를 사용할 수 없다(박스 1104, 도 11).
또 다른 차이점은 Tian의 방법은 실시간이 아니라는 것이다. 오히려, 그는 실제 동작에 앞서 자신의 모션 "프로파일"을 계산한다(박스 1108, 도 11). 따라서, 본 발명의 실시예와 같이, 그의 발명은 현재 위치, 현재 속도 또는 현재 가속도를 사용하지 않는다. Tian은 실시간인 방법을 사용하거나 교시하지 않는다(도 11의 박스 1106). Tian은 반복에서 실제 위치나 속도를 피드백으로 사용하는 방법을 사용하거나 교시하지 않는다. 오히려, 그는 입력이 "샘플 시간의 배수인 프로파일 세그먼트 지속 시간"인 비실시간 루프에서만 반복한다(박스 1208, 도 12).
또 다른 차이점은 Tian은 ETA를 최적화하고 웨이포인트 사이에서 가장 선형적인 속도 램프를 최적화하는 주제에 대해 말하지 않는다는 것이다. Tian은 ETA를 계산에 침묵하며, 또한 최적화 주제에 대해 침묵한다. 실제로, Tian은 선형 속도 램프에서 벗어나 교시한다. 오히려, 그는 완만하게 변하는 또는 구배진 속도 램프를 도 9 및 10에서 보여준다.
또 다른 차이점은, Tian은 다수의 축 또는 축들 간의 동기화를 교시하지 않는다는 것이다. 사실, "축"이라는 단어는 Tian의 어디에도 나타나지 않는다.
또 다른 차이점은 Tian이 자신의 움직임을 "세그먼트"로 분해해야 한다는 것이다. 본 발명의 실시예는 그러한 세그먼트가 없지만, 오히려 하나의 웨이포인트에서 다음 웨이포인트까지 단일 계산 동작으로서 이동을 실행한다. Tian의 "세그먼트"는 웨이포인트도 아니며 웨이포인트에 도달하기 위한 반복도 아님에 유의하라.
또 다른 차이점은 Tian의 "가속도"는 단지 그의 운동의 결과로서 기본적인 물리학에 불과하다는 것이다. 즉, 그는 단순한 물리학으로서 "가속도"를 보여주고 설명하지만, 제어 방법에서 가속도의 사용은 그의 발명이나 교시의 일부가 아니다.
본 발명의 실시예는 (실제 이동에 앞서 비실시간의) 먼저 ETA 및 속도 프로파일을 갖는 이동을 생성한 다음, 이동 중에 실시간으로 반복 저크 방법을 사용한다. Tian은 본질적으로, 이동에 앞서 그의 "프로파일"의 생성으로부터 실제 경로로 단순히 "자신이 얻은 것을 취한다".
마지막으로, Tian은 하기 실시예 101에 도시된 특정 계산 방법 단계를 교시하지 않는다.
본 발명의 실시예는 Egi에 대해 다음과 같은 차이점 때문에 특허 가능하다. Egi는 타겟 위치를 출력한다; 그는 가속도를 출력하지 않는다. 사실, 그는 실제로 "에러 펄스, PI, P2 및 P3"을 출력한다(도 14, 308 및 309). Egi는 또한 "상기 이동 가능한 유닛은 상기 남은 거리만큼 이동한다"(청구항 1). 본 청구 발명의 실시예는 위치 또는 속도가 아닌 가속도만 출력한다.
또 다른 차이점은 Egi가 그의 실시간 제어 루프에서 저크 및 가속도(도 15, S 103 및 S 105) 모두를 제한한다는 것이다. 본 발명의 실시예는 이러한 제한이 없다.
또 다른 차이점은 Egi가 그의 실시간 제어 루프에서 현재 위치만을 사용한다는 것이다(도 16, S81). 본 발명의 실시예들은 반복 실시간 제어 방법에서 현재 위치 및 현재 속도 모두를 사용한다. Egi의 현재 위치만 사용하면 시스템이 동적 시스템 변경을 용인하지 못하게 되어 큰 위치 오차항이 생성되어 가속도가 높아지고 갑자기 움직일 수 있다.
또 다른 차이점은 Egi는 동작의 시작과 끝 모두에 대해 위치 사용만 교시한다는 것이다. 그는 이동의 시작 파라미터 또는 끝 파라미터로 속도를 사용하는 것을 교시하지 않는다.
또 다른 차이점은 Egi가 모든 계산 반복에서 그의 타겟까지의 거리를 재계산하는 것을 교시한다는 것이다. 이는 계산 비용이 많이 든다. 본 발명의 실시예는 반복 방법에서 그러한 계산이 없다. 실제로, 실시예들은 반복적인 실시간 방법의 시작 이전에 (i) 방법의 본질에 따른 거리를 재계산할 필요가 없고, (ii) 이동 중에 속도 선형성의 진보된 최적화를 필요로 하지 않는다.
또 다른 차이점은 Egi가 현재 위치와 "이상적인" 경로 내의 위치 사이의 차이(편차)를 계산하는 것을 교시한다는 것이다. 본 발명의 실시예는 "이상적인" 경로로부터 이러한 위치 편차를 감지하거나 이용하지 않는다. 오히려, 실시예들은 타겟 위치 및 속도를 고려한다. 이 방법은 이상적인 경로에서 이탈하는 것과 관련하여 "신경 쓰지 않는다". 따라서, Egi는 이동 시스템의 어떠한 동작이나 특성을 보완할 수 없다. 본 실시예들은 타겟에 도달하는 것을 고려하기 때문에, 이런 본 실시예는 타겟으로 가는 도중에 임의의 동작 또는 특성을 고유하게 정정한다.
또 다른 차이점은 Egi가 최대 가속도와 비교하고 이를 제한하는 것을 교시한다는 것이다. 본 발명의 실시예는 방법에서 이러한 제한이 없다. 그러한 자유로 인한 예상치 못한 이점 중 하나가 더 나은 최적화 및 성능이다. Egi는 가속도를 정적 값으로 제한해야 한다. 본 실시예는 정적 한계가 없기 때문에 Egi의 한계보다 높은 가속도를 사용할 수 있다. 이 이점은 예를 들어 더 빠른 가공을 제공한다.
또 다른 제한은 Egi의 방법 및 기계의 성능이 사전 계산된 "이상적인" 경로를 향해 이동해야만 하는 것으로 국한된다는 것이다. 이러한 모션은 타겟에 직접적으로 관련이 없다. 반면, 본 발명의 실시예는 그대로 "우회" 이동할 필요가 없으며, 오히려 타겟 위치 및 타겟 속도를 향해 최적으로 직접 계속된다.
또 다른 차이점은, Egi는 ETA를 최적화하고 웨이포인트들 사이에서 가장 선형적인 속도 램프를 최적화하는 주제에 대해 말이 없다는 것이다. Egi는 ETA를 계산할 때 침묵하고 최적화 주제에 대해 침묵한다. 실제로, Egi는 선형적인 속도 램프에서 멀리 교시한다. 오히려, 그는 현저하고 의도적으로 변화하는 속도를 보여준다(그의 도 17).
Egi는 "복수의 구동 샤프트"에 관해서 이야기하지만, 이들 사이에서 어떠한 동기화 방법을 교시하지는 않는다. Egi는 "3개의 샤프트 또는 6개의 샤프트"를 제안하기 때문에 그의 시스템이 상당한 위치 오차를 가지며 합리적인 성능을 위해 동기화가 또한 필요하다고 가정하는 것이 합리적이다.
마지막으로, Egi는 이하의 실시예 101에 도시된 특정 계산 방법 단계를 교시하지 않는다.
본 발명의 실시예는 Goor에 대해 다음과 같은 차이점 때문에 특허 가능하다. Goor는 0이 아닌 시작 또는 타겟 속도를 교시하지 않는다(도 24b, 도 25b). 본 발명의 실시예는 가변적인 시작 및 종료 속도를 사용한다.
또 다른 차이점은 Goor가 자신의 실시간 반복 제어 루프(도 30, 도 104 및 도 106)에서만 위치를 사용한다는 것이다. 본 발명의 실시예들은 반복 실시간 제어 방법에서 현재 위치 및 현재 속도 모두를 사용한다.
또 다른 차이점은 Goor가 많은 "히스토리"를 가진 제어 루프를 교시한다는 것이다. 그의 이동 히스토리는 적분 단계의 형태이다. 그의 도 29는 5개의 별개의 적분 단계를 보여준다. 본 발명의 실시예는 이동 히스토리가 없다. Goor의 광범위한 적분 항으로 인해 자신의 발명 구현에 있어 불안정해질 수 있다.
또 다른 차이점은 Goor가 최소 시간 내에 동작을 완료하도록 교시한다는 것이다. 그의 속도는 이동 중에 매우 다양하다(도 24b, 도 25b). 본 발명의 실시예는 선형적인 속도 램프에 대한 이동을 최적화한다.
또 다른 차이점은 Goor가 저크를 위한 "뱅뱅(bang bang)" 컨트롤러만 교시하고(도 24d, 도 25d), "시간(T)는 y의 뱅뱅 제어로 최소화될 수 있다"는 것이다 (컬럼 3, 56-57째줄). Goor는 본 발명의 실시예에서 사용된 바와 같은 가변 저크값과는 멀리 교시한다. 예를 들어, 컬럼 3 내지 컬럼 14의 그의 수학식은 모두 저크에 대한 뱅뱅(즉, 단지 온 또는 오프) 값을 가정한다. 당업계에서 알려진 바와 같이, "뱅뱅" 컨트롤러는 본질적으로 본 발명의 실시예의 "완만한" 가속도에 비해 진동, 노이즈, 발진, 다른 바람직하지 않은 2차 모션, 마모 및 기타 부정적인 결과를 생성한다. 실제로, 이동에 대한 가장 선형적인 속도 변화를 최적화하는 것은 가장 완만한 가속도, 실제로, 이상적인 경우, 일정한 가속도와 밀접하게 관련 있다. Goor는 멀리 교시할뿐만 아니라 그의 뱅뱅 컨트롤러는 완만한 가속도와 반대다.
또 다른 차이점은 Goor가 "선형화된 속도"보다는 이동에 대한 "최소 시간"을 교시한다는 점이다. 이 둘은 서로 다르며 서로 호환되지 않는 목표와 프로세스이기 때문에, Goor는 청구된 실시예로부터 명확하게 멀리 교시하고 있다.
또 다른 차이점은 Goor가 그의 모터 전기자에 전류를 출력하는 것을 교시하는 것이다. 본 발명의 실시예는 모터 컨트롤러에 가속도를 출력한다. 따라서, Goor는 모터의 비선형성, 데드포인트 및 한계를 무시한다. 반면에, 본 실시예는 본질적으로 원하는 가속을 직접 유지하는 모터 특성을 고려한다. 하나의 의미에서, "모터 전류"는 피제어 시스템의 물리학과 직접적인 관련이 없다. 가속도는 직접적인 영향을 미친다. 따라서, 오히려 전기자 전류보다 가속도를 사용한 예기치 않은 장점으로는 모터 력능을 보다 효율적으로 사용하고 시스템 성능을 향상시키며 광범위한 모터를 다룰 수 있고 특정 모터 특성에 대한 의존도를 줄일 수 있으며 기타 이점들이 있다.
또 다른 차이점은 Goor가 다수의 축 또는 축들 간의 동기화를 교시하지 않는다는 것이다. 사실, "축"이라는 단어는 Goor의 어디에도 나타나지 않는다.
Goor는 청구범위 및 실시예에 설명된 특정 계산 방법 단계를 교시하지 않는다.
Kusaka는 입력으로서 토크를 수용하고 배터리 전압에 응답하는 모터 전류를 계산하는 모터 제어 알고리즘을 교시한다. Kusaka는 한 지점에서 다음 지점으로 이동하는 방법을 교시하지 않는다. Kusaka의 발명은 본 발명의 실시예가 토크를 출력하는 "모터 컨트롤러"일 수 있다. Kusaka는 토크를 계산하는 방법도, 가변 속도를 갖는 제어 시스템도, 타겟 위치와 목표를 모두 달성하기 위한 반복 제어 시스템도 교시하지 않는다.
Marcinkiewicz는 Kusaka와 마찬가지로 입력으로서 토크를 수용하고 모터 전류를 계산하는 방법을 교시한다. Marcinkiewicz는 "미리 정해진 속도 값"을 가진 모터의 "토크 안정성"을 향상시켰다. Marcinkiewicz는 한 지점에서 다음 지점으로 이동하는 방법도, 가변 속도를 갖는 제어 시스템도, 타겟 위치와 목표를 모두 달성하기 위한 반복 제어 시스템도 교시하지 않는다.
청구범위에 대한 주석
아래의 주석은 원래 출원된 것과 같은 번호가 매겨진 청구항을 나타낸다. 부여된 청구항의 번호에는 동일한 번호가 없다. 아래 텍스트는 비제한적이다. 이는 예시적인 시나리오 또는 실시예를 이해하는 것을 돕기 위해 제공된다. 아래의 주석은 35 U.S.C.§112에 따라 반드시 청구가 유효한 경우에만 청구범위를 제한해 청구범위를 해석하는 데 사용될 수 있다.
청구항 1은 모션 제어를 위한 기본 반복 방법 및 수학식을 설명한다.
청구항 2. 바람직한 실시예에서, 가속도는 센서로부터와 같이 직접적인 실시간 측정에 비해 계산된 저크값으로부터 계산된다. 실시예는 적분을 곱셈으로 대체하는 것을 포함한다: 현재 가속도 = 이전 가속도 + [(현재 저크 + 이전 저크) 곱하기 반복-시간-간격]/2. 실시예는 이전의 가속도가 0으로 설정된 이 공식을 포함한다.
청구항 3. 속도는 센서로부터와 같이 직접적인 실시간 측정에 비해 가속도로부터 계산된다. 실시예는 적분을 곱셈으로 대체하는 것을 포함한다: 현재 속도 = 이전 속도 + [(현재 가속도 + 이전 가속도) * 반복-시간-간격]/2. 실시예는 실시간 위치의 변화로부터 속도를 계산하는 것을 포함한다. 실시간을 사용할 수 없거나, 범위를 벗어 났거나, 신뢰할 수 없거나, 노이즈가 많은 경우에는 실시간 데이터 대신 시뮬레이션을 위해 계산한 속도를 사용할 수 있다. 계산된 속도는 노이즈를 줄이는 방법으로 실시간 속도와 조합될 수 있다.
청구항 4. 위치는 센서로부터와 같은 직접적인 실시간 측정에 비해 속도로부터 계산된다. 실시예는 적분을 곱셈으로 대체하는 것을 포함한다: 현재 위치 = 이전 위치 + [(현재 속도 + 이전 속도) * 반복-시간-간격]/2. 바람직한 실시예는 실시간 위치 센서로부터 위치를 수용하는 것이다. 실시간을 사용할 수 없거나, 범위를 벗어났거나, 신뢰할 수 없거나, 노이즈가 많은 경우, 실시간 데이터 대신 시뮬레이션을 위해 계산한 위치를 사용할 수 있다. 계산된 위치는 노이즈를 줄이는 방법으로 실시간 위치와 조합될 수 있다. 계산된 위치는 고착되거나 걸린 기계, 과도한 마찰, 모터 고장 등과 같은 오류를 감지하는 방법으로서 실시간 측정 위치와 비교될 수 있다. 위치는 스프레드시트 도면들에 대해 계산된다.
청구항 5. 위치, 속도 또는 가속도 중 어느 하나가 직접 또는 간접적으로 하나 이상의 실시간 센서로부터 나온 것일 수 있다. 바람직한 실시예는 실시간 센서로부터 현재 위치, 속도 및 가속도를 사용한다. 위치 또는 속도와 같은 단일 실시간 센서의 실시간 데이터를 사용하여 다른 파라미터를 계산할 수 있다. 실시예는 보다 정확한 위치 데이터를 생성하기 위해 실시간 데이터를 정정하는 비선형 룩업 테이블 또는 함수를 이용하는 것을 포함한다. 이러한 실시예는 입력으로서 실시간 데이터를 사용할 수 있고 출력으로서 보정된 위치를 사용할 수 있다. 이러한 실시예는 속도, 위치 또는 다른 상태 정보를 입력 또는 선택자로서 포함하는 다중 또는 다차원 테이블 또는 수식을 사용할 수 있다. 실시예는 스테퍼 모터의 스텝 위치를 포함하는 입력 또는 상태 정보를 갖는 비선형 테이블을 포함한다. 실시예는 스테퍼 모터의 2개의 스텝들 사이에 입력 또는 상태 정보 단계를 갖는 비선형 테이블을 포함한다. 실시예는 그러한 데이터를 평균화, 평활화, 경계 또는 오류러 검사하는 것을 포함한다. 실시예는 모션 컨트롤러에 의해 제어되는 장치의 실제 측정 또는 캘리브레이션으로부터 이러한 테이블을 생성하는 것을 포함한다.
청구항 6 및 7. 위치는 실시간 센서로부터 직접 또는 간접적으로 나온다. 청구항 5의 모든 대안적인 실시예는 청구항 6 및 7의 대안적인 실시예로서 또한 적용된다. 이러한 청구항들은 또한 스테퍼 모터와 같은 모터 샤프트 상에 직접적이거나 SCARA 플랫폼 또는 테이블을 직접 구동하는 샤프트에 직접이듯이, 샤프트 상에 직접 또는 간접적인 위치 센서를 말한다. 이 청구항은 또한 한 단계의 일부분보다 높은 센서 분해능을 말한다. 바람직한 실시예는 1/200 스텝 내지 1/4 스텝 범위의 샤프트 각위치 분해능이다. 예시적인 실시예는 풀 샤프트 회전에 대해 4000의 분해능이다. 홀효과 센서가 그러한 센서로서 사용될 수 있다. 이러한 센서는 차동이거나 단일 센서에 통합된 2, 3, 4개 이상의 홀효과 센서를 가질 수 있다.
청구항 8. 중요한 신규성은 이 방법이 출력 또는 피드백 파라미터로서의 위치를 제공하는 단계 또는 요소가 없다는 것이다.
청구항 9. 중요한 신규성은 상기 방법이 출력 또는 피드백 파라미터로서 위치 또는 속도를 제공하는 단계 또는 요소가 없다는 것이다.
청구항 9. 실제로, 실시예는 타겟 종점 위치 및 속도에 "근접"하지만, 센서의 정확도 또는 기계나 워크피스의 한계와 같은 여러 가지 현실적 이유로 완벽한 수치 목표에 도달하지 못한다. 이동이 타겟 종점에 충분히 가까울 때, 위치 또는 속도 값에 대해, 실시예는 현재 이동을 종료하고 이제 다음 웨이포인트로 반복한다. 이러한 "근접성"을 탐지하는 한 가지 방법은 p1 또는 v1이 이상적인 목표의 경계 내에 있거나, 타겟 종점에 도달하는 계산된 시간 tt가 0에 가까운 시간 범위 내에 있는 경우이다.
청구항 10. 실제로, 애플리케이션이 타겟 웨이포인트 위치 및 속도에 "접근"함에 따라, 일 실시예의 방법의 계산은 저크, 가속 또는 속도의 매우 큰 양의 값 또는 음의 값을 생성할 수 있다. 또는, 남은 시간(tt)은 반복 간격 ts, 0, 0에 가까운 값, 또는 음수가 될 수 있다. 하나의 종점 조건은 위치가 타겟(pt)의 범위 내에 있을 때이다. 또 다른 종점 조건은 위치와 속도가 모두 타겟(pt 및 vt)의 각 범위 내에 있는 경우이다. 일 실시예는 모든 축이 각 축의 각각의 pt의 범위 내에 있어야 하는 다수의 축을 포함한다. 하나의 종점 조건은 계산된 j, a 또는 v의 일부 조합이 수용 가능한 각각의 범위 밖에 있다는 것이다. 실제로, 타겟 웨이포인트에 가까울 때, 계산된 항 j 및 a는 특히 "과장"되는 경향이 있다. 실시예들은 종점 조건을 감지하거나 결정하는데 사용될 수 있는 이들 및 다른 조건들을 포함한다.
청구항 11. 파라미터(tt)는 미리 계산되거나 실시간으로 계산된 현재 시간으로부터 시간 간격으로서 측정된 "예상도착시간"이다. tt를 추정하는 것은 중요하고 신규한 단계의 실시예다. 타겟 종점 위치 및 속도에 도달하는 정확한 순간은 이러한 실제 결정이 얼마나 정확하게 결정되느냐에 달려 있기 때문에, "계산"보다는 "추정"이라 한다. 그러나, 실시예는 폐쇄 모양 계산, 반복, 시뮬레이션 또는 최적화로부터의 정확한 계산을 포함한다.
청구항 12. tt는 최적화의 목표가 현재 위치 및 속도로부터 타겟 위치 및 속도로 이동의 시뮬레이션으로부터와 같이 가장 선형적인 속도 램프, 시퀀스 또는 프로파일인 최적화 단계로부터 추정되거나 계산될 수 있다. 최적화 방법은 본 분야에 공지되어 있으며 본 명세서의 다른 곳에서 논의된다.
청구항 13. 상수 c, d 및 e는 이상적으로 각각 6, 4 및 3의 값을 갖는다. 그러나, 일부 이러한 변형은 여전히 효과적인 구현을 생성하기 때문에, 이러한 값의 변형은 침해 목적으로 사용되지 않을 수 있다. 이러한 변형은 침해를 결정하기 위한 "등가 규칙"의 적절한 법적 정의 내에 있다. 이 청구항은 그러한 미세 조정이나 기타 유사한 타입의 미세 조정 또는 에러나 인공물의 도입이 실제로 청구범위 내에 있음을 명시한다.
청구항 14는 이들 각각의 이상적인 값을 정확하게 갖는 상수 c, d 및 e를 설명한다.
청구항 15는 종점 조건의 실시예를 설명한다.
청구항 16은 역 SCARA 암을 사용하는 머신 툴을 제어하기 위한 실시예의 방법의 사용을 설명한다. 실시예는 논인버티드 SCARA 암 및 하나 이상의 1축, 2축, 3축, 4축, 5축, 6축 이상의 머신 툴을 포함하고, 2 이상의 축이 동시에 움직이며, 각각은 청구 방법의 제어하에 있다.
청구항 17. 중요하고 신규한 실시예는 동시에 2이상의 축상에 기술된 방법의 사용이다. 머신 툴 헤드가 한 번에 한 위치에만 있을 수 있기 때문에, 각 축의 이동에 대한 반복도 동시에 끝나야 한다. 일 실시예는 각 축에 대해 별개로 원하는 도달 시간(tt)을 계산한 다음, 모든 축을 사용하기 위해 도착 시간(tt)을 선택한다.
청구항 18. 이상적인 모터 또는 액추에이터는 인가된 입력에 대해 토크 또는 선형의 힘을 발생시킨다. 실제로 대부분의 모터는 인가된 전류, 전압 또는 스테퍼 모터의 경우 단계간 위상각과 그렇게 선형적이지 않는다. 또한, 명목상 스텝 번호가 있는 각위치를 또한 제공하는 스테퍼 모터는 위치가 완벽하게 선형이 아니다. 이 청구항은 입력으로서 원하는 가속도 또는 모터 토크를 취하고 적어도 하나의 모터 코일에 대해 적어도 하나의 모터 전류가 직간접적으로 되는 값을 출력하는 비선형 보정 테이블을 포함하는 방법 및 장치를 기술한다. 테이블과 물리적 모터 또는 액추에이터 사이의 중간 요소에는 스테퍼 모터, 증폭기, 펄스-폭-변조(PWM)를 포함한 모듈레이터, 드라이버, 및 추가 룩업, 변환, 선형화, 폐쇄루프 제어 요소 또는 단계를 포함한 다중 위상 모터에 대한 위상 변환이 포함될 수 있다. 실시예는 스테퍼 모터, AC 모터, DC 모터, 서보 모터, 영구 자석 모터, 동기 모터, 유도 모터, 선형 모터, 압전 트랜스듀서(PZT), 음성 코일, 레일 건, 조명, 기계적으로 움직일 수 있는 렌즈, 펌프 및 가압기, 밸브 및 기타 기계 장치를 포함한다. 실시예는 초점, 자동 초점, 초점 거리(줌), 팬, 틸트, (광학 축 주위) 회전, 색상 및 기계적으로 제어 가능한 스펙트럼 필터링과 같은 렌즈 동작을 포함한다. 이 청구항의 경우, 비선형 수식의 사용이 테이블의 정의에 포함된다. 이러한 테이블은 상태 정보를 포함할 수 있고, 테이블 출력은 특정 모터, 모터 위치, 모터 속도, 모터 부하, 테이블의 입력 또는 출력 변화율, 및 다른 상태 정보에 대한 캘리브레이션과 같은 상태 정보에 응답할 수 있다.
청구항 19. 실시예는 피제어 모터 또는 액추에이터를 포함하는 실시예 및 모터 또는 액추에이터를 제어하도록 구성된 실시예를 포함하여 임의의 청구항 또는 방법의 실시예를 구현하는 장치에 대해 구체적으로 청구된다.
청구항 20. 실시예들은 모터 또는 액추에이터를 포함하는 실시예 및 모터 또는 액추에이터를 제어하도록 적응된 실시예를 포함하여 임의의 청구범위 또는 방법 실시예를 구현하는 시스템에 대해 구체적으로 청구된다.
정의
용어 사용법에 대한 주석 - 위치, 속력, 속도, 토크 및 가속도를 언급할 때 명칭의 명백한 불일치가 있을 수 있다. 이는 부분적으로는 그러한 위치와 같은 일부 용어가 본질적으로 1차원, 2차원 또는 그 이상의 차원에서 한 점을 설명하는 데 고유하게 사용되기 때문이다. 위치는 일반적으로 스칼라 또는 벡터로 사용된다. 그러나, 속력이라는 용어는 일반적으로 스칼라이지만 속도는 일반적으로 벡터이다. 위치와 마찬가지로 가속도라는 용어는 일반적인 사용으로 스칼라 또는 벡터가 될 수 있다. 또한, 가속도는 직선 운동의 맥락에서 일반적으로 사용되는 반면, 토크는 회전 운동의 맥락에서 사용된다. 저크(Jerk)는 스칼라 또는 벡터로서 및 또한 선형 또는 회전 운동으로서 가속도의 미분이다. 또한, 명백하게 단일 축 또는 스칼라 세트만을 언급하는 논의, 청구범위, 실시예 또는 도면은 병행한 독립적인 실시예로서 또는 다축 간의 동기화된 이동으로서 다축을 말하도록 확장될 수 있다. 또한, 더 넓은 제어 루프 또는 사전정의된 프로파일이 다축에서 작동할 수 있지만, 여러 개의 개별 모터 컨트롤러가 개별 축에 사용되고, 모두 하나의 큰 제어 루프 내에 있다. 또한, "회전 위치" 또는 "회전 속도"가 사용될 수도 있지만, 일반적으로 더 간단한 용어인 "위치"및 "속도"가 사용된다. 따라서, 청구범위, 실시예, 도면 또는 명세서의 구성을 위해 이들 용어의 부당하거나 제한적인 해석이 사용되지 않는 것이 중요하다. 일반적으로, 문맥이 명확하지 않거나 제한 사항이 달리 명시되지 않는 한, 가장 폭 넓은 합리적인 해석이 사용되어야 한다. 이는 스칼라 대 벡터, 선형 대 회전, 및 부호 대 부호없음 모두에 적용된다.
"가속도"는 단위 시간당 속도이다. "속도" 정의 및 용어 사용에 대한 주석을 또한 참조하라.
"전기자 전류", "전기자 전압", "모터 전류" 및 "모터 전압"은 하나 이상의 모터 코일에서 측정되거나 측정 가능한 전기 신호이다. 이들은 모터, 기계 및 드라이버 구성 및 동작의 결과일 수 있거나, 모터를 구동시키려 시도하는 모터 제어, 드라이버 또는 모듈레이터 회로의 출력 또는 의도된 출력일 수 있다. 이들은 모터 접점, 모터 코일에서 측정될 수 있으며, 모터 제어, 드라이버 또는 모듈레이터 회로의 출력이다. 이러한 신호는 토크, 가속도 또는 속도가 아니라는 것을 인식하는 것이 중요한다. 이 단락은 본 특허 출원 및 다른 교시, 예, 논의 또는 간행물에서 사용된 용어의 적절한 구성에 중요하다.
"빌드 영역"은 3D 적층 프린터의 경우 일반적으로 플래터에 객체를 인쇄할 수 있는 수평 영역을 말한다.
"조합". "조합"이라는 용어를 2개 이상의 요소들의 목록에 적용하는 데 사용된 경우, 목록의 하나 이상의 요소를 의미한다. 예를 들어, 3개의 요소 목록에는 7개의 가능한 조합이 있다.
"제어 축"은 위치들 사이에서 제어된 속도를 포함하여 선형 위치 또는 회전 위치 중 원하는 위치로 제어할 수 있는 축을 말하며, 회전 속도가 가변적인 경우에 연속 회전 축, 가령 드릴 프레스 또는 선반 회전 축은 제외한다. 제어 가능한 원하는 위치 분해능은 기계의 워크피스에서 원하는 피쳐 크기의 정확도와 비교되어야 한다.
"종점 조건"은 오차 조건, 초과 범위 조건 또는 사전결정된 제한 내에서 타겟 또는 목표에 도달하는 것을 포함하되 이에 국한되지 않는 반복을 중지시키는 임의의 조건을 말한다.
"저크(Jerk)"는 단위 시간당 가속도이다. "가속도" 및 "속도" 정의 및 용어 사용에 대한 주석을 참조하라.
"기계 시스템"은 절삭형 머신 툴과 같은 기계 또는 3D 프린터와 같은 적층형 머신 툴과 같은 기계일 수 있다. 그러나, 이는 차량 또는 차량의 일부와 같이 완전히 다른 기계 시스템일 수 있다. 예를 들어, 차량, 드론, 우주선, 오토바이 또는 스키어와 같은 계산 모션 엔진으로 제어되는 자가 운전 또는 인간 제어 시스템이 이러한 기계 시스템의 예일 수 있다. 청구범위 해석과 관련하여, "기계 시스템"은 등가 위치, 그 위치의 제 1 및 제 2 미분 및 제 1 미분을 변경시키는 등가의 힘으로 설명될 수 있는 그런 모든 시스템을 포함하여 종래의 기계 시스템에 대한 아날로그로 작동하는 시스템을 포함하는 것으로 널리 해석되어야 한다.
"플래너". 일부 실시예에서 플래너는 모션 엔진이고 그 반대도 마찬가지이다. 그러나, 일부 실시예에서, 모션 엔진은 단지 플래너보다 더 많은 계산 요소를 포함한다. 자세한 내용은 도 5 및 명세서의 텍스트를 참조하라.
"플랫폼 또는 빌드 플레이트"는 일반적으로 턴테이블과 부품 사이의 중간 구성요소로서 (중력에 의해 부착된 것을 포함하여) 턴테이블에 부착된 표면을 말한다. 부품을 빌드 플레이트에 직접 조립하거나 다른 중간 구성요소를 사용할 수 있다. 이는 "플래너 툴 영역"을 포함할 수 있다.
"위치"는 주요 방법 및 장치의 경우 단일 축 스칼라 값이다. 이러한 방법과 장치로의 입력으로, 때로는 모션 제어 시스템의 피드백으로, 위치와 상기 위치의 미분은 여러 축에 대한 벡터가 될 수 있다. 부호 또는 부호없음이 있을 수 있다. 용어 사용에 대한 주석을 참조하라.
"툴 범위 영역"은 적층 또는 절삭 기계가공에 사용할 수 있는 부품 표면 상에 또는 그 위에 있는 영역이다. 수평이 아니거나 가공 체적이 부품 표면 아래에 있는 부품 표면의 경우, "위"라는 용어의 의미가 그에 따라 조정된다.
"속도". 반복 저크 방법 및 모터 컨트롤러의 경우 속도는 단위 시간당 위치인 축당 스칼라이다. 다른 단어는 레이트(rate)이다. 주요 방법 및 장치의 맥락에서, 속도는 단일 축에 적용되기 때문에 방향 벡터를 포함하지 않는다. 속도는 일반적으로 부호화되지만, 그렇지 않을 수도 있다. 부호 또는 방향이 내재되어 있을 수 있다. 용어 사용에 대한 주석을 참조하라.
이상적, 이상적으로, 최적 및 바람직한이라는 용어에 대해, 본 발명을 설명하는 문맥에서 사용될 경우, "이상적", "이상적으로", "최적", "해야 한다" 및 "바람직한"이라는 용어의 사용은 특히 본 발명의 하나 이상의 적용을 위한 하나 이상의 실시예에 대한 최선의 실시예를 말한다. 이러한 최선의 실시예는 비제한적이며, 당업자가 인식하는 바와 같이 모든 실시예, 애플리케이션 또는 구현 기술에 대해 최선의 실시예가 아닐 수 있다.
May, Could, 선택, 모드, 대안 및 특징이라는 용어. 본 발명을 설명하는 문맥에서 사용될 경우, "may," "could," "선택", "모드", "대안" 및 "특징"이 특히 본 발명의 다양한 실시예를 구체적으로 참조한다. "도시된" 또는 "코드"라는 용어를 사용하는 예시, 설명 및 도면은 비제한적인 실시예를 말한다. 모든 도면은 비제한적인 실시예이다. 본원의 모든 설명은 당업자가 이해하는 바와 같이 비제한적이다.
본 발명의 청구권은 명세서, 도면, 청구범위 및 요약서의 모든 특징, 요소, 예, 청구항, 실시예, 표, 값, 범위 및 도면의 모든 조합 및 서브 조합을 명시적으로 포함한다. 본 발명의 청구권은 청구범위, 명세서 및 도면에 기재된 모든 방법의 임의의 조합을 구현하는 장치 및 시스템을 명시적으로 포함한다. 본 발명의 청구권은 청구범위, 명세서 및 도면에 기재된 장치 및 시스템을 임의의 조합으로 사용하는 방법을 명시적으로 포함한다.

Claims (20)

  1. (i) [p, v, a]를 포함하는 제 1 상태 벡터, [pt, vt]를 포함하는 타겟 벡터 및 ts를 수신하는 단계;
    (ii) 타겟 위치(pt) 및 속도(vt)에 도달하기 위해 현재 시간으로부터의 도달 시간 간격(tt)을 추정하는 단계;
    (iii) 수학식을 사용하여 저크(j)를 계산하는 단계:
    j = - [c *(d * pt-d * p + a * tt2 + e * tt * v + tt * vt)]/tt3;
    (iv) 업데이트 된 p, v 및 a를 수용하는 단계;
    (v) (p, v, a, 또는 j)의 임의의 조합을 모션 컨트롤러에 출력하는 단계; 및
    (vi) 종점 조건에 도달할 때까지 속도(ts)로 단계(iii) 내지(v)를 반복하는 단계를 포함하고,
    여기서, p, v 및 a는 각각 초기 위치, 속도 및 가속도이며, pt 및 vt는 각각 타겟 위치 및 속도이고, ts는 반복시간 간격이며, c, d 및 e는 상수인, 반복 모션 제어 방법.
  2. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 다음 수학식:
    a = [(j)의 0에서 ts까지 적분] + a';
    을 사용하여 a를 계산하는 단계를 포함하고,
    여기서, a'는 바로 이전의 a인, 반복 모션 제어 방법.
  3. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 다음 수학식:
    v = [(a)의 t0에서 ts까지의 적분] + v';
    을 사용하여 v를 계산하는 단계를 포함하고,
    여기서, v '는 바로 이전의 v인, 반복 모션 제어 방법.
  4. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 다음 수학식:
    p = [(v)의 t0에서 ts까지의 적분] + p';
    을 사용하여 p를 계산하는 단계를 포함하고,
    여기서, p '는 바로 이전의 p인, 반복 모션 제어 방법.
  5. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 p, v 및 a 중 하나 이상에 대해 하나 이상의 센서 각각으로부터 실시간 입력을 수신하는 단계를 포함하는, 반복 모션 제어 방법.
  6. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 p에 대해 회전 샤프트 위치 센서로부터의 실시간 입력을 수용하는 단계를 포함하고,
    상기 모션 컨트롤러는 스테퍼 모터를 제어하도록 되어 있으며,
    상기 센서의 분해능은 상기 스테퍼 모터의 1 스텝의 적어도 1/4인, 반복 모션 제어 방법.
  7. 제 1 항에 있어서,
    업데이트된 p, v 및 a를 수용하는 단계는 회전 샤프트 위치 센서로부터 실시간 샤프트 위치 입력(x)을 수용하는 단계를 포함하고,
    상기 모션 컨트롤러는 스테퍼 모터를 제어하도록 되어 있으며,
    상기 센서의 분해능은 상기 스테퍼 모터의 1 스텝의 적어도 1/4이고,
    상기 업데이트된 p는 입력(x) 및 출력(p)을 포함하는 위치-정정 룩업 테이블로부터 나온, 반복 모션 제어 방법.
  8. 제 1 항에 있어서,
    모션 컨트롤러에 (p, v, a 또는 j) 단계의 임의의 조합의 출력은 p를 출력하지 않는 반복 모션 제어 방법.
  9. 제 1 항에 있어서,
    모션 컨트롤러에 (p, v, a 또는 j) 단계의 임의의 조합의 출력은 p 및 v를 출력하지 않는 반복 모션 제어 방법.
  10. 제 1 항에 있어서,
    상기 종점 조건은 (p, v 및 tt)의 임의의 개별 요소 또는 조합이 각각 타겟 위치, 타겟 속도 및 제로의 미리 결정된 한계 내에 있다는 조건을 포함하는 반복 모션 제어 방법.
  11. 제 1 항에 있어서,
    도달 시간 간격(tt)을 추정하는 단계는 상기 방법의 실행에 대한 시뮬레이션에 응답하고, 후보 tt 값들은 변경되며, 제 1 상태 벡터, 타겟 벡터 및 ts는 일정하게 유지되는 반복 모션 제어 방법.
  12. 제 11 항에 있어서,
    도달 시간 간격(tt)을 추정하는 단계는 상기 시뮬레이션 동안의 속도 곡선의 최적화에 더 반응하여, 상기 최적화의 목표가 최대 선형성을 갖는 속도 곡선인 반복 모션 제어 방법.
  13. 제 1 항에 있어서,
    상수 c, d 및 e는 값 6, 4 및 3을 중심으로 각각의 미리 결정된 범위를 전제로 각각 값 6, 4 및 3을 갖는 반복 모션 제어 방법.
  14. 제 13 항에 있어서,
    각각의 범위가 0인 반복 모션 제어 방법.
  15. 제 1 항에 있어서,
    상기 종점 조건은:
    p의 미리 결정된 최종 위치 정확도 내의 p,
    v의 미리 결정된 최종 속도 정확도 내의 v,
    미리 결정된 최종 가속도 범위 밖의 a; 및
    미리 결정된 최종 저크 범위 밖의 j의,
    임의의 조합에 응답하는 반복 모션 제어 방법.
  16. 제 1 항에 있어서,
    상기 모션 컨트롤러는 역 SCARA 암을 포함하는 머신 툴의 모션을 제어하는 반복 모션 제어 방법.
  17. 제 1 항에 있어서,
    (vii) 2개 이상의 축들에 대해 각각의 예상 도달 시간 간격(tt')을 계산하는 단계; 상기 2개 이상의 축들 모두에 대한 tt의 값으로서 각 tt' 중 가장 큰 것을 선택하는 단계를 더 포함하고,
    단계(vii)는 단계(ii)에서 또는 그 전에 수행되는 반복 모션 제어 방법.
  18. 제 1 항에 있어서,
    상기 모션 컨트롤러는 단계(v)로부터의 입력(a) 및 출력(I)을 포함하는 비선형 테이블을 포함하고;
    여기서, I는 모션 컨트롤러에 의해 제어되는 모터의 하나 이상의 코일 전류인 반복 모션 제어 방법.
  19. 제 1 항에 따른 방법을 구현하는 장치.
  20. 제 1 항에 따른 방법을 구현하는 시스템.
KR1020187034056A 2016-04-27 2017-04-26 반복 모션 제어 방법 KR102285648B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662328544P 2016-04-27 2016-04-27
US62/328,544 2016-04-27
PCT/US2017/029712 WO2017189771A1 (en) 2016-04-27 2017-04-26 Method of iterative motion control

Publications (2)

Publication Number Publication Date
KR20190051895A KR20190051895A (ko) 2019-05-15
KR102285648B1 true KR102285648B1 (ko) 2021-08-04

Family

ID=60160097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034056A KR102285648B1 (ko) 2016-04-27 2017-04-26 반복 모션 제어 방법

Country Status (5)

Country Link
US (1) US10611024B2 (ko)
EP (1) EP3449322A4 (ko)
JP (1) JP2019530031A (ko)
KR (1) KR102285648B1 (ko)
WO (1) WO2017189771A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3731994B1 (en) * 2017-12-26 2023-10-11 ABB Schweiz AG Method and apparatus for robotic machining
CN109991915A (zh) * 2017-12-29 2019-07-09 深圳市优必选科技有限公司 一种机器人的运动控制方法、装置及机器人
JP7239944B2 (ja) 2018-02-05 2023-03-15 クリエイト・イット・リアル・アンパルツセルスケープ 3dオブジェクトをプリントするためのプリンタ
US10852724B2 (en) * 2018-04-30 2020-12-01 DJI Research LLC Customizable waypoint missions
JP7167522B2 (ja) * 2018-07-27 2022-11-09 セイコーエプソン株式会社 ロボットアーム
CN109895097B (zh) * 2019-02-19 2022-07-05 宁波凯德科技服务有限公司 一种焊接机器人运动模型次梯度方法
CN110220513B (zh) * 2019-04-30 2022-10-04 中国科学院深圳先进技术研究院 一种目标定位的方法、系统、无人机及存储介质
CN110221575B (zh) * 2019-05-31 2020-07-10 华中科技大学 一种基于加工参数的薄壁零件机器人加工路径生成方法
US11014237B2 (en) * 2019-07-11 2021-05-25 Intelligrated Headquarters, Llc Methods, systems, and apparatuses, for path planning and execution in a robotic system
CN110716504B (zh) * 2019-10-21 2022-06-14 同济大学 一种基于多闭环串级控制的滚球系统运动控制方法
CN110703684B (zh) * 2019-11-01 2022-09-30 哈工大机器人(合肥)国际创新研究院 一种端点速度不限的轨迹规划方法及装置
CN111123705B (zh) * 2019-12-18 2021-09-21 南京航空航天大学 一种螺旋桨及传动轴系统的主动振动控制的设计方法
TWI717985B (zh) 2020-01-30 2021-02-01 財團法人工業技術研究院 工具機調整方法與其調整系統
CN111240252B (zh) * 2020-03-25 2021-04-20 武汉迈信电气技术有限公司 一种基于fpga的多编码器数据交互系统及方法
KR102418548B1 (ko) * 2020-05-22 2022-07-07 국방과학연구소 레이더 시스템 분석 장치 및 분석 방법
CN111585475B (zh) * 2020-07-09 2022-10-28 湖南科技大学 无刷直流电机伺服系统扰动抑制与高精度跟踪控制方法
CN112157661B (zh) * 2020-12-02 2021-03-05 成都卡诺普自动化控制技术有限公司 一种基于机器人动力学的关节运动轨迹优化方法
CN112683270B (zh) * 2020-12-07 2024-10-11 中国矿业大学 一种基于平滑变结构滤波的gnss/sins/磁力计的组合方法
CN112223298B (zh) * 2020-12-08 2021-03-05 成都卡诺普自动化控制技术有限公司 一种确定机器人关节最大加速度和最大速度的方法
CN116615701A (zh) * 2020-12-24 2023-08-18 松下知识产权经营株式会社 马达控制装置
EP4160329A1 (de) * 2021-09-30 2023-04-05 Siemens Aktiengesellschaft Verfahren zum betreiben einer werkzeug- und/oder produktionsmaschine
CN114541502B (zh) * 2022-02-21 2023-01-10 北京合众鼎新信息技术有限公司 一种阀控液压缸控制方法及推土机推土铲自动控制系统
CN116756515B (zh) * 2023-07-07 2024-02-23 广州大学 基于深度卷积生成对抗网络的人工地震波生成方法
CN117148731B (zh) * 2023-11-01 2024-01-09 佛山科学技术学院 基于单点误差提取的可变迭代运动控制方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030102A (ja) 2011-07-29 2013-02-07 Shin Nippon Koki Co Ltd 数値制御装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US720895A (en) 1902-07-07 1903-02-17 Charles A Herriman Quick-acting vise.
US4769583A (en) 1987-05-01 1988-09-06 General Motors Corporation Motion control system with minimum time path generation
EP0638457B1 (en) 1993-08-10 1999-03-03 Toyota Jidosha Kabushiki Kaisha Apparatus for driving and controlling synchronous motor using permanent magnets as its field system
US5770829A (en) * 1997-06-09 1998-06-23 Seiberco Incorporated General purpose position control system having recursive profile generator
JP4541218B2 (ja) * 2005-04-08 2010-09-08 三菱電機株式会社 指令生成装置
TWI302234B (en) * 2005-08-10 2008-10-21 Delta Electronics Inc Motion command reshaping method with analog input for position s curve
US7818073B2 (en) * 2006-04-20 2010-10-19 Asml Netherlands B.V. Method for obtaining improved feedforward data, a lithographic apparatus for carrying out the method and a device manufacturing method
US8543773B2 (en) * 2008-08-25 2013-09-24 International Business Machines Corporation Distributed shared memory
US8176896B2 (en) * 2008-10-08 2012-05-15 GM Global Technology Operations LLC Target wheel position detection systems
JP5146512B2 (ja) * 2010-10-13 2013-02-20 オムロン株式会社 制御装置、制御システムおよび制御方法
US9566710B2 (en) * 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
KR101324319B1 (ko) * 2012-02-10 2013-11-01 삼성중공업 주식회사 위치 프로파일 생성방법 및 생성장치
US9041337B2 (en) * 2012-05-18 2015-05-26 Linestream Technologies Motion profile generator
US10133246B2 (en) * 2014-09-12 2018-11-20 Canon Kabushiki Kaisha Position control device and position control method, optical device, and image pickup apparatus
US9776640B1 (en) * 2016-03-30 2017-10-03 Linestream Technologies Automatic determination of maximum acceleration for motion profiles

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030102A (ja) 2011-07-29 2013-02-07 Shin Nippon Koki Co Ltd 数値制御装置

Also Published As

Publication number Publication date
EP3449322A1 (en) 2019-03-06
US20190126474A1 (en) 2019-05-02
JP2019530031A (ja) 2019-10-17
WO2017189771A1 (en) 2017-11-02
KR20190051895A (ko) 2019-05-15
US10611024B2 (en) 2020-04-07
EP3449322A4 (en) 2019-05-22

Similar Documents

Publication Publication Date Title
KR102285648B1 (ko) 반복 모션 제어 방법
Su et al. Automatic disturbances rejection controller for precise motion control of permanent-magnet synchronous motors
CN108189036B (zh) 力矩控制方法、装置、机器人及存储介质
Fateh On the voltage-based control of robot manipulators
JP5650814B1 (ja) フィードフォワード制御を備えたモータ制御装置
JP5366840B2 (ja) 軌跡制御装置
JP2004355632A (ja) スライディングモード制御器を有するモーションコントローラ
US11340578B2 (en) Machine control system, machine controller, and vibration suppression command generation method
JP2019530030A (ja) 運動制御デバイス及び運動制御方法
JP2014002474A (ja) サーボ制御装置
Wu et al. Iterative learning variable structure controller for high-speed and high-precision point-to-point motion
Krishnamurthy et al. Control design and implementation for sawyer motors used in manufacturing systems
Kokuryu et al. Wide-bandwidth bilateral control using two stage actuator systems: Evaluation results of a prototype
JPH10323070A (ja) モータ制御装置
JP4241240B2 (ja) 多軸サーボ制御装置
Rustemli et al. Ripple reduction at speed and torque of step motors used on a two-axis robot arm
Ko et al. Synchronizing motors uisng PID with Dual-Motor-Driving
Holzgethan et al. IMPLEMENTATION OF TRAJECTORY PLANNING FOR THE MINIATURISED INDUSTRIAL ROBOTS OF THE MOROBOT PLATFORM
JP2012175875A (ja) 同期制御装置と同期制御方法
Purohit Design, Simulation, and Controls of a Tendon-Driven Scrubbing Robot
WO2019188154A1 (ja) モータ駆動装置
Craig Mechatronic Model-Based Design Applied to An H-Bot Robot
Rosario et al. Actuator selection of CNC machine tool based in dynamical modeling and control
JP3355101B2 (ja) 制御装置
JP2005085111A (ja) 機械システムの制御方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant