KR101378824B1 - 기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법 - Google Patents

기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법 Download PDF

Info

Publication number
KR101378824B1
KR101378824B1 KR1020120113619A KR20120113619A KR101378824B1 KR 101378824 B1 KR101378824 B1 KR 101378824B1 KR 1020120113619 A KR1020120113619 A KR 1020120113619A KR 20120113619 A KR20120113619 A KR 20120113619A KR 101378824 B1 KR101378824 B1 KR 101378824B1
Authority
KR
South Korea
Prior art keywords
motion
speed
profile
torque command
acceleration
Prior art date
Application number
KR1020120113619A
Other languages
English (en)
Other versions
KR20130122704A (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
Priority claimed from US13/451,924 external-priority patent/US8710777B2/en
Priority claimed from US13/474,919 external-priority patent/US9041337B2/en
Application filed by 라인스트림 테크놀로지스 filed Critical 라인스트림 테크놀로지스
Publication of KR20130122704A publication Critical patent/KR20130122704A/ko
Application granted granted Critical
Publication of KR101378824B1 publication Critical patent/KR101378824B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P23/00Arrangements or methods for the control of AC motors characterised by a control method other than vector control
    • H02P23/14Estimation or adaptation of motor parameters, e.g. rotor time constant, flux, speed, current or voltage
    • 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/404Numerical 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 arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • 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/37388Acceleration or deceleration, inertial measurement
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41163Adapt gain to friction, weight, inertia
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41381Torque disturbance observer to estimate inertia

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Electric Motors In General (AREA)
  • Feedback Control In General (AREA)
  • Control Of Position Or Direction (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)

Abstract

제어되는 기계 시스템에 대한 관성 및 마찰 계수를 추정하기 위한 시스템 및 방법이 제공된다. 하나 이상의 실시예에서, 관성 추정기는 테스트 시퀀스 동안 시간에 따라 계속해서 변동하는 토크 명령 신호를 생성할 수 있다. 모션 시스템의 속도는 시변의 토크 명령 신호에 응답하여 테스트 시퀀스 동안 측정되고 기록된다. 이후, 관성 추정기는 모션 시스템으로 보내진 토크 명령 신호 및 측정된 속도 데이터에 기초하여 모션 시스템의 관성 및/또는 마찰 계수를 추정한다. 또한 시스템 및 방법은 모션 제어 시스템에서 지점 대 지점간 이동의 궤적을 제어하기 위하여 제약 기반, 시간 최적의 모션 프로파일을 생성하기 위하여 제공된다. 하나 이상의 실시예에서, 프로파일 생성기는 모션 프로파일 세그먼트 중 적어도 하나에 대하여 시간에 따라 계속해서 변동하는 저크 레퍼런스를 포함하는 ST 곡선 모션 프로파일을 계산할 수 있다.

Description

기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법{METHOD FOR AUTOMATICALLY ESTIMATING INERTIA IN A MECHANICAL SYSTEM AND FOR GENERATING A MOTION PROFILE}
본 출원은 2012년 4월 20일에 제출된 미국 출원 번호 13/451,924 및 2012년 6월 18일에 제출된 미국 출원 번호 13/474,919의 우선권의 이익을 주장하며, 양 출원의 모든 내용은 여기에서 참조함으로써 포함된다.
본 개시는 일반적으로 모션 제어(motion control)에 관련되며, 특히 모션 제어 시스템에서 파라미터로 사용하기 위한 관성 및 마찰 계수의 추정과 제약 기반 및 시간 최적의 모션 프로파일(constraint-based, time-optimal motion profile)의 생성에 관련된다.
많은 자동화 응용은 모션 제어 시스템을 사용하여 기계 위치 및 속도를 제어한다. 그러한 모션 제어 시스템은 일반적으로 사용자 정의 제어 알고리즘이나 프로그램에 따라 모터로의 위치 및 속도 제어 명령을 보내는 컨트롤러(controller)의 지시로 동작하는 하나 이상의 모터 또는 유사한 동작 장치(actuating device)를 포함한다. 일부 모션 제어 시스템은 폐루프 구성(closed-loop configuration)에서 동작하여, 그에 따라 컨트롤러는, 모터로 하여금 목표 위치로 이동하도록 명령하거나 목표 속도(요구되는 상태)로 전환되도록 명령하고, 모터의 실제 상태를 나타내는 피드백 정보를 수신한다. 컨트롤러는 피드백 정보를 모니터링하여 모터가 목표 위치 또는 속도에 도달했는지를 결정하고 제어 신호를 조정하여 실제 상태와 요구되는 상태 사이의 오차를 수정한다.
모션 제어 시스템의 설계자는 모션 속도 및 시스템 안정도 사이의 최적의 트레이드 오프(trade-off)를 달성하도록 시도한다. 예컨대, 컨트롤러가 모터로 하여금 기계 컴포넌트(component)가 높은 토크(torque)에서 목표 위치로 전환하도록 명령하면, 기계는 먼저 높은 속도(즉, 시간 효율 적인 방식)로 현재 위치 및 요구되는 위치 사이의 거리를 좁힐 수 있지만, 높은 토크로 인하여 요구되는 위치를 오버슈트(overshoot)하기 쉽다. 따라서, 컨트롤러는 기계가 요구되는 위치로 돌아가도록 수정된 신호를 적용하여야 한다. 이는 요구되는 위치에 모션 시스템이 수렴하기 전에 수 차례의 그러한 반복을 취할 수 있어, 요구되지 않는 기계 진동(machine oscillation)을 야기한다. 반대로, 모터가 낮은 토크로 움직이도록 명령하는 것은 초기 상태 전환의 정확도를 높일 수 있고, 기계 진동을 줄이거나 제거할 수 있지만, 희망하는 위치에 기계를 배치하도록 요구되는 시간의 양을 증가시킬 것이다. 이상적으로, 컨트롤러 이득 계수는 상태 전환의 속도 및 시스템 안정도 사이의 트레이드 오프를 최적화하도록 선택되어야 한다. 컨트롤러에 대한 적절한 이득 계수를 선택하는 프로세스는 튜닝(tuning)으로 알려져 있다.
컨트롤러 이득 계수의 주어진 세트를 가지는 컨트롤러로부터의 신호에 대한 제어되는 기계 시스템의 응답은, 관성 및 마찰 계수를 포함하는 기계 시스템의 물리적 특성에 따른다. 관성은 가속 또는 감속에 대한 모션 시스템의 저항을 나타낸다. 마찰 계수는 회전자(rotor) 및 축(shaft) 사이의 마찰과 같은, 모터에 의해 나타나는 마찰을 나타낸다. 제어되는 기계 시스템의 관성 및 마찰 계수에 대한 정확한 추정은 튜닝 프로세스를 단순화하고 시스템의 성능을 향상시킬 수 있다. 그러나, 주어진 기계 시스템의 이러한 파라미터들에 대한 정확한 값을 식별하는 것은 어려울 수 있다. 일부의 경우에, 관성은 정격 모터 데이터(rated motor data) 및 로드(load)를 포함하는 컴포넌트의 물리 데이터(무게, 크기, 등)에 기초하여 수동 계산을 이용하여 추정된다. 그러한 계산은 번거로우며 시간 소비적일 수 있으며, 이러한 중요한 파라미터에 대한 정확한 값을 산출하지 못할 수 있다.
모션 제어의 다른 태양에서, 모션 프로파일은 종종 위치 또는 속도 상태 사이의 전환을 용이하게 하도록 사용된다. 예컨대, 컨트롤러가 모션 시스템이 (예컨대, 제어 알고리즘 또는 사용자의 요청에 따라) 새로운 위치로 이동해야 하거나 그 속도를 변환해야 한다고 결정하면, 컨트롤러는 모션 시스템을 그 현재의 위치/속도에서 목표 위치/속도로 전환하기 위한 위치 또는 속도 궤적 (모션 프로파일이라 지칭됨) 을 계산하여야 한다. 모션 프로파일은 시스템이 현재 상태에서 목표 상태로 이동함에 따른 모션 시스템의 시간에 따른 속도, 가속도 및/또는 위치를 정의한다. 이러한 모션 프로파일이 계산되면, 컨트롤러는 모션 프로파일을, 모션 프로파일에 의해 정의된 궤적을 통하여 모션 시스템을 움직이기 위한 적절한 제어 신호로 변환한다.
일부 응용에서, 모션 프로파일의 다양한 세그먼트(segment)(또는 단계(stage))는 미리 정해진 사용자 정의 제약(예컨대, 최대 속도, 최대 가속도 등)에 기초하여 계산되며, 여기서 위 제약은 모션 시스템의 기계적 제한에 해당할 수 있다. 이러한 제약 및 요구되는 목표 위치 및/또는 속도가 주어지면, 컨트롤러는 요구되는 이동 또는 속도 변화를 수행하는 데에 사용되는 모션 프로파일을 계산할 것이다. 결과적인 모션 프로파일은 또한 컨트롤러가 일반적으로 사다리꼴 프로파일(trapezoidal profile) 또는 S 곡선 프로파일 중 하나를 생성하도록 구성되는 프로파일의 유형의 함수이다. 사다리꼴 프로파일에 대하여, 컨트롤러는 세 개의 별개의 단계(가속 단계, 일정 속도 단계 및 감속 단계)에 따라 모션 프로파일을 계산할 것이다. 그러한 프로파일은 사다리꼴 속도 곡선이 된다. S 곡선 프로파일 유형은 이러한 전환에 대응하는 4개의 추가적인 단계를 추가함으로써 사다리꼴 프로파일을 수정한다. 이러한 추가적인 단계는 일정(또는 0) 속도 단계 및 일정 가속/감속 단계 사이의 점진적인 전환을 허용하여, 매끄러운 동작을 제공하고 모션 프로파일에 걸쳐 더 미세한 정도(finer degree)의 제어를 제공한다.
사다리꼴 프로파일은 항상 최대로 정의된 가속도율로 가속 또는 감속되므로, 이러한 프로파일 유형은 S 곡선 프로파일에 비하여 더 빠른 지점 대 지점간 모션을 달성하려는 경향이 있다. 그러나, 일정(또는 0) 속도 및 가속 단계 사이의 전환이 갑작스러우므로, 사다리꼴 곡선은 이러한 전환에서 과도한 시스템 저크(excessive system jerk)를 일으킬 수 있다. 또한, 사다리꼴 모션 프로파일은 정확도를 감소 시키거나 컨트롤러로 하여금 모션 장치를 요구되는 목표로 되돌리기 위한 정정 시간(settling time) 및 추가적인 일을 요구할 수 있음으로, 사다리꼴 모션 프로파일을 이용하면 목표 위치 또는 속도를 오버슈트하는 더 큰 위험이 있다. 대안적으로, S 곡선 프로파일은 일정 속도 및 가속/감속 페이스페이즈(phase) 사이의 보다 점진적인 전환으로 인하여 더 큰 정확도를 얻을 수 있으나, 초기 지점 대 지점간 이동에 보내는 추가적인 시간의 비용이 들게 마련이다.
상기 기술된 바는 단지 종래의 모션 제어 시스템이 직면한 과제 중 일부의 개요를 제공하도록 의도된 것이다. 종래의 시스템의 기타 과제와 여기에서 기술된 다양한 비제한적인 실시예의 이익을 대조하는 것은 이하의 설명을 검토함으로써 더 분명하게 될 수 있다.
이하는 하나 이상의 실시예의 간략화된 요약을 제시하여 그러한 실시예의 기본적인 이해를 제공하도록 한다. 이러한 요약은 모든 고려되는 실시예를 포괄하는 개요는 아니며 모든 실시예의 핵심 또는 필수 요소를 식별하지도 임의의 실시예 또는 모든 실시예의 범위를 기술하지도 않도록 의도된 것이다. 그 목적은 이후에 제시되는 더 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 실시예의 일부 개념을 제시하는 것이다.
본 개시의 하나 이상의 실시예는 제어되는 기계 시스템에 대한 관성 및 마찰 계수를 자동적으로 추정하기 위한 시스템 및 방법에 관련된다. 이를 위하여, 관성 추정 시스템은 컨트롤러에 명령하여 토크 제어 신호를 모터로 보낼 수 있으며, 토크 제어 신호는 정의된 최대 및 최소 토크 값 사이에서 시간에 따라 계속적으로 변동한다. 이러한 토크 제어 신호는 관성 추정 시스템에서 정의된 테스트 시퀀스(test sequence)에 기초하여 제어될 수 있다. 비제한적인 예시에서, 테스트 시퀀스(testing sequence)는 토크 제어 신호가 정의된 증가율로 점진적으로 증가할 것이라고 특정할 수 있으며, 이로 인해 모터가 가속하게 된다. 정의된 트리거에 응답하여, 토크 제어 신호는 점진적으로 0으로 감소되어, 모터가 감속되어 휴식 상태(rest state)로 될 수 있다.
이러한 가속 및 감속 페이스페이즈 동안, 관성 추정 시스템은 토크 제어 신호에 응답하여 시간에 따른 모터의 속도를 측정하고 기록할 수 있다. 이후 관성 컴포넌트는 시변 토크 신호(time-varying torque signal) 및 측정된 속도 곡선에 기초하여 기계 시스템에 대한 추정된 관성 및 추정된 마찰 계수 중 하나 또는 양자를 결정할 수 있다. 추정된 관성 및/또는 마찰 계수는 컨트롤러에 의해 이용되어 그 후 시스템에 대한 적절한 컨트롤러 이득의 식별을 용이하게 할 수 있다.
본 개시의 다른 태양은 제약 기반 및 시간 최적의 모션 프로파일을 효율적으로 생성하기 위한 시스템 및 방법에 관련된다. 이를 위하여, 컨트롤러 내에 배치된 프로파일 생성기는 수학적 알고리즘에 영향을 미쳐, 실시간으로 제약 기반 및 시간 최적의 지점 대 지점간 모션(point-to-point motion)을 해결하고 이에 기초한 궤적을 계산할 수 있다. 매끈하고 정확한 지점 대 지점간 모션을 달성하기 위하여, 프로파일 생성기는 프로파일의 적어도 하나의 가속 또는 감속 세그먼트에 대한 시간에 따른 연속적인 저크 레퍼런스(continuous jerk reference)를 가지는 프로파일을 생성하는 ST 곡선 프로파일 유형에 기초하여 궤적을 계산할 수 있다. 시변의 저크 레퍼런스를 포함하는 모션 프로파일을 계산함으로써, 본 개시의 프로파일 생성기는 종래의 사다리꼴 프로파일 또는 S 곡선 프로파일에 비하여 더 매끈하고 더 안정적인 모션을 얻을 수 있다.
프로파일 생성기에 의해 생성된 ST 곡선 프로파일은 비대칭적 가속 및 감속 페이즈를 지원할 수 있다. 종래에, 비대칭적인 가속 및 감속은 사다리꼴 프로파일으로만 지원되고 더 매끈한 S 곡선 프로파일로는 지원되지 않는다. 여기에서 기술된 기법에 따라 생성된 ST 곡선은 더 매끈한 모션 프로파일로 사용될 비대칭적 가속 및 감속을 허용할 수 있다. 일부 실시예에서, 여기에서 기술된 프로파일 생성기는 또한 비대칭적 가속 및 감속을 지원하는 S 곡선 프로파일을 생성할 수 있다.
다른 태양에서, 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 최종 궤적에서는 사용되지 않을 궤적 세그먼트에 대한 계산을 생략함으로써 계산 효율을 향상시킬 수 있다. 즉, 세그먼트 중 하나 이상이 사용되지 않을 경우에라도 모든 7 프로파일 단계에 대하여 프로파일 데이터를 계산하는 대신, 여기에서 기술된 프로파일 생성기는 주어진 궤적에 대하여 최종 모션 프로파일에서 사용될 그 프로파일 단계들만 계산하여, 컨트롤러 내에서 연산 오버헤드(computational overhead)를 감소시킬 수 있다. 프로파일 생성기는 어느 모션 프로파일의 세그먼트가 주어진 지점 대 지점간 이동에 대하여 스킵(skip)될 수 있고 그에 따라 남아있는 세그먼트를 계산할지를 자동적으로 결정할 수 있다.
다른 태양에 따르면, 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 전체의 프로파일 시간이 모션 컨트롤러의 샘플 시간의 배수(multiples of sample time)가 되도록 함으로써 지점 대 지점간 이동의 효율 및 정확도를 더 향상시킬 수 있다. 예시적인 기법에서, 프로파일 생성기는 주어진 지점 대 지점간 이동에 대하여 시간 최적의 해를 계산하고, 결과적인 프로파일의 각각의 세그먼트의 지속 시간을 결정하며, 이러한 지속 시간이 샘플 시간의 배수이도록 반올림(round)한다. 이후 프로파일 생성기는 이러한 반올림된 프로파일 시간과 일치하도록 프로파일에 대한 저크, 가속/감속, 속도 및/또는 위치 레퍼런스를 재계산할 수 있다. 따라서, 궤적 출력은 샘플 점과 나란해져, 전체의 프로파일 시간이 두 개의 샘플 시간 사이에 해당할 때 발생하는 작은 차이에 대하여 보상하도록 하는 요구를 완화할 수 있다.
이하의 설명 및 첨부된 도면은 여기에서 하나 이상의 실시예의 특정 예시적인 태양을 상세히 제시한다. 그러나, 이러한 태양은 암시적이지만, 다양한 실시예의 원칙이 사용될 수 있는 다양한 방법 중 몇 가지이고, 기술된 실시예는 모든 그러한 태양 및 그 균등물을 포함하도록 의도된다.
도 1은 간략화된 폐루프 모션 제어 구조의 블록도이다.
도 2는 예시적인 비제한적 관성 추정 시스템의 블록도이다.
도 3은 관성 추정기와 연관된 입력과 출력을 예시하는 블록도이다.
도 4는 예시적인 테스트 시퀀스 동안 관성 추정기 및 모션 제어 시스템 사이의 상호 작용을 도시하는 블록도이다.
도 5는 시간에 따른 예시적인 토크 명령 u(t) 및 대응하는 속도 피드백 v(t)을 도시한 도면이다.
도 6은 관성 컴포넌트 및 마찰 계수 컴포넌트를 가지는 관성 추정기를 도시하는 블록도이다.
도 7은 관성 추정기가 모션 컨트롤러에 대하여 독립 컴포넌트로서 동작하는 예시적인 구성의 블록도이다.
도 8은 관성 추정기에 의하여 생성된 추정된 관성 및 마찰 계수를 사용하는 예시적인 모션 제어 튜닝 어플리케이션을 도시한다.
도 9는 제어되는 기계 시스템에 대한 관성 및 마찰 계수를 추정하기 위한 예시적인 방법의 흐름도이다.
도 10은 관성 및 마찰 계수를 추정하도록 모션 제어 시스템에서 테스트 시퀀스를 실행하기 위한 예시적인 방법의 흐름도이다.
도 11은 모션 제어 시스템에서 모션 프로파일을 생성할 수 있는 예시적인 모션 프로파일 생성 시스템의 블록도이다.
도 12는 프로파일 생성기를 활용하는 예시적인 모션 컨트롤러 블록도이다.
도 13은 예시적인 위치 프로파일 생성기의 입력 및 출력을 도시하는 블록도이다.
도 14는 예시적인 속도 프로파일 생성기의 입력 및 출력을 도시하는 블록도이다
도 15는 종래의 사다리꼴 및 S 곡선 프로파일과 예시적인 ST 곡선 프로파일을 그래픽적으로 비교한 도면이다.
도 16은 모든 7 단계를 활용하는 예시적인 S 곡선 프로파일을 도시한다.
도 17은 일정 속도 단계를 스킵하는 예시적인 S 곡선 모션 프로파일을 도시한 도면이다.
도 18은 일정 가속 단계 및 일정 감속 단계를 스킵한 예시적인 S 곡선 프로파일을 도시한 도면이다.
도 19는 일정 가속, 일정 속도, 일정 감속 단계를 스킵한 예시적인 S 곡선 프로파일을 도시한 도면이다.
도 20은 모션 제어 시스템에서 지점 대 지점간 이동에 대한 모션 프로파일을 계산하기 위한 예시적인 방법의 흐름도이다.
도 21은 모션 컨트롤러의 샘플 시간에 부합하는 제약 기반 및 시간 최적의 모션 프로파일을 계산하기 위한 예시적인 방법의 흐름도이다.
도 22는 세그먼트 스킵을 이용하는 지점 대 지점간 이동에 대한 모션 프로파일을 계산하기 위한 예시적인 방법의 흐름도이다.
도 23은 여기에서 기술된 하나 이상의 실시예를 구현하기 위한 예시적인 네트워크 또는 분산된 컴퓨팅 환경을 나타내는 블록도이다.
도 24는 여기에서 기술된 하나 이상의 실시예를 구현하기 위한 예시적인 컴퓨팅 시스템 또는 동작 환경을 나타내는 블록도이다.
본 항목에서는 다양한 실시예가 도면을 참조하여 기술되며, 동일한 참조 번호는 전반에 걸쳐 동일한 요소를 지칭한다. 이하의 설명에서, 설명을 위하여, 많은 특정 세부 사항이 본 개시의 이해를 돕기 위하여 제시된다. 그러나, 그러한 실시예는 이러한 특정 세부사항 없이, 다른 방법, 컴포넌트, 내용 등으로 실행될 수 있다는 것을 이해할 수 있을 것이다. 기타 예시에서, 구조 및 장치가 블록도 형태로 도시되어 하나 이상의 실시예를 기술하는 것을 용이하게 한다.
여기에서 기술된 시스템 및 방법은 제어되는 기계 시스템에 대한 추정된 관성 및 마찰 계수를 생성하기 위한 기법에 관련된다. 본 개시의 하나 이상의 실시예는 여기에서 더 상세히 정의될 테스트 시퀀스를 통하여 기계 시스템을 구동함으로써 실질적으로 자동화된 방식으로 이러한 파라미터를 추정할 수 있다. 테스트 시퀀스의 결과는 시스템에 대한 정확한 관성 및 마찰 계수 추정을 생성하도록 사용될 수 있다. 이러한 추정된 파라미터는 이 후 모션 시스템의 정확한 튜닝 및 제어와 간략화를 용이하게 하기 위하여 사용될 수 있다.
관성 및 마찰 계수 추정
도 1은 간략화된 폐루프 모션 제어 구조를 도시한다. 컨트롤러(102)는 기계적인 로드(load)(106)를 구동하는 모터(104)를 제어하도록 프로그램된다. 컨트롤러(102), 모터(104) 및 로드(106)는 예시적인 모션 제어 시스템의 기본적인 컴포넌트를 구성한다. 예시적이고 비제한적인 응용에서, 로드(106)는 단일축 로봇 또는 다중축 로봇의 축이나 포지셔닝 시스템(positioning system)을 나타낼 수 있다. 그러한 응용에서, 컨트롤러(102)는 모터(104)가 요구되는 속도로 요구되는 위치에 로드(106)를 이동시키도록 명령하는 제어 신호(108)를 보낸다. 제어 신호(108)는 모터(104)에 직접적으로 제공될 수 있거나, 모터(104)에 전달되는 전력(및 이후에 모터의 속도 및 방향)을 제어하는 모터 드라이브(motor drive)(도시되지 않음)에 직접적으로 제공될 수 있다. 피드백 신호(110)는 거의 실시간으로 모터(104) 및/또는 로드(106)의 현재 상태(예컨대, 위치, 속도 등)를 나타낼 수 있다. 서보-구동 시스템(servo-driven system)에서, 피드백 신호(110)는, 예컨대, 모터의 절대 위치 또는 상대 위치를 추적하는 인코더(encoder) 또는 리졸버(resolver)(도시되지 않음)에 의해 생성될 수 있다. 속도 센서가 없는 센서 없는 시스템에서, 피드백 신호는 속력/위치 추정기에 의해 제공될 수 있다. 이동 동작 중에, 컨트롤러는 피드백 신호(110)를 모니터링하여 로드(106)가 정확하게 목표 위치에 도달하는 것을 보장할 수 있다. 컨트롤러(102)는 피드백 신호(110)에 의해 나타나는 로드의 실제 위치와 목표 위치를 비교하고, 실제 위치와 목표 위치 사이의 오차를 감소시키거나 제거하기 위한 요구에따라 제어 신호(108)를 조정한다.
다른 예시적인 응용에서, 로드(106)는 모터(104)에 의해 구동되는 스피닝 로드(spinning load)(예컨대, 펌프, 세탁기, 원심 분리기(centrifuge), 등)를 나타낼 수 있으며, 여기서 컨트롤러(102)가 그 로드의 회전 속도를 제어한다. 이러한 예시에서, 컨트롤러(102)는 제1 속도에서 제2 속도로 전환하도록 (제어 신호(108)를 통하여) 모터(104)로 명령을 제공하며, 피드백 신호(110)에 기초하여 제어 신호(108)에 필요한 조정을 한다. 본 출원의 파라미터 추정은 상기 기술된 모션 제어 시스템의 예시적인 유형을 사용하는 데에 제한되지는 않으며, 임의의 적절한 모션 제어 응용에 적용될 수 있다는 것이 인정될 것이다.
요구되는 위치 또는 속도와 (피드백 신호(110)에 의해 보고된 바와 같은) 목표 위치 또는 속도 사이의 오차에 응답하여 컨트롤러(102)에 의해 생성된 제어 신호 출력은 제어 루프에 대한 이득 계수에 의존한다. 적절한 이득 선택이 제어되는 기계 시스템의 물리적 특성에 따르므로, 설계 공학자는 적절한 이득 계수를 식별(즉, 제어 루프를 튜닝)하기 위하여 종종 시행 착오 접근법을 사용해야 한다. 예컨대, 높은 관성(가속 또는 감속에 대한 저항)이 있는 기계 시스템은 새로운 위치 또는 속도로의 이동을 개시하도록 비교적 높은 초기 토크를 요구할 수 있는데, 특히 애플리케이션이 목표 위치/속도에 빠른 수렴을 요구하는 경우 그러하다. 그러나, 높은 토크 명령은 오버슈트의 가능성을 높여, 시스템을 목표로 되돌리는 역수정을 필요하게 한다. 비최적의 이득 환경(non-optimal gain setting)은 시스템이 목표 위치 또는 속도로 자리잡기 전에 다수의 교정 반복을 수행함에 따라 요구되지 않는 기계 진동을 일으킬 수 있다. 그러한 진동은 불안정성을 도입하고, 시스템 지연을 야기하며, 시스템을 안정한 상태로 가져오도록 요구되는 추가적인 일의 결과로서 과도한 전력을 소모할 수 있다. 모터의 마찰은 또한 기계 시스템이 주어진 제어 신호에 어떻게 응답하는지 영향을 줄 수 있으므로, 제어 시스템을 튜닝할 때에 고려될 요인이다.
제어 시스템 튜닝은 기계 시스템의 관성 및 마찰 계수의 정확한 추정이 알려져 있다면 간략화될 수 있다. 이러한 파라미터를 아는 것은 또한 동작 중의 시스템 성능을 향상시킬 수 있다. 따라서, 본 출원의 하나 이상의 실시예는 실질적으로 자동화된 방식으로 제어되는 기계 시스템의 관성 및 마찰 계수를 정확히 추정할 수 있다.
도 2는 기계 시스템의 관성 및 마찰 계수의 추정된 값을 생성할 수 있는 예시적이고 비제한적인 관성 추정 시스템의 블록도이다. 관성 추정기(202)는 토크 명령 생성기(204), 속도 모니터링 컴포넌트(206), 관성 컴포넌트(208), 마찰 계수 컴포넌트(210), 인터페이스 컴포넌트(212), 하나 이상의 프로세서(214), 및 메모리(216)를 포함할 수 있다. 다양한 실시예에서, 토크 명령 생성기(204), 속도 모니터링 컴포넌트(206), 관성 컴포넌트(208), 마찰 계수 컴포넌트(210), 인터페이스 컴포넌트(212), 하나 이상의 프로세서(214) 및 메모리(218) 중 하나 이상은 관성 추정기(202)의 기능 중 하나 이상을 수행하도록 서로 전기적으로 및/또는 통신적으로 결합될 수 있다. 일부 실시예에서, 컴포넌트(204, 206, 208, 210 및 212)는 메모리(216)에 저장되고 프로세서(214)에 의해 실행되는 소프트웨어 명령어들을 포함할 수 있다. 관성 추정기(202)는 또한 도 2에서 도시되지 않은 기타 하드웨어 및/또는 소프트웨어 컴포넌트와 상호 작용할 수 있다. 예컨대, 프로세서(214)는 키보드, 마우스, 디스플레이 모니터, 터치스크린, 또는 기타 그러한 인터페이스 장치와 같은 하나 이상의 사용자 인터페이스 장치와 상호 작용할 수 있다.
인터페이스 컴포넌트(212)는 사용자 입력을 수신하고 임의의 적절한 포맷(예컨대, 시각, 청각, 촉각 등)으로의 사용자에 대한 출력을 렌더링(render)하도록 구성될 수 있다. 사용자 입력은, 예컨대, (이하에서 더 상세히 설명될) 관성 추정 시퀀스를 실행하면 관성 추정기에 의해 사용되는 사용자 입력 파라미터일 수 있다. 토크 명령 생성기(204)는 정의된 테스트 시퀀스에 따라 시간에 따라 계속해서 변화하는 토크 제어 명령을 출력하도록 구성될 수 있다. 속도 모니터링 컴포넌트(206)는 관성 및 마찰 계수를 계산함에 있어 사용하기 위한 기계 시스템에 대한 속도 데이터를 수신할 수 있다. 일부 실시예에서, 속도 모니터링 컴포넌트(206)는 토크 명령 생성기(204)에 의해 생성되는 적용되는 토크 제어 명령에 응답하여 시간에 따라 모터의 속도를 측정하고 기록할 수 있다. 대안적으로, 속도 모니터링 컴포넌트(206)는 측정된 속도 데이터를 분리된 측정 기기로부터 수신할 수 있다. 관성 컴포넌트(208) 및 마찰 계수 컴포넌트(210)는 토크 명령 생성기(204)에 의해 생성된 시변 토크 명령 및 속도 모니터링 컴포넌트(206)에 의해 획득된 측정된 속도 곡선에 기초하여 관성 및 마찰 계수를 계산하도록 구성될 수 있다. 하나 이상의 프로세서(214)는 개시된 시스템 및/또는 방법을 참고하여 여기에 기술된 기능 중 하나 이상을 수행할 수 있다. 메모리(216)는 개시된 시스템 및/또는 방법을 참고하여 여기에 기술된 기능을 수행하기 위한 컴퓨터 실행가능 명령어 및/또는 정보를 저장하는 컴퓨터 판독가능 매체일 수 있다.
테스트 시퀀스를 통하여 시스템을 운용하고 그 결과에 기초하여 추정을 계산함으로써 기계 시스템의 관성 및 마찰 계수에 대한 추정을 생성할 수 있다. 도 3은 (관성 추정기(202)와 유사한) 관성 추정기(302)와 연관된 입력 및 출력을 도시하는 블록도이다. 관성 추정기(302)는 모션 시스템을 구동하는 모터에 명령하여 주어진 토크로 특정 방향으로 회전하는 토크 명령(310)을 생성할 수 있다. (스텝형 토크 출력(step-shaped torque ouput)을 내는) 갑작스런 스텝으로 일정한 토크 값 사이에서 전환하는 하나 이상의 일정 토크 명령을 발행하는 것 보다는, 관성 추정기(302)는 토크 값이 최대 토크 값 및 최소 토크 값 사이에서 시간에 따라 계속해서 변화하도록 토크 명령(310)을 제어할 수 있다. 관성 추정기(302)는 이하에서 더 상세히 논의될 바와 같이, 사용자 정의 파라미터를 가지는 테스트 시퀀스에 따라 토크 명령(310)을 통하여 발행되는 토크 값을 제어한다.
모션 시스템은 관성 추정기(302)에 의해 발행된 토크 명령(310)에 따라 가속하거나 감속할 것이며, 모션 제어 시스템으로부터의 속도 피드백(304)은 관성 추정기(302)에 제공된다. 속도 피드백(304)은 토크 명령(310)의 응용에 대응하여 시간에 따라 모션 시스템의 속도를 나타낸다. 예시적인 테스트 시퀀스에서, 관성 추정기(302)는 속도 피드백(304) 및 하나 이상의 사용자 정의 설정 값의 함수로서 토크 명령(310)을 제어할 수 있다. 사용자 정의 설정 값은 토크 명령 신호의 상한 및 하한을 정의하는 하나 이상의 토크 제한(306), 및/또는 토크 명령(310)을 제어하고 추정을 생성하도록 사용되는 트리거 속도 밸브(trigger velocity valve)를 정의하는 하나 이상의 속도 체크 포인트(check point)(308)를 포함할 수 있다.
테스트 시퀀스가 완료되자마자, 관성 추정기는 모션 시스템의 관성(312)의 추정 및/또는 모션 시스템의 마찰 계수(314)의 추정을 생성한다. 관성 추정기(302)는 모션 시스템 및 대응하는 속도 피드백(304)에 발행되는 토크 명령(310)에 기초하여 이러한 추정을 결정한다. 하나 이상의 실시예에서, 관성 추정기(302)는 시간에 따른 (토크 명령(310)에 대응하는) 토크 곡선 및 (속도 피드백(304)에 대응하는) 속도 곡선의 선택된 부분을 적분할 수 있으며, 이들 적분의 함수로서 관성 추정(312) 및 마찰 계수 추정(314)를 계산할 수 있다.
도 4는 예시적인 테스트 시퀀스 동안의 관성 추정기 및 모션 제어 시스템 사이의 상호 작용을 도시한다. 이러한 예시에서, 모션 시스템(426)은 컨트롤러(418)에 의해 제공되는 제어 신호(420)에 응답하는 모터(424)를 포함한다. 모터(424)는 포지셔닝 축(positioning axis), 기계의 회전 컴포넌트 또는 기타 모터 구동 로드와 같은, 로드(도시되지 않음)를 구동하도록 사용된다. 컨트롤러(418)는 또한 모터(424)에 대한 실질적으로 실시간의 상태 데이터(예컨대, 위치, 속력 등)를 제공하는, 피드백(422)을 모니터링 한다.
도시된 예시에서, 관성 추정기(402)는 명확성을 위하여 컨트롤러(418)로부터 분리된 구성으로 도시된다. 그러한 구성에 대하여, 관성 추정기(402)는 데이터를 컨트롤러(418) 또는 모션 시스템(426)의 기타 요소와 유선 또는 무선 네트워킹, 배선된 데이터 링크(hardwired data link), 또는 기타의 그러한 통신 수단을 포함하나 이에 제한되지 않는 임의의 적절한 통신 수단을 통하여 교환할 수 있다. 기타 실시예에서, 관성 추정기(402)는 컨트롤러(418)의 집적된 컴포넌트일 수 있다. 예컨대, 관성 추정기(402)는 컨트롤러(418)에 있는 하나 이상의 프로세서에 의해 실행되는 컨트롤러의 운영 체제 및/또는 제어 소프트웨어의 기능적인 컴포넌트일 수 있다. 관성 추정기(402)는 또한, 컨트롤러(418)의 기타 기능적인 요소와 데이터를 교환하는 회로판이나 집적 회로와 같은 컨트롤러(418) 내에 있는 하드웨어 컴포넌트일 수 있다. 관성 추정기(402)의 기타 적절한 구현예는 본 개시의 특정 실시예의 범위 내에 있다.
테스트에 앞서, 하나 이상의 사용자 정의 파라미터(412)는 (도 2와 관련되어 기술된 인터페이스 컴포넌트(212)와 유사한) 인터페이스 컴포넌트(406)을 통하여 제공된다. 이러한 파라미터는 (도 2의 토크 명령 생성기(204)와 유사한) 토크 명령 생성기(408)에 의해 생성될 토크 명령에 상한과 하한을 정의하는 최대 토크(umax) 및 최소 토크(umin)를 포함할 수 있다. 일부 실시예에서, 관성 추정기(402)는 사용자에 의해 정의될 최대 토크(umax)만을 요구할 수 있으며, 정의된 최대 토크의 크기를 순방향 및 역방향 양자에 대한 극한 값으로서 사용할 수 있다. 기타 실시예에서, 관성 추정기(402)는 순방향 및 역방향 각각에 대한 상이한 토크 설정 값을 감안하는 umax 및 umin 양자에 대한 값을 수용할 수 있다. umax 및 umin에 대하여 선택된 값은 모션 시스템(426)의 기대되는 동작 제한에 해당할 수 있으며, 이에 따라 시스템의 전체 토크 프로파일에 걸쳐 모션 시스템(426)의 특징에 기초하여 결정될 관성 및 마찰 계수를 허용한다. 사용자 정의 파라미터(412)는 또한 이하에서 더 상세히 설명될 테스트 시퀀스의 단계를 정의하는 데에 사용되는 임계 속도를 정의하는 하나 이상의 속도 체크 포인트(v1, v2, v3, ...)를 포함할 수 있다.
인터페이스 컴포넌트는 토크 명령 생성기(408)에 사용자 정의 파라미터(412)를 제공한다. 테스트가 개시되면, 토크 명령 생성기(408)는 토크 명령(414)을 모션 시스템(426)에 출력한다. 토크 명령 생성기(408)가 토크 명령을 시간에 따라 계속해서 변동시킬 것이므로 토크 명령(414)은 u(t)로 나타낸다. 도 4에서 도시된 구성에서, 관성 추정기(402)는 토크 명령을 컨트롤러(418)에 보내어, 모터(424)로 하여금 (제어신호(420)를 통하여) 지시된 토크에서 지시된 방향으로 회전하도록 명령한다. 모터가 회전함에 따라, 속도 모니터링 컴포넌트(410)는 (스스로가 피드백(422)을 통하여 모터(424)의 속도를 측정하는) 컨트롤러(418)로부터 속도 데이터(416)를 읽는다. 시간에 따라 측정된 속도(416)는 v(t)로 나타낸다.
테스트가 진행됨에 따라, 토크 명령 생성기(408)는 미리 정의된 테스트 시퀀스에 따라 토크 명령(414)을 변동시킬 수 있고, 테스트 시퀀스의 페이스는 사용자 정의 파라미터(412)에 관하여 속도 피드백(416)에 의해 트리거된다. 예시적인 테스트 시퀀스는 이제 시간에 따라 그래프화된 예시적인 토크 명령(u(t)) 및 대응하는 속도 피드백(v(t))를 도시하는 도 5를 참조하여 설명된다. 토크 그래프(502)에서 도시된 바와 같이, 토크 명령 신호(u(t))는 umax 및 umin로 제한된다. 속도 그래프(504)에서 도시된 속도 체크 포인트(v1, v2 및 v3)는 테스트 시퀀스의 페이스 전환을 결정할 것이다. umax, umin, v1, v2 및 v3의 값은 (예컨대, 도 4의 사용자 정의 파라미터(412)와 같이) 테스트에 앞서 사용자에 의해 정의될 수 있다.
시각 t = 0에서 테스트가 시작되면, 적용된 토크 신호(u(t)) 및 모터 속도(v(t))는 모두 0이다. 처음에, 토크 명령 생성기는 음의 토크 신호를 모션 시스템에 보내어, 모션 시스템으로 하여금 음의 방향으로 가속되도록 한다. 이러한 예시적인 테스트의 제1 페이즈 동안, 토크 명령 생성기는 모터의 속도(v(t))가 v1에 도달할 때까지 또는 토크 명령(u(t))이 umin에 도달할 때까지 토크 명령(u(t))을 점진적으로 감소시킨다. 본 예시에서, 모터 속도(v(t))는 시각 t = t1에서 v1에 도달하여, 테스트의 제2 페이스를 트리거한다. 그래프(502)에 도시된 바와 같이, 토크 명령(u(t))는 시각 t = 0 및 t = t1 사이에서 실질적으로 일정한 비율로 계속적으로 감소된다. 하나 이상의 실시예에서, 토크 명령이 감소 또는 증가되는 비율(즉, u(t)의 기울기)은 (예컨대, 인터페이스 컴포넌트(406)를 통하여) 관성 추정기(402)의 사용자 정의 파라미터로서 구성될 수 있다.
(시각 t = t1에서 시작하는) 테스트의 제2 페이스에 대하여, 토크 명령 생성기는 모터 속도(v(t))가 속도 체크 포인트(v3)에 도달하거나 토크 명령(u(t))이 토크 설정 값(umax)에 도달할 때까지 토크 명령(u(t))을 점진적으로 증가 시킨다. 본 예시에서, 모터 속도(v(t))가 속도 체크 포인트(v3)에 도달하기 전에 토크 명령(u(t))이 상한(umax)에 도달한다. 모터는 이 시각에 여전히 가속하고 있으므로, 토크 명령 생성기는 속도(v(t))가 v3에 도달할 때까지 토크 명령 신호를 umax로 유지한다. 속도 그래프(504)에서 도시된 바와 같이, 모터 속도는 시각 t = t4에서 v3에 도달한다. 속도(v(t))가 도크 명령 신호가 umax에 도달한 이후에 정의된 타임아웃 기간(timeout period) 내에 속도 체크 포인트(v3)에 도달하지 않으면(예컨대, 속도 체크 포인트(v3)가 부주의로 모션 시스템의 물리적 속도 제한보다 높게 설정되면), 관성 추정기는 적절한 타임아웃 조작 루틴(timeout handling routine)을 개시할 수 있다. 이러한 타임아웃 조작 루틴은, 예컨대, 테스트 시퀀스를 중단하는 것 및 인터페이스 컴포넌트(406)를 통하여 오류 메시지를 디스플레이 하는 것을 포함할 수 있다.
이러한 페이스 동안 모션 시스템이 v3를 향해 가속함에 따라, 속도는 테스트 시퀀스의 가속 페이스를 나타내는 속도 체크 포인트(v2)를 통과한다. 속도 체크 포인트(v2)는 0보다는 크고 v3보다는 작도록 설정되며, 이하에서 더 상세히 논의될 바와 같이, 테스트 시퀀스의 가속 페이스의 시작 및 감속 페이스의 종료를 기술하도록 사용된다.
모터 속도가 v3에 도달했다고 결정하자마자, 토크 명령 생성기는 토크 명령(u(t))을 점진적으로 감소시킴으로써 시각 t = t4에서 테스트의 제3 페이스를 시작한다. 토크 명령(u(t))이 감소됨에 따라, 모터는 토크 명령(u(t))의 값이 모션 시스템의 마찰력보다 작게 될 때까지 잠시 동안 계속해서 가속할 것이며 이때, 모터가 감속되기 시작할 것이다. 모터는 속도가 시각 t = t3에서 v3에 도달한 때에 여전히 가속하고 있으므로, 속도는 토크 명령이 감소하기 시작한 이후에 일부 시간 동안 v3를 계속해서 넘길 것이다. 테스트 시퀀스 정의에 따라, 토크 명령 생성기는 모터 속도(v(t))가 속도 체크 포인트(v3)로 돌아갈 때(시각 t = t6)까지 u(t)를 계속해서 감소시키고, 이후 모터 속도(v(t))가 속도 체크 포인트(v2)에 돌아갈 때(시각 t = t7)까지 u(t)를 계속해서 일정하게 유지한다. 이 때, 관성 추정기는 데이터를 가지고 기계 시스템의 관성 및 마찰 계수에 대한 추정을 계산하도록 요구한다. 따라서 토크 명령 생성기는 토크 명령 신호(u(t))를 (시각 t = t8에서) 0으로 되돌려, 모션 시스템이 v(t) 곡선의 완만한 단부로 그래프(504)에 도시된 바와 같이, 남은 상태를 관성으로 움직이도록(coast) 허용한다.
도 5와 관련되어 상기 기술한 테스트 시퀀스는 예시적이고, 비제한적인 테스트 시퀀스를 나타내도록 의도한 것일 뿐이다. 시간에 따라 토크 명령(u(t))을 계속해서 변동시키고, 모션 시스템에 대한 대응하는 속도 프로파일(v(t))을 측정하는 임의의 적절한 테스트 시퀀스가 본 개시의 특정 예시의 범위 내에 있다는 것이 인정될 것이다. 예컨대, 전술한 예시가 각각의 속도 체크 포인트에 도달하는 속도(v(t))에 응답하여 방향을 바꾸는 것으로 토크 명령(u(t))을 설명하였지만, 일부 테스트 시퀀스는 토크 명령의 방향을 변경함이 없이 속도 체크 포인트가 도달되면 토크 명령(u(t))이 그 증가율 또는 감소율을 변경만 하는 페이스를 포함할 수 있다(예컨대, 증가하는 토크 명령은 낮은 비율이지만, 페이스 체크 포인트에 도달하는 v(t)에 응답하여 계속해서 증가할 수 있음).
전술한 테스트 시퀀스가 수행됨에 따라, 관성 추정기(402)는 토크 명령 생성기(408)에 의해 생성된 토크 명령 신호(u(t)) 및 속도 모니터링 컴포넌트(410)에 의해 읽히는 대응하는 모터 속도(v(t)) 양자를 기록한다. 이러한 토크 및 속도 곡선은 관성 및 마찰 계수의 정확한 추정이 곡선에 기초하여 계산될 수 있도록 모션 시스템(426)을 특징짓는다. 하나 이상의 실시예에서, 관성 추정기는 이러한 추정을 u(t) 및 v(t)의 적분에 기초하여 계산한다. 다음은 u(t) 및 v(t)의 적분에 영향을 주기 위하여 예시적이고, 비제한적인 기법을 예시하여 모션 시스템의 관성 및 마찰 계수에 대한 추정을 유도한다.
모션 시스템은 미분 방정식으로 기술될 수 있다.
Figure 112012083089140-pat00001
여기에서, J는 관성이고, B는 마찰 계수이며, u(t)는 토크 명령 신호이며, v(t)는 토크 신호(u(t))에 응답하여 모션 시스템의 대응하는 속도이다(예컨대, 도 4 및 도 5와 관련하여 상기 기술된 u(t) 및 v(t)).
수학식 1의 양 변을 각각의 가속 및 감속 단계에 대하여 적분하면, 다음을 얻는다.
Figure 112012083089140-pat00002
Figure 112012083089140-pat00003
여기에서, uacc(t) 및 vacc(t)는 각각 테스트 시퀀스의 가속 페이스에 대응하는 u(t) 및 v(t)의 부분이며, udec(t) 및 vdec(t)는 각각 감속 페이스에 대응하는 u(t) 및 v(t)의 부분이다.
수학식 2 및 수학식 3은 관성(J) 및 마찰 계수(B)의 추정을 구하기 위해 다음과 같이 풀어질 수 있다.
Figure 112012083089140-pat00004
Figure 112012083089140-pat00005
도 5에서 도시된 예시적인 토크 및 속도 곡선에 대하여, 가속 페이스는 속도(v(t))가 (시각 t = t3에서) 제1 시간 동안 속도 체크 포인트(v2)에 도달하면 시작하고 토크 신호(u(t))가 (시각 t = t5에서) 0과 교차하면 종료하는 기간으로 정해질 수 있다. 이러한 가속 페이스의 끝에서 모션 시스템의 속도는 (그래프(504)에서 나타난 바와 같이) v4로서 기록된다. 감속 페이스는 토크 신호(u(t))가 (시각 t = t5에서) 0을 교차하면 시작하고, 속도(v(t))가 (시각 t = t7에서) v2로 돌아오면 종료하는 기간으로 정해질 수 있다. 관성 추정기(402)는 상기 수학식 4 및 수학식 5에 기초하여 추정된 관성 및 마찰 계수를 유도하기 위하여 이러한 가속 및 감속 페이스 표현을 인식하도록 구성될 수 있다. 가속 및 감속 페이스를 표현하기 위한 다른 기준이 또한 본 개시의 특정 실시예의 범위 내에 있다는 것이 인정될 것이다.
이러한 가속 및 감속 페이스 정의가 주어지면, uacc(t) 및 udec(t)의 적분이 각각 Uacc 및 Udec로 이름 붙혀진 그래프(502)의 음영진 영역으로 나타내지며, vacc(t) 및 vdec(t)의 적분은 각각 Vacc 및 Vdec로 이름 붙혀진 그래프(504)의 음영진 영역으로 나타내진다. 따라서, Uacc, Udec, Vacc 및 Vdec가 다음과 같이 정의된다.
Figure 112012083089140-pat00006
Figure 112012083089140-pat00007
Figure 112012083089140-pat00008
Figure 112012083089140-pat00009
수학식 6 내지 수학식 9를 수학식 4 및 수학식 5에 대입하면, 관성(J) 및 마찰 계수(B)는 다음과 같이 나타낼 수 있다.
Figure 112012083089140-pat00010
Figure 112012083089140-pat00011
여기에서, 속도차(velocity delta)(
Figure 112012083089140-pat00012
Figure 112012083089140-pat00013
)는 다음과 같이 정의된다.
Figure 112012083089140-pat00014
Figure 112012083089140-pat00015
수학식 12 및 수학식 13은 연속적인 토크 및 속도 데이터에 기초한 모션 시스템에 대한 추정된 관성 및 마찰 계수를 계산하기 위한 예시적이고, 비제한적인 공식이다. 연속적인 토크 신호 및 대응하는 속도 곡선의 적분을 통하여 이러한 파라미터를 계산하기 위한 임의의 적절한 공식이 본 개시의 특정 실시예의 범위 내에 있다는 것이 인정될 것이다.
도 4 및 도 5와 관련하여 상기 기술된 테스트 시퀀스가 완료되자마자, 관성 추정기는 수학식 12 및 수학식 13(또는 기타 적절한 공식)을 관성 및 마찰 계수에 대한 추정을 유도하도록 테스트에 의해 획득된 연속적인 토크 데이터(u(t)) 및 모터 속도 데이터(v(t))에 적용할 수 있다. 도 6은 본 개시의 하나 이상의 실시예에 따른 관성 컴포넌트(607) 및 마찰 계수 컴포넌트(608)를 가지는 관성 추정기(602)를 도시하는 블록도이다. 관성 추정기(602)가 관성 컴포넌트(607) 및 마찰 계수 컴포넌트(608) 양자를 포함하는 것으로 도시되었지만, 관성 추정기(602)의 일부 실시예는 본 개시의 범위를 벗어나지 않고 이러한 컴포넌트 중 하나만을 포함할 수 있다. 즉, 관성 추정기(602)는 관성 또는 마찰 계수중 하나 또는 양자를 계산하도록 구성될 수 있다.
토크 데이터(u(t)) 및 속도 데이터(v(t))가 획득된 이후에, (토크 명령 생성기(408 및 214)와 유사한) 토크 명령 생성기(604)는 토크 데이터를 (도 2의 관성 컴포넌트(208) 및 마찰 계수 컴포넌트(210)에 각각 유사한) 관성 컴포넌트(607) 및 마찰 계수 컴포넌트(608)에 제공한다. 마찬가지로, 속도 모니터링 컴포넌트(606)는 획득된 속도 데이터(v(t))를 관성 컴포넌트(607) 및 마찰 계수 컴포넌트(608)에 제공할 수 있다. 하나 이상의 실시예에 따르면, 관성 추정기(602)는 값이 상기 수학식 6 내지 수학식 9에 따라 Uacc, Udec, Vacc 및 Vdec에 대하여 유도될 수 있도록 토크 및 속도 데이터를 가속 페이스 데이터(uacc(t) 및 vacc(t)) 및 감속 페이스 데이터(udec(t) 및 vdec(t))로 구분할 수 있다.
관성 컴포넌트(607)는 uacc(t), udec(t), vacc(t) 및 vdec(t)를 적분하고 추정된 관성 J(610)을 (예컨대, 수힉식 12 또는 그 변형에 기초하여) 적분의 함수로 계산할 수 있다. 마찬가지로, 마찰 계수 컴포넌트(608)는 (예컨대, 수학식 13에 기초하여) 적분의 함수로서 추정된 마찰 계수 B(616)를 계산할 수 있다. 관성 추정기(602)는 이후 관성 추정기가 동작하는 특정 응용의 요구에 따라 추정된 관성 J(610) 및 마찰 계수 B(612)를 출력할 수 있다. 예컨대, 관성 추정기(602)는 관성 J(610) 및 마찰 계수 B(612)를 J 및 B의 값을 사용하여 하나 이상의 이득 계수를 튜닝하는 것을 용이하게 할 수 있는, 모션 컨트롤러(614)에 제공할 수 있다. 관성 추정기(602)는 값이 분리된 모션 제어 또는 튜닝 어플리케이션에 수동적으로 보여지고 입력될 수 있도록 J 및 B에 대하여 추정된 값을 (예컨대, 인터페이스 컴포넌트(212)를 통하여) 디스플레이에 또한 출력할 수 있다. 모션 시스템의 관성 J(610) 및 마찰 계수 B(612)의 정확한 추정은 튜닝 프로세스를 간략화하고 정확한 파라미터 튜닝을 용이하게 하여, 정밀하고 에너지 효율적인 기계 모션을 이룰 수 있다. 또한, 관성 추정기가 (하나 이상의 일정한 토크 명령에 대한 시스템의 응답에 기초하여 추론하는 대신에) 모션 시스템의 전체 토크 프로파일에 따라 수집된 데이터에 기초하여 J 및 B에 대한 값을 계산하므로, 관성 추정기에 의해 유도된 관성 및 마찰 계수 추정은 모션 시스템의 전체 동작 범위에 걸쳐 정확하기가 더 쉽다.
종전의 예시가 관성 추정기를 모션 컨트롤러(예컨대, 도 4의 컨트롤러(418))를 통하여 토크 명령(u(t))을 보내고 속도 피드백(v(t))을 수신하는 것으로 설명하였지만, 컨트롤러를 통하여 동작하는 분리된 컴포넌트 또는 컨트롤러의 집적된 컴포넌트와 같은 기타 구성이 본 개시의 특정 실시예의 범위 내에 있다. 예컨대, 도 7은 관성 추정기(706)기가 컨트롤러(702)로부터 독립적인 분리 컴포넌트로 동작하는 구조를 도시한다. 이러한 예시적인 구조에서, 관성 추정기(706)는 컨트롤러(702)와 독립적으로 그 자신의 토크 명령 신호를 생성할 수 있다. 테스트되고 제어되는 모터(704)는 그 토크 명령 신호(708)를 스위치(712)의 상태에 따라 컨트롤러(702) 또는 관성 추정기(706)로부터 수신할 수 있다. 모터(704)로부터의 속도 피드백(710)은 컨트롤러(702) 및 관성 추정기(706) 양자에 제공될 수 있다. 테스트 시퀀스 동안, 스위치(712)는 관성 추정기(706)으로부터 토크 명령(u(t))을 전달하도록 설정될 수 있다. 테스트는 종전의 예시에 기술된 바와 같이, 관성 추정기(706)가 모션 시스템에 대하여 관성(J) 및 마찰 계수(B)에 대하여 추정된 값을 생성하도록 진행할 수 있다. 관성 추정기(706)는 이후 컨트롤러(702)에 J 및 B에 대하여 추정된 값을 제공할 수 있으며, 컨트롤러(702)는 이러한 값들을 이용하여 적절한 컨트롤러 이득 계수 또는 기타 제어 파라미터를 결정할 수 있다. 컨트롤러 파라미터가 설정되었으면, 스위치(712)는 토크 명령(708)을 컨트롤러(702)로부터 모터(704)로 제공하도록 배치될 수 있고, 모션 시스템의 보통의 동작은 J 및 B에 기초하여 유도된 컨트롤러 이득 계수를 이용하여 수행될 수 있다.
도 8은 관성 추정기에 의해 생성되는 추정된 관성 및 마찰 계수를 활용하는 예시적인 모션 제어 튜닝 어플리케이션을 도시한다. 본 예시에서, 튜닝 어플리케이션(804)은 컨트롤러(806)가 모터 구동 모션 시스템(도시되지 않음)의 동작을 제어하는, 컨트롤러(806)에 대한 컨트롤러 이득을 튜닝하도록 이용된다. 관성 추정기(802)는 상기 기법에 따라 모션 시스템의 관성 J(808) 및 마찰 계수 B(810)의 추정을 생성할 수 있다. 구체적으로, 관성 추정기(802)는 컨트롤러(806)가 연속적인 토크 명령을 모니터 시스템의 모터로 보내도록 명령하며, 토크 명령은 미리 정의된 테스트 시퀀스에 따라서 시간에 따라 계속적으로 변동한다. 대안적으로, 관성 추정기(802)가 (도 7에서 도시된 예시적인 구성에서와 같이) 컨트롤러(806)와 독립적으로 동작하는 실시예에 대하여, 관성 추정기(802)는 그 자신의 연속적인 토크 명령을 생성하고 모션 시스템으로 보낼 수 있다. 테스트 시퀀스는 가속 및 감속 페이스를 포함할 수 있으며, 그 동안 관성 추정기(802)는 적용된 토크 명령에 응답하여 모션 시스템의 속도를 모니터링 하고 저장한다. 테스트 시퀀스의 결론에서, 관성 추정기(802)는 (예컨대, 수학식 12 및 수학식 13에 기초한) 시변 토크 명령 신호 및 대응하는 시변 모션 시스템 속도의 적분에 기초하여 관성 J(808) 및 마찰 계수 B(810)의 추정을 계산할 수 있다.
관성 추정기(802)는 이후 관성 J(808) 및 마찰 계수 B(810)를 튜닝 어플리케이션(804)에 제공할 수 있다. 대안적으로, 관성 추정기(802)는 사용자 인터페이스에서 J 및 B의 값을 렌더링하여, 사용자가 추정된 관성 및 마찰 계수를 튜닝 어플리케이션(804)에 수동으로 입력하는 것을 허용할 수 있다. J 및/또는 B를 아는 것은 튜닝 어플리케이션(804)이 모션 시스템의 기계적 특성에 기초한 하나 이상의 컨트롤러 이득(812)에 대하여 적절한 추정을 생성하도록 허용할 수 있다. 튜닝 어플리케이션(804)는 사용자에 의하여 인터페이스(816)를 통해 수동으로 조절되어 요구되는 모션 특성을 달성할 수 있는, 제어 시스템 대역폭(예컨대, 교차 주파수)(814) 및 컨트롤러 이득(812)에 대한 적절한 값을 관성 J(808) 및/또는 마찰 계수 B(810)의 함수로서 생성할 수 있다.
일반적인 응용에서, 여기에서 기술된 관성 추정기는 보통의 동작에 앞서, 모션 제어 시스템의 초기 전개(initial deployment) 동안 모션 시스템의 관성(J) 및 마찰 계수(B)의 신뢰할 수 있는 추정을 생성하도록 사용될 수 있다. 구체적으로, 관성 추정기는 실시 시간에 앞서 컨트롤러 파라미터(예컨대, 컨트롤러 이득 계수)를 구성하고 튜닝하는 것에 관련하여 사용될 수 있다. 설정이되면, 이러한 파라미터는 더 늦은 시간에 시스템을 재튜닝한다고 결정되지 않으면, 시스템의 기동 이후에 보통 고정되어 남아있는다. 그러나, 일부 실시예에서, 관성 추정기는 실시 시간 동안 주기적으로 또는 연속적으로 J 및 B에 대한 값을 자동적으로 재계산하도록 구성될 수 있다. 그러한 구성을 이용하여, J 및 B의 추정에 기초한 컨트롤러 파라미터는 보통의 동작 중에, 실질적으로 실시간으로, 동적으로 조절되어 (예컨대, 기계적 마모, 모터에 의하여 보여지는 로드에 대한 변화, 등의 결과로서) 모션 시스템의 기계 특성에 대한 점진적인 변화를 보상할 수 있다.
도 9 및 도 10은 특정의 개시된 태양에 따른 다양한 방법을 예시한다. 설명의 단순화를 위하여, 방법은 일련의 작용으로 도시되고 기술되었지만, 개시된 태양이 작용의 순서에 제한되지 않고, 여기에서 도시되고 기술된 바로부터 일부 작용이 다른 순서로 일어나고/거나 다른 작용과 동시에 일어날 수 있다는 것이 이해되고 인정될 것이다. 예컨대, 당업자는 방법이 상태도(state diagram)에서와 같이 일련의 상호 관련된 상태 또는 사건으로 대안적으로 나타낼 수 있음을 이해하고 인정할 것이다. 또한, 모든 예시된 작용이 특정 개시된 태양에 따라 방법을 구현하기 위해 요구되는 것은 아니다. 추가적으로, 이후에 개시되고 본 개시에 걸쳐 개시되는 방법은 제조 물품에 저장되어 그러한 방법을 컴퓨터로 수송 및 전송하는 것을 용이하게 할 수 있다.
도 9는 제어되는 기계 시스템에 대한 관성 및 마찰 계수를 추정하기 위한 예시적인 방법(900)을 도시한다. 902에서, 연속적인 토크 명령(u(t))은 모션 시스템의 컨트롤러에 보내지며, 토크 명령(u(t))은 정의된 최대 토크 설정 값과 최소 토크 설정 값 사이에서 시간에 따라 변동한다. 하나 이상의 실시예에서, 토크 명령(u(t))은 u(t)의 출력이 테스트 시퀀스의 페이스 및 하나 이상의 사용자 정의 설정 값에 관련된 기계 시스템의 응답에 따르도록, 미리 정의된 테스트 시퀀스에 따를 수 있다. 테스트 시퀀스는 증가 및 감소 모터 속력에 각각 해당하는, 가속 및 감속 페이스 양자를 포함할 수 있다. 두 방향의 테스트에 대하여, 토크 명령(u(t))은 테스트 시퀀스 동안에 양의 토크 값 및 음의 토크 값 사이에서 변동하여, 모션 시스템이 테스트 동안 양 방향으로 가속되도록 할 수 있다.
904에서, 토크 명령(u(t))에 응답하는 모션 시스템의 속도(v(t))가 기록된다. 따라서, 테스트 시퀀스가 완료되자마자, 적용된 토크 명령(u(t)) 및 결과적인 모션 시스템 속도(v(t)) 양자에 대한 데이터 곡선이 t = 0 - tend에서 획득되며, tend는 테스트 시퀀스의 지속 기간이다.
906에서, 모션 시스템의 관성 또는 마찰 계수 중 적어도 하나에 대한 추정이 토크 곡선(u(t)) 및 속도 곡선(v(t))의 적분에 기초하여 계산된다. 하나 이상의 실시예에서, u(t) 및 v(t)에 대한 곡선은 가속 페이스 및 감속 페이스로 분할될 수 있으며, 관성 및 마찰 계수는 (예컨대, 상기 수학식 12 및 수학식 13 또는 기타 적절한 식을 이용하여) 가속 페이스 및 감속 페이스의 각각의 적분에 기초하여 계산될 수 있다. 908에서, 모션 시스템에 대한 하나 이상의 파라미터는 단계(906)에서 계산된, 추정된 관성 및/또는 마찰 계수의 함수로 설정될 수 있다. 비제한적인 예시에서, 하나 이상의 컨트롤러 이득 계수는 단계(902 내지 906)에 따라 계산된 추정된 관성 및/또는 마찰 계수에 기초하여 설정될 수 있다.
도 10은 관성 및 마찰 계수를 추정하기 위하여 모션 제어 시스템에서 테스트 시퀀스를 실행하기 위한 예시적인 방법(1000)을 도시한다. 1002에서, 모션 시스템으로의 토크 명령은 토크 명령이 최대 토크 설정 값에 도달할 때까지 또는 모션 시스템이 제1 속도 체크 포인트(예컨대, 도 5의 속도 체크 포인트(v3))로 가속할 때까지 계속적으로 증가된다. 최대 토크 설정 값 및 제1 속도 체크 포인트는 모션 시스템에 대한 동작 상한에 해당할 수 있으며, 테스트에 앞서 설정(예컨대, 모션 시스템의 보통의 동작 중에 예상되는 최대 토크 및 속도)될 수 있다. 토크 명령이 증가되는 비율은 또한 사용자에 의하여 정의될 수 있다. 하나 이상의 실시예에서, 모션 시스템의 속도가 제1 속도 체크 포인트에 도달하기 전에 토크 설정 값이 최대 토크 설정 값에 도달하면, 토크 명령은 모션 시스템이 제1 속도 체크 포인트로 가속될 때까지 최대 토크 값에서 유지될 수 있다. 모션 시스템의 속도가 정의된 타임아웃 기간 내에 제1 속도 체크 포인트에 도달하지 않으면, 적절한 타임아웃 조작 시퀀스가 개시될 수 있다.
모션 시스템이 휴식에서부터 제1 속도 체크 포인트로 가속됨에 따라, 속도는 제2 속도 체크 포인트(예컨대, 도 5의 속도 체크 포인트(v2))를 통과할 것이고, 여기서 제2 속도 체크 포인트는 0보다 크고 제1 속도 체크 포인트보다 작다. 테스트의 가속 페이스는 속도가 초기에 이러한 제2 속도 체크 포인트에 도달하면 개시된다.
모션 시스템이 제1 속도 체크 포인트로 가속되었다고 결정되자마자, 토크 명령은 토크 명령이 최소 토크 설정 값에 도달할 때까지 또는 모션 시스템이 제1 속도 체크 포인트에 감속되어 돌아갈 때까지 904에서 계속적으로 감속되어 돌아갈 수 있다. 이 때문에, 모션 시스템이 제1 속도 체크 포인트가 단계(1002)에서 도달되는 시각에 가속되므로, 속도는 토크 신호가 단계(1004)에서 감소되기 시작한 이후에 일정 시간동안 제1 속도 체크 포인트를 넘어서 계속해서 증가할 것이다. 감소하는 토크 명령 신호는 이후 모션 시스템이 제1 속도 체크 포인트로 감속되어 돌아가게 할 것이다. 단계(1002)에서와 같이, 토크 명령이 감소되는 비율은 사용자 정의 파라미터로서 구성될 수 있다. 본 예시에서, 토크 명령은 모션 시스템이 제1 속도 체크 포인트로 돌아가기 전에 0으로 감소하며, 최소 토크 설정 값이 도달될 때까지 또는 모션 시스템이 제1 속도 체크 포인트로 감속될 때까지 음의 방향으로 계속해서 감소한다. 즉, 토크 명령은 테스트 시퀀스의 이러한 페이스 동안 0과 교차한다. 이는 테스트의 가속 페이스의 종료 및 감속 페이스의 시작을 신호한다. 단계(1002)와 유사하게, 모션 시스템이 제1 속도 체크 포인트에 도달하기 전에 토크 명령 이 최소 토크 설정 값으로 감소하면, 토크 명령은 제1 속도 체크 포인트가 도달될 때까지 최소 토크 값에서 유지될 것이다.
모션 시스템 속도가 제1 속도 체크 포인트에 되돌아가면, 제1 속도 체크 포인트가 도달되는 시각에서 토크 명령 값은 모션 시스템이 제2 속도 체크 포인트로 감속되어 돌아갈 때까지 1006에서 일정 값으로 유지된다. 이는 테스트의 감속 페이스의 종료를 트리거한다.
1008에서, 단계(1004)동안에 토크 명령이 0과 교차하는 시각이 결정된다. 이번에, 지정된 TCROSSOVER가 (도 4, TCROSSOVER = t5와 관련하여 상기 기술된 예시에서) 테스트 시퀀스의 가속 페이스 및 감속 페이스의 경계를 정하도록 사용될 수 있다. 1010에서, 적분이 토크 명령 곡선 및 모션 시스템의 대응하는 속도 곡선의 가속 페이스 부분에 수행될 수 있다. 즉, 토크 명령 데이터는 시간 T0부터 TCROSSOVER에서 적분되며, T0는 가속 페이스에 대한 시작 시각(속도가 제2 속도 체크 포인트에 처음 교차하는 시각; 예컨대, 도 4의 시각 t3)이다. 토크 명령의 이러한 가속 페이스 적분의 결과는 Uacc로 지정된다. 마찬가지로, 적용된 토크 명령에 응답하여 모션 제어 시스템으로부터 측정된 연속적인 속도 데이터는 시간 T0부터 TCROSSOVER에서 적분되어 가속 페이스 동안 적분된 속도 결과 Vacc를 구한다.
1012에서, 유사한 적분이 토크 및 속도 데이터의 감속 부분에 대하여 수행된다. 즉, 토크 및 속도 데이터가 시간 TCORSSOVER 부터 TFINAL에서 적분되며, TFINAL은 (도 4, TFINAL = t7과 관련되어 상기 기술된 예시에서) 모션 시스템이 단계(1006)에서 제2 속도 체크 포인트로 감속되어 돌아가는 시각에 해당하는, 감속 페이스에 대한 종료 시각이다. 토크 및 속도 데이터에 대한 이러한 감속 페이스 적분의 결과는 Udec 및 Vdec로 각각 지정된다.
1014에서, 모션 시스템에 대한 추정된 관성 및/또는 마찰 계수는 적분 값 Uacc, Vacc, Udec 및 Vdec에 기초하여 계산된다. 예컨대, 추정된 관성 및 마찰 계수는 수학식 12 및 수학식 13 각각 또는 그 변형에 기초하여 계산될 수 있다.
모션 프로파일 생성기
도 11은 모션 제어 시스템의 지점 대 지점간 이동을 위한 모션 프로파일을 생성할 수 있는 예시적이고 비제한적인 모션 프로파일 생성 시스템의 블록도이다. 모션 프로파일 생성 시스템(1102)은 위치 프로파일 생성기(1104), 속도 프로파일 생성기(1106), 인터페이스 컴포넌트(1108), 하나 이상의 프로세서(1110), 및 메모리(1112)를 포함할 수 있다. 다양한 실시예에서, 위치 프로파일 생성기(1104), 속도 프로파일 생성기(1106), 인터페이스 컴포넌트(1108), 하나 이상의 프로세서(1110), 및 메모리(1112) 중 하나 이상은 모션 프로파일 생성 시스템(1102)의 기능 중 하나 이상을 수행하도록 서로 전기적으로 및/또는 통신적으로 결합될 수 있다. 일부 실시예에서, 컴포넌트(1104, 1106 및 1108)는 메모리(1112)에 저장되고 프로세서(1110)에 의해 실행되는 소프트웨어 명령어를 포함할 수 있다. 모션 프로파일 생성 시스템(1102)은 또한 도 11에 도시되지 않은 기타 하드웨어 및/또는 소프트웨어 컴포넌트와 상호작용할 수 있다. 예컨대, 프로세서(1110)는 키보드, 마우스, 디스플레이 모니터, 터치스크린 또는 기타 그러한 인터페이스 장치와 같은, 하나 이상의 외부 사용자 인터페이스 장치와 상호작용할 수 있다.
인터페이스 컴포넌트(1108)는 사용자 입력을 수신하고 임의의 적절한 포맷(예컨대, 시각, 청각, 촉각, 등)으로 사용자에게 출력하도록 구성될 수 있다. 사용자 입력은, 예컨대, (이하에서 더 상세히 설명될) 모션 프로파일을 계산하도록 모션 프로파일 생성 시스템(1102)에 의하여 사용되는 사용자 입력 제약(예컨대, 최대 가속도, 최대 속도 등)일 수 있다. 위치 프로파일 생성기(1104)는 모션 시스템에 대한 요구되는 목표 위치의 지표를 수신하고 사용자 정의 제약의 파라미터 내에서 목표 위치로 전환하기 위하여 모션 프로파일을 계산하도록 구성될 수 있다. 마찬가지로, 속도 프로파일 컴포넌트(1106)은 모션 제어 시스템에 대한 요구되는 목표 속도의 지표를 수신하고 정의된 제약에 따라 현재 속도로부터 목표 속도로 전환하기 위하여 모션 프로파일을 생성할 수 있다. 도 11이 모션 프로파일 생성 시스템이 위치 프로파일 생성기(1104) 및 속도 프로파일 생성기(1106) 양자를 포함하는 것으로 도시한 반면, 모션 프로파일 생성 시스템(1102)의 일부 실시예는 본 개시의 범위에서 벗어나지 않고 위치 프로파일 생성기(1104) 또는 속도 프로파일 생성기(1106) 중 단 하나를 포함할 수 있다는 것이 인정될 것이다. 하나 이상의 프로세서(1110)는 개시된 시스템 및/또는 방법에 관련하여 여기에 기술된 기능 중 하나 이상을 수행할 수 있다. 메모리(1112)는 개시된 시스템 및/또는 방법에 관련하여 여기에 기술된 기능을 수행하기 위하여 컴퓨터 실행가능 명령어 및/또는 정보를 저장하는 컴퓨터 판독가능 저장 매체일 수 있다.
일부 실시예에서, 여기에서 기술된 프로파일 생성기는 모션 컨트롤러의 집적된 컴포넌트일 수 있다. 도 12는 본 개시의 하나 이상의 실시예에 따라 프로파일 생성기(1206)을 활용하는 마스터 컨트롤러(1202)를 포함하는 예시적인 모션 제어 시스템(1200)을 도시한다. 마스터 컨트롤러(1202)는, 예컨대, 프로그램 가능한 로직 컨트롤러(programmable logic controller(PLC)) 또는 하나 이상의 모션 장치를 포함하는 시스템(예컨대, 산업 프로세스, 자동화 시스템, 일괄 프로세스 등)을 모니터링 하고 제어하는 기타 그러한 컨트롤러일 수 있다. 이러한 예시에서, 프로파일 생성기(1206)는 컨트롤러(1202)에 있는 하나 이상의 프로세서에 의해 실행되는 컨트롤러의 운영 체제 및/또는 제어 소프트웨어의 기능적인 컴포넌트 일 수 있다. 프로파일 생성기(1206)는 또한 컨트롤러(1208)의 기타 기능적인 요소와 데이터를 교환하는, 회로 판 또는 집적 회로와 같은 컨트롤러(1202) 내에 있는 하드웨어 컴포넌트일 수 있다. 프로파일 생성기(1206)의 기타 적절한 구현예는 또한 본 개시의 특정 실시예의 범위 내에 있다. 예컨대, 프로파일 생성기(1206)가 컨트롤러(1202)의 접적된 컴포넌트인 것으로 도 12에서 도시되었지만, 프로파일 생성기(1206)는 일부 실시예에서 컨트롤러(1202)로부터 분리된 요소일 수 있다. 그러한 구성에 대하여, 프로파일 생성기(1206)는 데이터를 유선 또는 무선 네트워킹, 배선된 데이터 링크 또는 기타 그러한 통신 수단을 포함하나 이에 제한되지 않는 임의의 적절한 통신 수단을 통하여 컨트롤러(1202) 또는 모션 시스템의 기타 요소와 교환할 수 있다.
예시적인 모션 제어 시스템(1200)은 또한 마스터 컨트롤러(1202)에 의해 제공되는 모션 프로파일(1212)에 따라 모션 장치(예컨대, 도시되지 않은, 모터)를 제어하기 위하여 모터 컨트롤러(1214)를 포함하는 모터 드라이브(1222)를 포함한다. 모션 프로파일(1212)은 모션 장치를 현재 위치 또는 속도로부터 목표 위치 또는 속도로 전환하기 위한 궤적을 정의하고, 궤적은 위치 레퍼런스, 속도 레퍼런스, 가속도 레퍼런스, 및/또는 저크 레퍼런스 중 하나 이상에 관하여 정의된다. 마스터 컨트롤러(1202)로부터 모션 프로파일 데이터를 수신하는 것에 응답하여, 모터 컨트롤러(1214)는 모션 프로파일(1212)을 목표 위치 또는 속도로의 모션 장치의 전환을 효과 있도록 모션 장치로 보내지는 제어 신호(1216)로 변환할 것이다. 모터 컨트롤러(1214)가 폐루프 컨트롤러이면, 모터 컨트롤러(1214)는 또한 제어 신호(1216)가 적용됨에 따라 모션 장치의 실제 상태(예컨대, 실시간 위치, 속도 등)를 나타내는 피드백 신호(1220)를 모니터링 할 것이다. 이러한 피드백 신호(1220)에 기초하여 모터 컨트롤러(1214)는 필요에 따라 제어 신호(1216)를 조정하여 모션 장치가 가능한 근접하여 모션 프로파일(1212)에 따라 이동하는 것을 보장할 것이다. 대안적으로, 모터 컨트롤러(1214)가 개루프 컨트롤러(open-loop controller)이면, 모터 컨트롤러(1214)는 모션 프로파일(1212)에 기초하여 제어 신호(1216)를 여전히 생성할 것이지만, 결과적인 이동 동안 피드백 신호(1220)를 모니터링하지 않을 것이다.
본 예시에서, 마스터 컨트롤러(1202)는 컨트롤러(1202)에 저장되고 실행되는, 제어 프로그램(1210)에 따라 시스템을 제어한다. 동작 중에, 제어 프로그램(1210)은 모션 장치가 새로운 위치로 이동하거나, 새로운 속도로 전환되는 것을 요구할 수 있다. 목표 위치 또는 속도(1208)는 이동을 위한 궤적을 정의하는 모션 프로파일(1212)을 계산하는, 프로파일 생성기(1206)에 제공된다. 프로파일 생성기(1206)는 모션 시스템의 기계적 제약 또는 모션 장치의 동작에 대한 사용자의 기호를 나타낼 수 있는, 하나 이상의 모션 제약(1204)의 함수로서 모션 프로파일(1212)을 계산한다. 모션 제약(1204)은 동작에 앞서 (예컨대, 도 11의 인터페이스 컴포넌트(1108)를 통하여) 사용자에 의해 제공될 수 있다. 일부 실시예에서, 프로파일 생성기(1206)는 또한 컨트롤러(1202)의 샘플 시간(1218)에 추가적으로 기초하여 모션 프로파일(1212)을 계산하여 프로파일 세그먼트가 이하에서 더 상세히 논의될 바와 같이, 컨트롤러의 샘플 점에 맞추어 조정하는 것을 보장한다.
이하에서 더 상세히 기술될 바와 같이, 모션 프로파일(1212)는 위치 레퍼런스, 속도 레퍼런스, 가속도 레퍼런스 및 저크 레퍼런스 중 하나 이상에 관하여 시간에 따른 지점 대 지점간 이동의 궤적을 정의할 수 있다. 이러한 레퍼런스는 각각의 모션 특성이 주어진 지점 대 지점간 이동에 대하여 시간의 함수로 어떻게 제어될지를 정의하는 모션 프로파일 생성기(1206)에 의해 계산되는 함수를 나타낸다. 이러한 레퍼런스는 미분으로서 서로 수학적으로 관련된다. 즉, 저크는 가속도의 미분이고, 가속도는 속도의 미분이며, 속도는 위치의 미분이다. 프로파일 생성기(1206)는 이하에서 더 상세히 논의될 바와 같이, 궤적 프로파일의 각각의 단계에 대하여 이러한 레퍼런스를 계산할 수 있다.
이동에 대한 모션 프로파일(1212)이 계산되면, 프로파일 생성기(1206)는 모션 프로파일(1212)을 모션 장치가 모션 프로파일(1212)에 따라 요구되는 지점 대 지점간 이동을 수행하도록 명령하는 제어 신호(1216)로 변환하는 모터 컨트롤러(1214)에 제공한다. 상기 기술된 바와 같이, 모터 컨트롤러(1214)가 폐루프 컨트롤러이면, 제어 신호(1216)는 실시간으로 모션 장치의 실제 상태를 모터 컨트롤러(1214)에 알리는 피드백 신호(1220) 및 모션 프로파일의 함수일 것이다. 개루프 시스템에 대하여, 제어 신호(1216)는 모션 프로파일(1212)만의 함수일 것이다.
도 12에 도시된 구조는 프로파일 생성기(1206)가 동작 할 수 있는 예시적인 콘텍스트(context)이도록 의도된 것일 뿐이고 기타 동작 콘텍스트가 본 개시의 범위 내에 있다는 것이 이해될 것이다. 예컨대, 일부 시나리오(scenarios)에서, 마스터 컨트롤러(1202)는 집적된 모터 제어 능력을 포함하는 자족 컨트롤러(self-contained controller)일 수 있다. 그러한 응용에서, 컨트롤러(1202)는 모션 프로파일(1212)을 분리된 모터 드라이브(1222)로 제공하는 대신에, 스스로 모션 프로파일(1212)을 적절한 제어 신호(1216)로 변환하며 이러한 제어 신호(1216)를 모터 장치로 보낼 수 있다. 다른 예시적인 구조에서, 프로파일 생성기(1206)는 모터 드라이브(1222)의 집적된 컴포넌트일 수 있다.
프로파일 생성기(1206)는 위치 프로파일 생성기 또는 속도 프로파일 생성기 중 하나 또는 양자일 수 있다. 이러한 두가지 유형의 프로파일 생성기는 도 13 및 도 14에 각각 도시된다. 도 13에 도시된 바와 같이, 위치 프로파일 생성기(1302)는 제어되는 시스템의 기계적인 제약 또는 모션 시스템의 동작에 관련된 사용자의 기호를 나타내는 제약(1304)의 세트를 입력으로서 수신한다. 이러한 제약은 (예컨대 밀리초로 측정되는) 컨트롤러의 제어 신호의 갱신 기간을 나타내는 샘플 시간과 속도, 가속도, 감속도 및 저크에 대한 상한을 포함할 수 있다. 이러한 제약 값은 일부 실시예에서, 위치 프로파일 생성기(1302)가 컨트롤러의 샘플 시간을 자동적으로 결정할 수 있지만, (예컨대, 도 11의 인터페이스 컴포넌트(1108)를 통하여) 사용자에 의해 설정될 수 있다. 이러한 제약(1304)은 모션 제어 시스템의 배치 중에 한번 설정될 수 있거나 각 이동 마다 재구성될 수 있다. 위치 프로파일 생성기(1302)는 비대칭적인 가속 및 감속을 가지는 프로파일을 수용하도록 개별적으로 구성될 가속 및 감속 제한을 허용한다. 샘플 시간은 이하에서 더 상세히 기술될 바와 같이, 프로파일 생성기(1302)에 의해 사용되어 모션 프로파일의 정확성을 향상시킨다.
동작 동안, 위치 프로파일 생성기(1302)는 모션 시스템에 대한 새로운 목표 위치를 명시하는 위치 스텝 명령(1308)을 수신할 것이다. 위치 스텝 명령(1308)은 컨트롤러에서 실행하는 제어 프로그램(예컨대, 도 12의 제어 프로그램(1210)에 의해 생성될 수 있거나, 사용자에 의한 수동의 이동 명령어일 수 있다. 위치 스텝 명령에 응답하여, 위치 프로파일 생성기는 그 현재 위치에서 위치 스텝 명령(1308)에 의해 정의된 목표 위치로 이동하기 위한 궤적을 정의하는 제약 기반 및 시간 최적의 모션 프로파일(1306)을 계산한다. 모션 프로파일(1306)은 (미분으로 서로 수학적으로 관련된) 저크 레퍼런스, 가속도 레퍼런스, 속도 레퍼런스, 또는 위치 레퍼런스 중 하나 이상을 포함한다. 위치 프로파일 생성기(1302)는 이러한 레퍼런스를 정의된 모션 프로파일 단계 또는 세그먼트의 집합의 각각에 대하여 시간의 함수로서 정의한다. 표 1은 지점 대 지점간 모션 프로파일의 7 세그먼트를 요약한다.
No. 세그먼트명 설명
1 ACC_INC 가속도 프로파일은 0에서 최대 가속도로 증가함
2 ACC_HOLD 가속도 프로파일은 최대 가속도로 일정하게 유지됨
3 ACC_DEC 가속도 프로파일은 최대 가속도에서 0으로 감소함
4 VEL_HOLD 속도 프로파일은 상수로 유지됨
5 DEC_INC 가속도 프로파일의 절대값은 0에서 최대 감속도로 증가함
6 DEC_HOLD 가속도 프로파일의 절대값은 최대 감속도로 일정하게 유지함
7 DEC_DEC 가속도 프로파일의 절대값은 최대 감속도에서 0으로 감소함
처음에, 제1 단계(ACC_INC) 동안, 가속도는 0에서 일정 가속도로 계속적으로 증가한다. 일부 시나리오에서, 이러한 일정 가속도는 제약(1304)에 의하여 정의된 최대 가속도일 것이다. 그러나, 이러한 비교적 짧은 위치 스텝에 대하여 위치 프로파일 생성기(1302)는 더 작은 가속도가 목표 위치로의 더 정확한 전환이 될 것이라 결정할 수 있다. 제2 단계(ACC_HOLD) 단계 동안, 가속도는 일정 비율로 고정된다. 시스템이 위치 프로파일 생성기(1302)에 의해 계산된 목표 속도에 가까워짐에 따라, 제 3 단계(ACC_DEC)가 들어가지며, 이러는 동안 가속도는 일정 속도가 도달될 때까지 점진적으로 감소된다. 일정 속도가 달성되면, 이러한 일정 속도는 시스템이 목표 위치에 도달함에 따라 제4 단계(VEL_HOLD)동안 고정된다. 시스템이 목표 위치에 가까워지면, 궤적은 제5 단계(DEC_INC)에 들어가며, 이러는 동안 시스템은 점진적인 증가율로 0에서부터 모션 프로파일에 의해 정의된 목표 감속도로 감속되기 시작한다. 목표 감속도가 도달되면, 이러한 감속도는 제6 단계(DEC_HOLD) 동안 고정된다. 마지막으로, 제7 단계(DEC_DEC) 동안, 감속도는 시스템이 0 속도에 도달할 때까지 점진적으로 감소하여, 이동 시퀀스를 종료한다.
위치 스텝 명령(1308)이 제공되면, 위치 프로파일 생성기(1302)는 이들 7 프로파일 세그먼트 중 어느 것이 시간 최적의 모션 프로파일에 요구되는지 결정하고, 이동을 위하여 필요하다고 간주되는 각각의 세그먼트에 대한 시변의 저크 레퍼런스, 가속도 레퍼런스, 속도 레퍼런스 또는 위치 레퍼런스 중 하나 이상을 계산한다. 각각의 단계에 대하여 계산된 레퍼런스는 모션 프로파일에 의하여 정의된 궤적을 통하여 모션 시스템을 구동하기 위해 개루프 또는 폐루프 모션 컨트롤러(예컨대, 모터 드라이브)에 의해 사용될 수 있는 완전한 모션 프로파일을 구하도록 조합된다.
도 14는 하나 이상의 실시예에 따라 예시적인 속도 프로파일 생성기(1402)를 도시한다. 속도 프로파일 생성기(1402)는 위치 프로파일 생성기와 유사하지만, 위치에서의 변화 대신에 속도에서의 요구되는 변화에 응답하여 모션 프로파일을 계산하도록 사용된다. 즉, 속도 프로파일 생성기(1402)는 모션 시스템이 현재 속도에서 속도 설정 값(1408)에 의해 명시되는 목표 속도로 전환하기 위하여 시간 최적의, 모션 프로파일(1406)을 계산한다. 요구되는 속도 설정 값으로의 전환은 일반적으로 모션 시스템의 위치와 관련이 없으므로, 속도 프로파일 생성기(1402)에 의하여 정의된 제약(1404)은 위치 제한을 생략할 수 있다. 마찬가지로, 속도 프로파일 생성기(1402)에 의해 생성된 모션 프로파일(1406)은 위치 레퍼런스를 생략할 수 있으며, 시변의 저크 레퍼런스, 가속도 레퍼런스, 및/또는 속도 레퍼런스에만 관련하여 정의할 수 있다.
일부 모션 제어 응용에서, 모션 컨트롤러는 사다리꼴 모션 프로파일 또는 S 곡선 모션 프로파일 중 하나를 생성한다. 이러한 프로파일 유형에 더하여 또는 이러한 프로파일 유형을 대신하여, 본 개시의 프로파일 생성기는 여기에서 ST 곡선 프로파일이라 지칭되는 제3 프로파일 유형에 따라 프로파일을 생성할 수 있다. 도 15는 예시적인 ST 곡선 프로파일을 종래의 사다리꼴 프로파일 및 S 곡선 프로파일과 비교한다. 도 15에서 도시된 시간 그래프는 위치 0(시작 위치) 및 위치 2.5(도 13의 위치 스텝 명령(1308)에 의해 정의될 수 있는 바와 같은, 목표 위치)사이에서 주어진 모션 궤적에 대하여 위치, 속도, 가속도 및 저크를 표시한다. 일반적으로 이해되는 바와 같이, 표시된 값은 미분으로서 서로 수학적으로 관련된다. 즉, 속도는 위치의 미분(즉, 위치의 변화율), 가속도는 속도의 미분, 및 저크는 가속도의 미분이다.
사다리꼴 모션 프로파일은 상기 기술된 7 프로파일 단계 중 3 단계 (일정 가속(단계 2), 일정 속도(단계 4) 및 일정 감속(단계 6)) 만을 사용한다. 사다리꼴 속도 프로파일에서의 이러한 결과는 도 15에서 점선의 속도 곡선으로 도시되었다. 일정 가속/감속 단계 및 일정 속도 단계 사이의 갑작스러운 전환은 사다리꼴 속도 곡선의 최상부에서 꺾인 모서리(sharp corner)가 나오게 한다. 사다리꼴 프로파일의 가속 및 감속 페이스가 언제나 일정하므로, 이러한 프로파일에 대한 가속도 곡선은 가속도 그래프에서 점선으로 도시된 바와 같이 일정 값 사이에서 갑작스럽게 계단 뛴(step)다. 본 예시에서, 감속의 비율은 가속의 두 배이고, 따라서 사다리꼴 경우에 대한 가속도 곡선은 가속도 단계 동안 0.5, 일정 속도 단계 동안 0 및 감속 단계 동안 -1.0으로 계단 뛴다. 또한, (가속/감속의 변화율을 나타내는) 저크 곡선은, 도 15의 저크 그래프에서 점선으로 도시되는 바와 같이, 전환의 순간(도시되지 않음) 동안에 짧게 진동(pulse)할 수 있고, 가속 또는 감속이 일정하게 남아있으면 0으로 남을 수 있다.
사다리꼴 프로파일은 언제나 일정 속도 단계로의 점진적인 전환 및 일정 속도 단계로부터의 점진적인 전환 없이 일정 비율로 가속 및 감속할 수 있으므로, 사다리꼴 곡선 프로파일은 현재 위치 및 목표 위치 사이의 거리에서 비교적 빠르게 전환할 수 있다. 그러나, 가속/감속 및 일정(또는 0) 속도 사이의 갑작스러운 전환은 시스템에서 원하지 않는 기계적인 격동(mechanical turbulence)을 발생시킬 수 있다. 또한, 모션 시스템이 목표 위치에 다가감에 따라 감속이 점진적으로 줄어들지 않지만, 대신 갑작스럽게 0 속도로 변경되기 전에 목표 위치에 도달할 때까지 일정 감속이 유지될 수 있으므로, 사다리꼴 모션 프로파일은 초기 횡단의 끝에서 목표 위치를 오버슈트할 높은 가능성을 가져, 컨트롤러가 보상 제어 신호를 적용하여 목표 위치로 로드를 돌려보내도록 요구한다. 이러한 프로세스는 시스템이 목표 위치에 놓여지기 전에 수 차례 반복될 필요가 있어, 원하지 않는 시스템 진동을 발생시킬 수 있다.
사다리꼴 프로파일에 대조적으로, (도 15의 그래프에 얇은 실선으로 도시된) S 곡선 프로파일은 7 프로파일 단계의 연속적인 가속/감속 단계를 모두 활용하여, 이에 따라 일정(또는 0) 속도 페이스 및 일정 가속/감속 단계 사이의 점진적인 전환을 허용한다. 이러한 점진적인 가속 전환은 가속 그래프에서 분명히 도시될 수 있다. 사다리꼴 프로파일에서와 같이, 시각 0에서 일정 가속도로 시작하는 대신에, S 곡선 프로파일은 시각 0에서 일정 가속도로 점진적으로 램프(ramp)한다. 속도가 (1초 및 2초 사이에서) 최대로 도달하면, 사다리꼴 경우에서와 같이 0으로 계단 뛰어 내려가는 대신, 가속도는 점진적으로 0으로 감소하여 일정 속도를 달성한다. 가속에서 유사한 점진적인 변화는 S 곡선 프로파일에 대하여 이후의 감속 단계 동안 보여질 수 있다. 속도 및 위치 곡선 상에서의 이러한 점진적인 변화는 각각의 속도 및 위치 그래프에서 보여질 수 있다. 특히, S 곡선 속도 프로파일의 모서리는 사다리꼴 곡선에 비하여 더 둥글어져, 가속/감속 단계 및 일정 속도 단계 사이의 더 매끄러운 전환을 나타낸다. 마찬가지로, S 곡선 위치 프로파일은 목표에 도달하기 위해 요구되는 추가적인 시간의 소비를 통하여, 초기 위치 및 목표 위치 사이에서의 더 매끄러운 전환을 보인다.
여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 S 곡선 모션 프로파일의 생성을 지원할 수 있다. 종래에, S 곡선 모션 프로파일을 활용하는 모션 제어 시스템은 대칭의 가속 및 감속(즉, 일정 가속 단계 및 일정 감속 단계의 절대 값이 동일함)만을 지원한다. 대조적으로, 여기에서 기술된 프로파일 생성기는 비대칭의 가속도 및 감속도를 가지는 S 곡선 모션 프로파일을 지원할 수 있다. 이는 가속 동안 0.5의 제한을 가지고, 감속 동안 -1의 제한을 가지는 S곡선을 도시하는 도 15의 가속도 그래프에서 도시된다. 그러한 비대칭의 가속 및 감속에 대해 제공되기 위하여, 프로파일 생성기는 시스템 제약(예컨대, 도 13의 제약(1304)를 참고)으로서 구성될 분리된 가속 제한 및 감속 제한을 허용할 수 있고, 이러한 제약에 관하여 모션 프로파일을 계산할 수 있다.
저크 그래프에서 도시된 바와 같이, 가속/감속이 S 곡선 경우에 대한 모션 프로파일의 단계 1, 3, 5동안 증가 및 감소하는 비율은 언제나 일정하다. 즉, 저크는 본 예시에서 모션 프로파일의 임의의 주어진 단계에 대하여 언제나 일정 값(1, 0, 또는 -1 중 하나)이다. 이는, 가속도 그래프에서 도시된 바와 같이, 증가/감속 가속(또는 감속) 단계 및 일정 가속도 단계 사이에서 급격한 전환(sharp transition)을 일으킬 수 있다.
위치들 사이에서 시간 최적의 전환을 달성하면서 종래의 모션 제어 시스템의 사다리꼴 프로파일 및 S 곡선 프로파일에 의해 제안되는 것보다 매끄러운 동작을 용이하게 하기 위하여, 여기에서 개시된 프로파일 생성기의 하나 이상의 실시예는 ST 곡선 프로파일 유형에 따라 모션 프로파일을 계산할 수 있다. 예시적인 ST 곡선 프로파일은 도 15의 그래프에서 굵은 실선으로 나타낸다. 사다리꼴 프로파일과 S 곡선 프로파일과 대조적으로, ST 곡선 프로파일은 증가 및 감소하는 가속 및 감속의 단계 동안 시간에 따라 계속해서 저크를 점진적으로 변동한다. 이는 도 15의 가속도 그래프에서 도시되는 더 매끄러운 가속 전환을 할 수 있으며 각각의 속도 및 위치 그래프에서 도시되는 대응하는 더 매끄러운 속도 및 위치 곡선이 될 수 있다.
또한, ST 곡선 프로파일은 비대칭적인 가속 및 감속을 지원할 수 있다(즉, 프로파일 생성기는 주어진 모션 프로파일의 비율과는 다른 가속도율을 가지는 프로파일을 계산할 수 있음). 시간 최적의 해를 찾는 동시에 시간에 따른 함수로 수학적 궤적 표현을 유도하는 것은 비대칭적인 가속/감속을 이용하면 어려운 것일 수 있다. 이러한 문제를 다루기 위하여 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예가 가속 및 감속 사이의 관계, 및 가속 저크 및 감속 처크 사이의 관계에 영향을 주고 유도 중의 이러한 관계를 대체하여, 궤적의 분석적인 표현을 유도하고 이후 시간 최적의 해를 찾는 것이 가능하게 하는 알고리즘을 사용할 수 있다.
예시적인 ST 곡선 위치 프로파일이 이하에서 유도된다. 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 이하의 유도에 기초하여 모션 프로파일 레퍼런스를 생성할 수 있다. 그러나, 여기에서 기술된 프로파일 생성기가 ST 곡선에 기초하여 모션 프로파일을 생성하기 위한 이러한 기법에 한정되지 않고 본 개시의 범위 내에서 시간의 함수로 정의된 연속적인 저크 곡선을 얻는 임의의 적절한 알고리즘이라는 것이 이해될 것이다.
다음의 수학식에서,
Figure 112012083089140-pat00016
,
Figure 112012083089140-pat00017
,
Figure 112012083089140-pat00018
,
Figure 112012083089140-pat00019
는 각각 저크, 가속도, 속도, 및 위치이다. t1, t2, t3, t4 및 t5는 모션 프로파일의 ACC_INC, ACC_HOLD, VEL_HOLD, DEC_INC, 및 DEC_HOLD 단계(상기 표 1을 볼 것)의 각각의 지속 시간이다. 본 예시에서, ACC_INC 및 ACC_DEC는 지속 시간에서 동일하다고 가정되므로, t1은 ACC_INC 및 ACC_DEC 단계 양자의 지속 시간이다. 마찬가지로, DEC_INC는 DEC_DEC와 지속 시간에서 동일할 것으로 가정되므로, t4는 DEC_INC 및 DEC_DEC 양자에 대한 지속 시간이다. K는 이하의 수학식에 따른 저크, 가속도, 속도 및 위치 중 각각에 대한 모션 프로파일의 각각의 단계에 대하여 결정될 이득 값이다(7 단계의 각각에 대하여, t=0은 각각의 단계의 시작 시각을 나타냄).
Figure 112012083089140-pat00020
Figure 112012083089140-pat00021
Figure 112012083089140-pat00022
Figure 112012083089140-pat00023
이러한 관계가 주어지면, 최대 가속 저크, 최대 감속 저크, 최대 가속, 최대 감속 및 최대 속도는 세그먼트 지속 시간에 관하여 기술될 수 있다.
Figure 112012083089140-pat00024
Figure 112012083089140-pat00025
Figure 112012083089140-pat00026
Figure 112012083089140-pat00027
Figure 112012083089140-pat00028
Figure 112012083089140-pat00029
여기에서, P는 위치 스텝이고, J는 최대 가속 저크이고, I는 최대 감속 저크이고, A는 최대 가속도이고, D는 최대 감속도이며, V는 최대 속도이다.
P, V, A, D, J, I, t1, t2, t3, t4 및 t5는 이제 다음과 같이 구해질 수 있다.
Figure 112012083089140-pat00030
Figure 112012083089140-pat00031
Figure 112012083089140-pat00032
Figure 112012083089140-pat00033
Figure 112012083089140-pat00034
Figure 112012083089140-pat00035
Figure 112012083089140-pat00036
t1, t2, t3, t4 및 t5는 모두 0보다 크거나 같아야 하며,
Figure 112012083089140-pat00037
Figure 112012083089140-pat00038
라고 가정하면, 다음의 부등식 세트가 만들어질 수 있다.
Figure 112012083089140-pat00039
Figure 112012083089140-pat00040
Figure 112012083089140-pat00041
Figure 112012083089140-pat00042
부등식인 수학식 33 내지 수학식 36을 풀면, V, A, D, J 및 I에 대한 적절한 값(각각 속도, 가속도, 감속도, 가속 저크 및 감속 저크에 대한 최대 값)을 구한다.
이러한 최대 값을 수학식 25 내지 수학식 29에 대입하면, t1, t2, t3, t4 및 t5에 대한 값(모션 프로파일의 각각의 세그먼트의 지속 시간)을 구할 수 있다. 상기 수학식 14 내지 수학식 36에 따라 유도된 V, A, D, J, I, t1, t2, t3, t4 및 t5에 대한 값은 정의된 기계적 제약 또는 사용자의 요구 내에서 동작하는 매끄러운, 시간 최적의 궤적을 생산할 수 있다.
상기 기술된 관계에 기초하여, 프로파일 생성기는 주어진 지점 대 지점간 이동에 대하여 적합한 ST 곡선 모션 프로파일을 계산할 수 있다. 그러나,
t1, t2, t3, t4 및 t5에 대하여 먼저 계산된 값이 컨트롤러의 샘플 시간의 배수가 아닐 수 있고, 이후에 모션 컨트롤러의 샘플 점과 일치하지 않을 수 있다는 점이 인식된다. 프로파일 세그먼트 지속 시간이 두 개의 컨트롤러 샘플 점 사이에 해당하면, 컨트롤러가 요구되는 제어 신호 출력 및 실제 제어 신호 출력 사이에서의 작은 차이에 대하여 보상될 필요가 있을 수 있다. 이러한 쟁점을 다루기 위하여, 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 최대 값 V, A, D, J 및 I과 세그먼트 지속 시간 t1, t2, t3, t4 및 t5이 상기 기술된 바와 같이 유도된 이후에 추가적인 연산을 수행할 수 있다.
특히, 프로파일 생성기가 상기 유도에 따라 t1, t2, t3, t4 및 t5을 계산한 이후에, 이러한 지속 시간 값의 각각은 가장 가까운 샘플 시간으로 올림(upper-rounded)하여 t1New, t2New, t3New, t4New, 및 t5New를 얻을 수 있다. 이러한 올림하는 단계는 제약(1304 또는 1404)중 하나로서 프로파일 생성기에 제공되는 샘플 시간에 기초할 수 있다. 프로파일 생성기는 이후 올림된 지속 시간 값(t1New, t2New, t3New, t4New, 및 t5New)을 이용하여 V, A, D, J 및 I에 대한 새로운 값을 계산할 수 있다. 이러한 재계산은 샘플 시간의 배수인 세그먼트 지속 시간을 포함하는 최종 모션 프로파일을 얻어, 컨트롤러에 의한 제어 신호 출력이 컨트롤러의 샘플 점과 맞추어 조정되는 것이 보장될 수 있어, 이에 따라 모션 프로파일 시간이 두 개의 샘플 점 사이에 해당할 때 도입되는 작은 차이에 대한 보상에 대한 요구를 완화시킨다.
상기 기술된 ST 곡선에 대신하여 또는 ST 곡선에 더하여, 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예가 비대칭적인 가속도 및 감속도를 가지는 S 곡선 프로파일을 생성할 수 있다(예컨대, 도 15의 예시적인 S 곡선 궤적을 볼 것). 비대칭적인 가속도 및 감속도를 가지는 예시적인 S 곡선 프로파일은 아래에서 유도된다. 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 다음의 유도 또는 그 변형에 기초하여 모션 프로파일 레퍼런스를 생성할 수 있다.
상기 유도된 ST 곡선 방정식에서와 같이,
Figure 112012083089140-pat00043
,
Figure 112012083089140-pat00044
,
Figure 112012083089140-pat00045
,
Figure 112012083089140-pat00046
는 각각 저크, 가속도, 속도, 및 위치이다. t1, t2, t3, t4 및 t5는 모션 프로파일의 ACC_INC, ACC_HOLD, VEL_HOLD, DEC_INC 및 DEC_HOLD 단계(상기 표 1을 볼 것)의 각각의 지속 시간이다. ST 곡선 예시에서와 같이, ACC_INC 및 ACC_DEC는 지속 시간에서 동일하다고 가정되며, 따라서, t1은 ACC_INC 및 ACC_DEC 양자의 지속 시간이다. 마찬가지로, DEC_INC는 DEC_DEC와 지속 시간이 동일하다고 가정되므로, t4는 DEC_INC 및 DEC_DEC에 대한 지속 시간이다. K는 다음의 수학식에 따라, 저크, 가속도, 속도 및 위치의 각각에 대하여 모션 프로파일의 각각의 단계에 대하여 결정될 이득 값이다(여기에서, 7 단계의 각각에 대하여, t=0은 각각의 단계의 시작 시각을 나타냄).
Figure 112012083089140-pat00047
Figure 112012083089140-pat00048
Figure 112012083089140-pat00049
Figure 112012083089140-pat00050
이러한 관계가 주어지면, 최대 가속 저크, 최대 감속 저크, 최대 가속도, 최대 감속도 및 최대 속도가 세그먼트 지속 시간에 관하여 기술될 수 있다.
Figure 112012083089140-pat00051
Figure 112012083089140-pat00052
Figure 112012083089140-pat00053
Figure 112012083089140-pat00054
Figure 112012083089140-pat00055
여기에서, P는 위치 스텝이고, J는 최대 가속 저크이고, I는 최대 감속 저크이고, A는 최대 가속도이고, D는 최대 감속도이며, V는 최대 속도이다.
P, V, A, D, J, I, t1, t2, t3, t4 및 t5는 아래와 같이 구해질 수 있다.
Figure 112012083089140-pat00056
Figure 112012083089140-pat00057
Figure 112012083089140-pat00058
Figure 112012083089140-pat00059
Figure 112012083089140-pat00060
Figure 112012083089140-pat00061
t1, t2, t3, t4 및 t5가 모두 0보다 크거나 같다고 주어지고,
Figure 112012083089140-pat00062
라고 가정하면, 다음의 부등식 세트가 성립될 수 있다.
Figure 112012083089140-pat00063
Figure 112012083089140-pat00064
Figure 112012083089140-pat00065
Figure 112012083089140-pat00066
부등식인 수학식 53 내지 수학식 56을 풀면 S 곡선 프로파일에 대한 V, A, D, J 및 I에 대한 적절한 값(속도, 가속도, 감속도, 가속 저크 및 감속 저크 각각에 대한 최대 값)을 구한다.
이러한 최대 값을 수학식 47 내지 수학식 51로 대입하면 t1, t2, t3, t4 및 t5에 대한 값(S 곡선 모션 프로파일의 각각의 세그먼트의 지속 시간)을 얻을 수 있다. 상기 수학식 37 내지 수학식 56에 따라 유도된 V, A, D, J, I, t1, t2, t3, t4 및 t5에 대한 값은 비대칭적인 가속 및 감속을 가지고 정의된 기계적 제약 또는 사용자 요구 내에서 동작하는 S 곡선 프로파일을 생산할 수 있다.
일부 실시예에서, 프로파일 생성기는 결과적인 S 곡선 모션 프로파일을 ST 곡선 프로파일과 관련하여 상기 기술된 바와 유사한 추가적인 계산을 통하여 컨트롤러의 샘플 시간에 맞출 수 있다. 즉, 상기 유도에 따른 t1, t2, t3, t4 및 t5를 계산한 이후에, 프로파일 생성기는 이러한 지속 시간을 가장 가까운 샘플 시간으로 올림하여 새로운 지속 시간 값 t1New, t2New, t3New, t4New, 및 t5New를 구할 수 있다. 프로파일 생성기는 이후에 올림된 지속 시간 값 t1New, t2New, t3New, t4New, 및 t5New를 이용하여 V, A, D, J 및 I에 대한 새로운 값을 계산할 수 있다.
모션 프로파일은 일반적으로 상기 표 1에서 나열한 7 단계를 포함하는 반면, 일부 지점 대 지점간 이동은 7 단계 모두를 필요로 하지 않을 수 있다. 예컨대, 모션 시스템의 현재 상태 및 목표 상태 사이의 거리가 비교적 짧다면, 모션 프로파일의 VEL_HOLD(일정 속도) 세그먼트가 제거될 수 있다. 따라서, 여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 자동적이거나 지능적인(intelligent) 세그먼트 스킵을 지원할 수 있다. 즉, 단계 중 하나 이상이 최종 궤적에 사용되지 않더라도 프로파일의 7 단계 모두에 대하여 계산을 수행하는 대신, 여기에서 기술된 프로파일 생성기의 일부 실시예는 주어진 지점 대 지점간 이동에 대하여 최종 궤적에 사용될 단계만을 계산할 수 있다.
모션 프로파일은 새로운 이동 명령이 수신되면 모션 프로파일의 계산 동안 어떤 세그먼트가 스킵될 수 있는지를 자동으로 결정할 수 있다. 일부 실시예에서, 프로파일 생성기는 (위치 변화의 경우에) 현재 위치 및 목표 위치 사이의 전체 거리 또는 (속도 변화의 경우에) 현재 속도 및 목표 속도 사이의 차이에 부분적으로 기초하여 스킵될 수 있으며, 현재 상태 및 목표 상태 사이의 더 작은 차이는 모션 프로파일의 특정 세그먼트의 제거를 제안할 수 있다. 그러한 실시예에서, 현재 상태 및 목표 상태 사이의 차이는 정의된 차이의 범위의 세트와 비교될 수 있으며, 각각의 청의된 차이의 범위는 대응하는 모션 프로파일로부터 생략될 수 있는 하나 이상의 세그먼트와 연관된다.
여기에서 기술된 프로파일 생성기의 하나 이상의 실시예는 또한 어느 세그먼트가 종래 모션 데이터에 기초하여 스킵될 수 있는지 추론할 수 있다. 예컨대, 프로파일 생성기는 명령에 응답하여 수행되는 이동에 대한 발행된 이동 명령 및 대응하는 궤적 데이터(예컨대, 시간에 따른 위치, 속도, 가속도 및/또는 저크)의 이력을 기록할 수 있다. 프로파일 생성기는 이러한 종래 데이터를 분석하여 어느 세그먼트가 이동의 특정 유형에 대하여 생략될 수 있는지에 관한 추론을 만들 수 있다. 따라서, 새로운 지점 대 지점간 이동 명령이 수신되면, 이동에 대한 모션 프로파일을 계산하기에 앞서, 프로파일 생성기는 어느 세그먼트가 유사한 특징(예컨대, 횡단과 유사한 거리, 이동 명령이 수신된 시각에서와 유사한 속력 등)을 가지는 과거 이동 명령에 응답하여 수행되는 궤적의 모양에 기초하여 스킵될 수 있는지를 추론할 수 있다.
도 16 내지 도 19는 예시적인 7 단계 위치 프로파일에 대하여 스킵하는 세그먼트를 도시한 것이다. 도 16은 7 단계 모두를 활용하는 예시적인 S 곡선 프로파일을 도시한다. 도 17은 세그먼트 4(일정 속도 단계)를 스킵한 프로파일을 도시한다. 프로파일 생성기는 가로지를 위치 또는 속도 단계가 목표 위치 또는 속도가 도달되기 전에 일정 속도 단계가 도달되지 않기에 충분히 작은지에 대한 경우에 있어 그러한 프로파일을 계산할 수 있다. 그러한 위치 단계 또는 속도 설정 값 명령의 수신이 있자마자, 프로파일 생성기는 요구되는 이동에 대한 프로파일 계산을 수행하기에 앞서 이러한 결정을 할 수 있고, 단계 1 내지 단계 3 및 단계 5 내지 단계 7에서만 계산을 수행할 것이다. 마찬가지로, 도 18은 세그먼트 2 및 세그먼트 6을 스킵하는 예시적인 프로파일을 도시하고, 도 19는 세그먼트 2, 세그먼트 4 및 세그먼트 6을 스킵하는 예시적인 프로파일을 도시한다.
도 20 내지 도 22는 특정 개시된 태양에 따른 다양한 방법을 도시한다. 설명의 단순화를 위하여, 방법은 일련의 작용으로 도시되고 기술되었으나, 개시된 태양이 작용의 순서에 제한되지 않고 여기에 도시되고 기술된 바로부터 일부 작용이 다른 순서 및/또는 다른 작용과 동시에 일어날 수 있다는 것이 이해되고 인정될 것이다. 예컨대, 당업자는 방법이 상태도에서와 같이, 대안적으로 일련의 상호 관련된 상태 또는 사건으로서 나타내질 수 있음을 이해하고 인정할 것이다. 또한, 도시된 작용 모두가 특정 개시된 태양에 따라 구현되도록 요구되지 않을 수 있다. 또한, 이하에서 개시되고 본 개시에 걸쳐 개시된 방법은 그러한 방법을 컴퓨터로 전송 및 수송하기에 용이하도록 제조 물품에 저장될 수 있다.
도 20은 모션 제어 시스템에서 지점 대 지점간 이동에 대한 모션 프로파일을 계산하기 위한 예시적인 방법(2000)을 도시한다. 2002에서, 모션 제약의 세트는 모션 제어 시스템에 대하여 정의된다. 이러한 제약은 모션 제어 시스템에 의해 제어되는 기계 시스템의 물리적 제약을 포함할 수 있고, 속도, 가속도, 감속도 및 저크에서의 제한을 포함할 수 있다. 제약은 또한 기계 시스템을 제어하도록 사용되는 모션 컨트롤러에 대한 샘플 시간의 정의를 포함할 수 있다. 2002에서, 제어되는 기계 시스템의 새로운 위치 또는 속도로의 전환에 대한 명령이 수신된다. 이러한 명령은 모션 컨트롤러에 의해 실행되는 모션 제어 프로그램으로부터 비롯될 수 있거나 사용자에 의해 입력되는 수동 이동 명령일 수 있다. 명령은 모션 컨트롤러와 연관된 프로파일 생성기(예컨대, 상기 기술된 프로파일 생성기(1206, 1302 또는 1402)에 의해 수신될 수 있다.
2006에서, 단계(2004)에서 수신되는 명령의 수신에 응답하여, 모션 프로파일은 그 현재 위치 또는 속도로부터 명령에 의해 나타나는 새로운 위치 또는 속도로의 이동을 위하여 계산될 수 있다. 프로파일 생성기는 모션 프로파일의 세그먼트 중 적어도 하나에 대하여 시간의 함수로서 정의되는 연속적인 저크 레퍼런스를 포함하도록 이러한 모션 프로파일을 계산할 수 있다. 일부 실시예에서, 모션 프로파일은 수학식 14 내지 수학식 36과 관련하여 상기 기술된 유도에 따라 ST 곡선으로서 계산될 수 있다. 그러한 모션 프로파일은 도 15에서 도시된 저크 그래프의 굵은 실선으로 도시된 일반적인 포맷을 가지는 저크 레퍼런스를 구할 수 있으며, 도 15에서, 저크는 계산된 저크 함수에 따라 최대 값 및 최소 값 사이에서 시간에 따라 점진적으로 변동한다. 2008에서, 제어되는 기계 시스템은 그 현재 위치 또는 속도에서 단계(2006)에서 정의된 모션 프로파일에 따라 새로운 위치 또는 속도로 전환되도록 지시 받을 수 있다. 예컨대, 이는 단계(2006)에서 계산되는 모션 프로파일을 모션 프로파일 및 (폐루프 제어의 경우에) 기계 시스템에 대하여 측정된 실시간 상태 데이터를 제공하는 피드백 신호에 따라 기계 시스템을 구동하는 모터를 제어하는 모터 드라이브에 제공하는 것을 수반할 수 있다.
도 21은 모션 컨트롤러의 샘플 시간에 따르는 제약 기반 및 시간 최적의 모션 프로파일을 계산하기 위한 예시적인 방법(2100)을 도시한다. 2102에서, 제어되는 기계 시스템에 대한 모션 제약의 세트가 정의된다. 이는 종전의 예시에서와 같이, 속도, 가속도, 감속도 및 저크에 대한 제한 및 컨트롤러의 샘플 시간을 포함할 수 있다. 이러한 제약은 컨트롤러와 연관된 프로파일 생성기(예컨대, 상기 프로파일 생성기(1206, 1302 또는 1402)에 제공될 수 있다. 2104에서, 기계 시스템의 현재 위치 또는 속도에서 새로운 위치 또는 속도로의 전환에 대한 명령이 (예컨대, 프로파일 생성기에 의하여) 수신된다. 2106에서, 명령에 응답하여 기계 시스템의 궤적을 제어하기 위한 모션 프로파일은 (프로파일이 상기 표 1에서 도시된 바와 같이 7 세그먼트까지 포함될 수 있는) 모션 프로파일의 각각의 세그먼트에 대한 시간의 함수로서 최대 가속 저크(J), 최대 감속 저크(I), 최대 가속도(A), 최대 감속도(D) 및 최대 속도(V) 중 적어도 하나를 계산함으로써 생성된다. 또한, 프로파일의 각각의 세그먼트에 대한 지속 시간이 (예컨대, 수학식 14 내지 수학식 36에 관련하여 상기 기술된 기법을 이용하여) 계산된다.
2108에서, 단계(2106)에서 계산된 모든 프로파일 세그먼트 지속 시간이 컨트롤러의 샘플 시간의 배수인지가 결정된다. 모든 세그먼트가 샘플 시간의 배수인 지속 시간을 가진다면, 방법은 모션 프로파일이 단계(2106)에서 계산된 J, I, A, D 및 V의 값 및 프로파일 세그먼트 지속 시간에 기초하여 생성되는 단계(2114)로 이동한다. 대안적으로, 프로파일 세그먼트 중 하나 이상이 주기 시간의 짝수 배수가 아니면, 방법은 모든 프로파일 세그먼트 지속 시간이 샘플 시간의 가장 가까운 배수로 올림되는 단계(2110)으로 이동한다. 2112에서, J, I, A, D 및 V 중 하나 이상의 값이 단계(2110)에서 유도된 올림된 프로파일 세그먼트 지속 시간에 기초하여 재계산된다. 올림된 프로파일 세그먼트 지속 시간 및 J, I, A, D 및/또는 V의 재계산된 값에 기초하여 모션 프로파일은 2114에서 생성된다.
도 22가 세그먼트 스킵을 이용하여 지점 대 지점간 이동에 대한 모션 프로파일을 효율적으로 계산하기 위한 예시적인 방법(2200)을 도시한다. 2202에서 제어되는 기계 시스템의 새로운 위치 또는 새로운 속도로의 전환에 대한 명령이 (프로파일 생성기(1206, 1302 또는 1402)에서) 수신된다. 2204에서, 모션 프로파일의 7 세그먼트 중 어느 것이 요청되는 지점 대 지점간 이동을 수행하도록 요구되는지 결정이 이루어질 수 있다. 이러한 결정은, 예컨대, (위치 변경의 경우에) 현재 위치 및 요구되는 위치 사이에서 횡단되어야 하는 거리 또는 (속도 변경의 경우에) 현재 속도 및 요구되는 속도 사이의 차이의 결정에 기초하여 프로파일 생성기에 의해 자동적으로 이루어진다.
2206에서, 결정은 2204에서 이루어지는 결정에 기초하여 요구되는 이동을 수행하도록 모든 7 프로파일 세그먼트가 요구되는지 결정이 이루어진다. 모든 프로파일 세그먼트가 요구되면, 방법은 모션 프로파일이 모든 7 세그먼트에 대하여 프로파일 계산이 수행됨으로써 지점 대 지점간 이동을 위해 생성되는 단계(2210)로 이동한다. 대안적으로, 하나 이상의 세그먼트가 요구되지 않는다고, 단계(2206)에서 결정되면, 방법은 모션 프로파일이 단계(2204)에서 결정된 바와 같이, 요구되는 세그먼트에 대하여만 계산을 수행함으로써 지점 대 지점간 이동을 위하여 모션 프로파일이 생성되는 단계(2208)로 이동한다. 방법(2200)에 따른 세그먼트 스킵은 불필요한 프로파일 세그먼트를 계산하는 것과 연관된 불필요한 처리 오버헤드를 줄임으로써 제약 기반 및 시간 최적의 모션 프로파일의 더 효율적인 계산을 용이하게 할 수 있다.
예시적인 네트워크 및 분산 환경
당업자는 여기에서 기술된 다양한 실시예가 컴퓨터 네트워크의 일부로서 배치되거나 분산 컴퓨팅 환경에서 배치될 수 있고, 매체가 찾아질 수 있는 임의의 종류의 데이터 저장 장치에 연결될 수 있는 임의의 컴퓨터 또는 기타 클라이언트 장치나 서버 장치와 관련하여 구현될 수 있다는 것을 인정할 수 있다. 그러한 이유로, 여기에서 기술된 비디오 편집 시스템의 다양한 실시예가 임의의 수의 메모리 또는 저장 유닛(예컨대, 도 2의 메모리(216) 또는 도 11의 메모리(1112)) 및 임의의 수의 저장 유닛 전체에 걸쳐 일어나는 임의의 수의 어플리케이션 및 프로세스를 가지는 임의의 컴퓨터 시스템 또는 환경으로 구현될 수 있다. 이는 원격 또는 로컬 저장 장치를 가지는, 네트워크 환경 또는 분산 컴퓨팅 환경에서 사용되는 서버 컴퓨터 및 클라이언트 컴퓨터가 있는 환경을 포함하나 이에 제한되지는 않는다. 예컨대, 도 2를 참조하여, 토크 명령 생성기(204), 속도 모니터링 컴포넌트(206), 관성 컴포넌트(208), 마찰 계수 컴포넌트(210), 인터페이스 컴포넌트(212)는 단일 장치와 연관된 단일 메모리(216)에 저장될 수 있거나, 각각의 다수 장치와 연관된 다수의 메모리 중에 분산될 수 있다. 유사하게, 토크 명령 생성기(204), 속도 모니터링 컴포넌트(206), 관성 컴포넌트(208), 마찰 계수 컴포넌트(210) 및 인터페이스 컴포넌트(212)는 단일 프로세서(214) 또는 다수의 장치와 연관된 다수의 분산 프로세서에 의해 실행될 수 있다.
분산 컴퓨팅은 컴퓨팅 장치 및 시스템 사이에서의 통신 교환에 의하여 컴퓨터 자원 및 서비스의 공유를 제공한다. 이러한 자원 및 서비스는 대상에 대한 정보, 캐시 저장물 및 디스크 저장물의 교환을 포함한다. 이러한 자원 및 서비스는 또한 로드 균형, 자원의 확장, 처리의 특화 등에 대한 다중 처리 유닛(multiple processing unit) 전체에 걸쳐 처리력의 공유를 포함할 수 있다. 분산 컴퓨팅은 네트워크 연결을 이용하여, 클라이언트가 그 단체력(collective power)에 영향을 주어 그 기업에 이득을 주게 허용한다. 이러한 이유로 본 개시의 다양한 실시예에서 참여할 수 있는 응용, 대상 또는 자원을 가질 수 있다.
도 23은 예시적인 네트워크 또는 분산 컴퓨팅 환경의 개략도를 제공한다. 분산 컴퓨팅 환경은, 어플리케이션(2330, 2332, 2334, 2336, 2338 등)에 의해 나타낸 바와 같이, 컴퓨팅 오브젝트(object)(2310, 2312 등) 및 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)을 포함하여 프로그램, 방법, 데이터 저장물, 프로그램 가능한 로직 등을 포함할 수 있다. 컴퓨팅 오브젝트(2310, 2312 등) 및 컴퓨팅 오브젝트나 장치(2320, 2322, 2324, 2326, 2328 등)는 휴대 정보 단말기(personal digital assistant(PDA)), 오디오/비디오 장치, 이동 전화, MP3 플레이어, 개인용 컴퓨터, 랩탑, 태블릿 등과 같은 상이한 장치를 포함할 수 있어, 여기에 기술된 관성 추정기의 실시예는 그러한 장치들에 탑재되거나 그러한 장치들과 상호 작용할 수 있다.
각각의 컴퓨팅 오브젝트(2310, 2312, 등) 및 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)는 통신 네트워크(2340)를 직접적으로 또는 간접적으로 경유하여, 하나 이상의 기타 컴퓨팅 오브젝트(1110, 1112 등) 및 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)과 통신할 수 있다. 도 23에서 단일 요소로 도시되었더라도, 통신 네트워크(2340)는 서비스를 도 23의 시스템에 제공하는 기타 컴퓨팅 오브젝트 및 컴퓨팅 장치를 포함할 수 있고/거나 도시되지 않은 다수의 상호 연결된 네트워크를 나타낼 수 있다. 각각의 컴퓨팅 오브젝트(2310, 2312 등) 또는 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)는 또한 본 개시의 다양한 실시예의 구현예와 연결하기에 적절한 API를 이용하거나 기타 오브젝트, 소프트웨어, 펌웨어 및/또는 하드웨어일 수 있는 어플리케이션(2330, 2332, 2334, 2336, 2338)(예컨대, 관성 추정기(202), 모션 프로파일 생성 시스템(1102) 또는 그들의 컴포넌트)과 같은 어플리케이션을 포함할 수 있다.
분산 컴퓨팅 환경을 지원하는 다양한 시스템, 컴포넌트 및 네트워크 구성이 있다. 예컨대, 컴퓨팅 시스템은 유선 또는 무선 시스템에 의해 로컬 네트워크 또는 넓게 분산된 네트워크로 서로 연결될 수 있다. 일반적으로, 임의의 적절한 네트워크 기반시설(infrastructure)이 여기에서 다양한 실시예에서 기술된 바와 같은 시스템에 따르는 예시적인 통신에 사용될 수 있음에도, 많은 네트워크가 넓게 분산된 컴퓨팅에 대한 기반시설을 제공하고 많은 상이한 네트워크를 포함하는 인터넷에 결합된다.
따라서, 클라이언트/서버, 피어 투 피어(peer to peer) 또는 하이브리드 구조(hybrid architecture)와 같은 네트워크 접속 형태(network topology) 및 네트워크 기반 시설의 호스트가 활용될 수 있다. "클라이언트"는 다른 클래스 또는 그룹을 사용하는 클래스 또는 그룹의 구성원이다. 클라이언트는 예컨대, 다른 프로그램 또는 프로세스에 의해 제공되는 서비스를 요청하는 명령어 또는 태스크(task)의 대강의 세트의 컴퓨터 프로세스일 수 있다. 클라이언트 프로세스는 기타 프로그램 또는 서비스 그 자체에 대한 모든 일의 세부사항을 "알"아야 하는 것 없이 요청된 서비스를 활용할 수 있다.
클라이언트/서버 구조, 특히 네트워크 시스템에서, 클라이언트는 다른 컴퓨터, 예컨대, 서버에 의해 제공되는 공유된 네트워크 자원에 접속하는 컴퓨터일 수 있다. 도 23의 예시에서, 비제한적인 예시로서, 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)은, 클라이언트 및 컴퓨팅 오브젝트(2120, 2312 등)으로 생각될 수 있어, 임의의 컴퓨터가 환경에 따라 클라이언트, 서버 또는 양자로 고려될 수 있더라도, 컴퓨팅 오브젝트(2310, 2312 등)이 클라이언트 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)로부터 데이터를 수신하는 것, 데이터를 저장하는 것, 데이터를 처리하는 것, 데이터를 클라이언트 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)로 전송하는 것과 같은, 데이터 서비스를 제공하는 서버로서 여겨질 수 있다. 임의의 컴퓨팅 장치는 데이터를 처리하거나, 하나 이상의 실시예에 대하여 여기에서 기술한 바 와 같은 시스템에 대한 기법을 포함할 수 있는 거래 서비스 또는 태스크(task)를 요청할 수 있다.
서버는 일반적으로, 인터넷, 무선 네트워크 기반시설과 같은 원격 또는 로컬 네트워크를 통하여 접근 가능한 원격 컴퓨터 시스템이다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 활성화 될 수 있으며 서버 프로세스는 제2 컴퓨터 시스템에서 활성화 될 수 있어, 통신 매체를 거쳐 서로 통신하고, 따라서 분산 기능을 제공하고 다수의 클라이언트가 서버의 정보 수집 능력을 이용하도록 허용한다. 여기에서 기술되는 기법에 따라 활용되는 임의의 소프트웨어 오브젝트는 다수 컴퓨팅 장치 또는 오브젝트의 전반에 걸쳐 독립적으로 제공될 수 있거나 분산될 수 있다.
통신 네트워크/버스(2340)가 인터넷인 네트워크 환경에서, 예컨대, 컴퓨팅 오브젝트(2310, 2312 등)가 웹 서버, 파일 서버, 매체 서버 등이어서 이들과 클라이언트 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)는 하이퍼 텍스트 전송 프로토콜(hypertext transfer protocol(HTTP))과 같은 다수의 알려진 프로토콜 중 임의의 것을 통하여 통신할 수 있다. 컴퓨팅 오브젝트(2310, 2312 등)은 또한 분산 컴퓨팅 환경의 특징을 수 있는 바와 같이 클라이언트 컴퓨팅 오브젝트 또는 장치(2320, 2322, 2324, 2326, 2328 등)로서 역할할 수 있다.
예시적인 컴퓨팅 장치
전술한 바와 같이, 유리하게는, 여기에서 기술된 기법은 임의의 적절한 장치에 적용될 수 있다. 따라서, 모든 종류의 휴대용(handheld), 이동 (portable) 등의 컴퓨팅 장치 및 컴퓨팅 오브젝트가 다양한 실시예와 관련하여 사용하도록 고려된다. 따라서, 도 24에서 이하에 설명된 아래의 컴퓨터는 컴퓨팅 장치의 일 예시이다. 또한, 적절한 서버는 매체 서버 또는 기타 매체 관리 서버 컴포넌트와 같은 아래의 컴퓨터 중 하나 이상의 태양을 포함할 수 있다.
요구되지 않았으나, 실시예는 장치 또는 오브젝트에 대한 서비스의 개발자에 의해 사용되기 위하여 운영 체제를 통하여 부분적으로 구현될 수 있고/있거나, 여기에서 기술되는 다양한 실시예의 하나 이상의 기능적인 태양을 수행하도록 동작하는 어플리케이션 소프트웨어 내에 부분적으로 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션(client workstation), 서버 또는 기타 장치와 같이 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행 가능 명령어의 일반적인 컨텍스트(context)에 기술될 수 있다. 당업자는 컴퓨터 시스템이 데이터를 통신하도록 사용될 수 있는 다양한 구성 및 프로토콜을 가지며, 따라서, 특정 구성 또는 프로토콜이 제한하는 것으로 고려되지 않을 것이 인정할 것이다.
따라서, 도 24는 상기에서 명확하게, 컴퓨팅 시스템 환경(2400)이 적절한 컴퓨팅 환경의 일예시일 뿐이고, 용도 또는 기능의 범위로서 어떠한 제한을 제안하도록 의도되지는 않지만, 여기에서 기술된 실시예 중 하나 또는 여기에서 기술된 실시예의 태양이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(2400)의 예시를 도시한다. 어떠한 것도 컴퓨팅 시스템 환경(2400)이 예시적인 컴퓨팅 시스템 환경(2400)에서 예시된 컴포넌트 중 임의의 하나 또는 임의의 조합과 관련된 임의의 종속 또는 요구를 가지는 것으로 이해되지 않는다.
도 24를 참조하여, 컴퓨터(2410)의 형태로 하나 이상의 실시예를 구현하기 위한 예시적인 컴퓨팅 장치가 도시된다. 컴퓨터(2410)의 컴포넌트는 처리 유닛(2420), 시스템 메모리(2430), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 처리 유닛(2420)에 결합한 시스템 버스(2422)를 포함할 수 있으나, 이에 제한되지는 않는다. 처리 유닛(2420)은, 예컨대, 관성 추정기(202)의 프로세서(214)와 연관된 기능을 수행할 수 있는 반면, 시스템 메모리(2430)는 메모리(216)와 연관된 기능을 수행할 수 있다.
컴퓨터(2410)는 일반적으로 다양한 컴퓨터 판독가능 매체를 포함하며 컴퓨터(2410)에 의해 접속될 수 있는 임의의 이용 가능한 매체일 수 있다. 시스템 메모리(2430)는 ROM 및/또는 RAM과 같은 휘발성 메모리 및/또는 비휘발성 메모리의 형태로 컴퓨터 저장 매체를 포함할 수 있다. 예시로서, 시스템 메모리(2430)는 또한 운영 체제, 어플리케이션 프로그램, 기타 프로그램 모듈 및 프로그램 데이터를 포함할 수 있으나 이에 제한되지는 않는다.
사용자는 명령 및 정보를 입력 장치(2440)를 통하여 컴퓨터(2410)에 입력할 수 있으며, 입력 장치(2440)의 비 제한적인 예시는 키보드, 키패트, 포인팅 장치, 마우스, 스타일러스(stylus), 터치패드, 터치스크린, 트랙볼(trackball), 모션 검출기, 카메라, 마이크, 조이스틱, 게임 패드, 스캐너, 또는 사용자가 컴퓨터(2410)와 상호 작용하도록 허용하는 임의의 기타 장치를 포함할 수 있다. 모니터 또는 기타 유형의 디스플레이 장치는 또한 출력 인터페이스(2450)와 같은 인터페이스를 통하여 시스템 버스(2422)에 연결된다. 모니터에 더하여, 컴퓨터는 또한 출력 인터페이스(2450)를 통하여 연결될 수 있는, 스피커 및 프린터와 같은 기타 주변 출력 장치를 포함할 수 있다. 하나 이상의 실시예에서, 입력 장치(2440)가 사용자 입력을 인터페이스 컴포넌트(212)에 제공할 수 있는 반면, 출력 인터페이스(2450)는 인터페이스 컴포넌트(212)로부터 관성 추정기(202)의 동작과 관련된 정보를 수신할 수 있다.
컴퓨터(2410)는 원격 컴퓨터(2470)와 같은 하나 이상의 기타 원격 컴퓨터 논리적인 연결(logical connection)을 이용하여 네크워크 환경 또는 분산 환경에서 동작할 수 있다. 원격 컴퓨터(2470)는 개인용 컴퓨터, 서버, 라우터(router), 네트워크 PC, 피어 장치나 기타 공통 네트워크 노드 또는 임의의 기타 원격 매체 소비 또는 전송 장치일 수 있고, 컴퓨터(2410)에 관하여 상기 기술된 요소 중 임의의 것 또는 모두를 포함할 수 있다. 도 24에서 도시된 논리적 연결은 근거리 통신망(LAN) 또는 광역 통신망(WAN)과 같은, 네트워크(2472)를 포함하나, 예컨대, 셀룰러 네트워크(cellular network)와 같은 기타의 네트워크/버스를 또한 포함할 수 있다.
전술한 바와 같이, 예시적인 실시예가 다양한 컴퓨팅 장치 및 네트워크 구조와 관련하여 기술되었지만, 기본적인 개념은 유연한 방법으로 매체를 공개하고 소비하도록 요구될 수 있는 임의의 네트워크 시스템 및 임의의 컴퓨팅 장치나 시스템에 적용될 수 있다.
또한, 예컨대, 적절한 API, 도구 키트(tool kit), 드라이버 코드(driver code), 운영 체제, 제어, 독립 또는 다운로드 가능한 소프트웨어 물품 등과 같이 어플리케이션 및 서비스가 여기에서 기술된 기법을 이용할 수 있는 동일하거나 유사한 기능을 구현하기 위한 다수의 방법이 있다. 따라서, 여기에서의 실시예는, API(또는 기타 소프트웨어 오브젝트)의 관점 및 여기에서 기술된 하나 이상의 태양을 구현하는 소프트웨어 또는 하드웨어 오브젝트로의 관점으로부터 고려된다. 따라서, 여기에서 기술된 다양한 실시예는 하드웨어 전체, 하드웨어의 일부, 소프트웨어의 일부 및 소프트웨어에 있는 태양을 가질 수 있다.
"예시적인(exemplary)"이라는 단어는 여기에서 예시(example, instance 또는 illustration)를 의미하도록 사용된다. 의문을 피하기 위하여, 여기에서 개시된 태양은 그러한 예시에 제한되지 않는다. 또한, "예시적"으로 여기에 기술된 임의의 태양 또는 설계는 기타 태양 또는 디자인에 걸쳐 바람직하거나 유리한 것으로 해석될 필요는 없으며, 당업자에게 알려진 균등한 예시적 구조 및 기법을 배제하는 것을 의미하지도 않는다. 또한, "포함하다(include)", "가지다(have)", "함유하다(contain)"라는 용어 및 기타 유사한 단어는 상세한 설명 또는 청구항에서 사용되고, 의문을 피하기 위하여, 그러한 용어는 임의의 추가적인 요소 또는 기타 요소를 배제하지 않는 개방된 전환어(open transition word)로서의 "포함하는(comprising)"이라는 용어와 유사한 방식으로 포괄적이도록 의도된다.
컴퓨팅 장치는 일반적으로 다양한 매체를 포함하며, 이는 컴퓨터 판독 가능 저장 매체(예컨대, 메모리(216) 또는 메모리(1112)) 및/또는 통신 매체를 포함할 수 있으며, 여기에서 이러한 두 개의 용어는 여기서 다음과 같이 서로 다르게 사용된다. 컴퓨터 판독 가능 저장 매체는 일반적으로 비 일시적인 특성의 것으로 컴퓨터에 의해 접속될 수 있는 임의의 이용 가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리 가능한 매체 및 분리 불가능한 매체 양자를 포함할 수 있다. 예시로서, 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독가능 명령어, 프로그램 모듈, 구조화된 데이터(structured data) 또는 비구조화된 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술과 관련하여 구현될 수 있으나, 이에 제한되지는 않는다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD_ROM, 디지털 다기능 디스크(digital versatile disk(DVD)) 또는 기타 광학 디스크 저장 매체, 자기 카세트, 자키 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치 또는 요구되는 정보를 저장하도록 사용될 수 있는 기타의 유형물 및/또는 비 일시적 매체를 포함할 수 있으나, 이에 제한되지는 않는다. 컴퓨터 판독 가능 저장 매체는 예컨대, 매체에 의하여 저장된 정보에 대한 다양한 동작을 위하여, 접속 요청, 쿼리(query), 또는 기타 데이터 검색 프로토콜을 통하여 하나 이상의 로컬 또는 원격 컴퓨팅 장치에 의해 접속될 수 있다.
반면에, 통신 매체는 일반적으로 변조된 데이터 신호(예컨대, 반송파 또는 기타 전송 메커니즘)와 같은 데이터 신호에서 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 기타의 구조화되거나 비구조화된 데이터를 포함하며 임의의 정보 전달 또는 전송 매체를 포함한다. "변조된 데이터 신호"라는 용어 또는 신호는 하나 이상의 신호에서 정보를 인코딩하는 방식으로 설정 또는 변화되는 특징 중 하나 이상을 가지는 신호를 지칭한다. 예시로서, 통신 매체는 유선 네트워크 또는 직접적인 유선 연결과 같은 유선 매체 및 음향, RF, 적외서 및 기타 무선 매체와 같은 무선 매체를 포함하지만 이에 제한되지는 않는다.
전술한 바 와 같이, 여기에서 기술된 다양한 기법이 하드웨어 또는 소프트웨어 또는 양자의 적절한 조합과 관련되어 구현될 수 있다. 여기에서 사용된 바와 같이, "컴포넌트", "시스템" 등의 용어는 마찬가지로 컴퓨터 관련 엔티티(entity), 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 중 하나 또는 실행하는 소프트웨어에 관련되도록 의도된다. 예컨대, 컴포넌트는 프로세서에서 실행하는 프로세스, 프로세서, 오브젝트, 실행 가능한, 실행하는 스레드(thread), 프로그램 및/또는 컴퓨터에서 실행하는 프로세스일 수 있으나, 이에 제한되지는 않는다. 예시로서, 컴퓨터에서 실행하는 어플리케이션 및 컴퓨터 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행하는 스레드 내에 있을 수 있으며, 컴포넌트는 하나의 컴퓨터에 국한될 수 있고/있거나 둘 이상의 컴퓨터 사이에 분산될 수 있다. 또한, "장치"는 특수 설계된 하드웨어, 하드웨어가 거기에서 특정 기능(예컨대, 코딩 및/또는 디코딩)을 수행할 수 있도록 하는 소프트웨어의 실행에 의해 특화된 일반화된 하드웨어, 컴퓨터 판독가능 매체에 저장된 소프트웨어, 또는 그들의 조합의 형태가 될 수 있다.
전술한 시스템은 수개의 컴포넌트 사이의 상호 작용에 대하여 기술되었다. 그러한 시스템 및 컴포넌트는 다양한 치환 및 전술의 조합에 따라, 그 컴포넌트 또는 지정된 하위 컴포넌트, 지정된 컴포넌트 또는 하위 컴포넌트 중 일부, 및/또는 추가적인 컴포넌트를 포함할 수 있다는 것이 인정될 수 있다. 하위 컴포넌트는 또한 (계층적인) 상위 컴포넌트 내에 포함되는 대신 다른 컴포넌트에 통신하도록 결합된 컴포넌트로서 구현될 수 있다. 또한, 하나 이상의 컴포넌트가 종합적인 기능을 제공하는 단일 컴포넌트로 조합될 수 있거나 다수의 분리된 하위 컴포넌트로 분할될 수 있으며, 관리 계층과 같은 하나 이상의 중간 층은 종합된 기능을 제공하도록 그러한 하위 컴포넌트에 통신으로 결합하도록 제공될 수 있다. 여기에서 기술된 임의의 컴포넌트는 또한 여기에서 특별히 기술되지는 않았으나 당업자에게는 일반적으로 알려진 하나 이상의 기타 컴포넌트와 상호 작용할 수 있다.
여기에서 기술된 많은 추론을 제공하거나 지원하기 위하여(오디오 세그먼트를 추론하는 것), 여기에서 기술된 컴포넌트는 접속을 허용하는 데이터의 전체 또는 부분 집합을 시험할 수 있으며 사건 및/또는 데이터를 통하여 포착된 관찰의 집합으로부터 시스템, 환경 등의 상태에 대한 이유 또는 상태를 추론하기 위하여 제공될 수 있다. 예컨대, 추론은 특정 컨텍스트 또는 작용을 식별하도록 사용될 수 있거나, 상태에 따른 확률 분포를 생성할 수 있다. 추론은 확률적일 수 있다(즉, 데이터 및 사건의 고려에 기초한 관심의 상태에 따른 확률 분포의 연산). 추론은 사건 및/또는 데이터의 집합으로부터 더 높은 수준의 사건을 포함하기 위해 사용되는 기법에 관련될 수 있다.
그러한 추론은 사건이 시간적으로 가까이에서 상관되는지 아닌지 및 사건 및 데이터가 하나 이상의 사건 및 데이터 소스로부터 오는지 여부로 측정된 사건 및/또는 저장된 사건 데이터의 집합으로부터 새로운 사건 또는 행위의 구조가 될 수 있다. (명시적으로 및/또는 암시적으로 시도한) 분류 방법 및/또는 시스템(예컨대, 서포트 벡터 기계(support vector machine), 신경 네트워크, 전문 시스템, 베이지안 빌리프 네트워크(Bayesian belief network), 퍼지 논리(fuzzy logic), 데이터 퓨전 엔진, 등)이 청구된 대상과 관련하여 자동적으로 및/또는 추론된 행위를 수행하는 것과 관련하여 사용될 수 있다.
분류기(classifier)는 입력 속성 벡터(x = (x1, x2, x3, x4, xn))를 f(x) = 신뢰성(클래스)로써, 입력이 클래스(class)에 속하는 신뢰성에 매핑할 수 있다. 서포트 벡터 기계(SVM)는 사용될 수 있는 분류기의 예시이다. SVM은 가능한 입력의 공간에서 초 곡면을 찾음으로써 동작하고, 초 곡면은 비 트리거 사건으로부터 트리거하는 기준을 분리하도록 시도한다. 직감적으로 이는 시도 데이터와 동일하지는 않으나 가까운 테스트 데이터에 대한 분류 수정을 만든다. 기타의 직접적인 모델 분류 접근 및 간접적인 모델 분류 접근은 독립의 상이한 패턴을 제공하는 나이브(naive), 베이스(Bayes), 베이지안 네트워크, 결정 트리, 신경 네트워크 퍼지 로직 모델 및 확률적 분류 모델을 포함하며 사용될 수 있다. 여기에서 사용된 바 와 같은 분류는 또한 우선의 모델을 개발하도록 활용되는 통계적 회귀의 포괄이다.
상기 기술된 예시적인 시스템의 관점에서, 기술된 대상에 따라 구현될 수 있는 방법은 다양한 도면(예컨대, 도 9, 도 10 및 도 20 내지 도 22)의 흐름도를 참조하여 더 쉽게 인정될 것이다. 설명의 단순화의 목적으로, 방법이 일련의 블록으로 도시되고 기술되었으나, 청구된 대상이 블록의 순서에 제한되지 않고, 여기에서 도시되고 기술된 것으로부터 일부 블록이 다른 순서로 일어날 수 있고/있거나 다른 블록과 동시에 일어날 수 있다는 것이 이해되고 인정될 것이다. 비 순차적이거나 가지 쳐진(branched) 흐름은 흐름도를 통하여 도시되었으며, 다양한 기타의 가지, 흐름 경로 및 블록의 순서가 구현되어 동일하거나 유사한 결과를 달성할 수 있음이 인정될 수 있다. 또한, 모든 예시된 블록은 이하에 기술되는 방법을 구현하도록 요구될 수 있다.
여기에서 기술된 다양한 실시예에 더하여, 기타의 유사한 실시예가 사용될 수 있거나 수정 및 추가가 거기에서 벗어나지 않고 대응하는 실시예의 동일하거나 균등한 기능을 수행하기 위하여 기술된 실시예로 만들어질 수 있다. 또한, 다수의 처리 칩 또는 다수의 장치는 여기에서 기술된 하나 이상의 기능의 성능을 공유할 수 있으며, 유사하게 저장 장치는 복수의 장치에 걸쳐 영향 받을 수 있다. 따라서, 발명은 임의의 단일 실시예에 한정되지 않으나 대신 첨부된 청구항에 따라 사상 및 범위를 넓게 이해될 수 있다.

Claims (25)

  1. 모션 시스템(motion system)의 파라미터(parameter)를 추정하기 위한 방법으로서,
    시간 범위(time range)에 따라 계속해서 변동하는 토크 명령 신호(torque command signal)를 생성하는 단계 - 상기 시간 범위는 가속 페이즈(phase) 및 감속 페이즈를 포함함 -;
    상기 토크 명령 신호에 응답하여 상기 시간 범위에 따라 상기 모션 시스템의 속도를 나타내는 모션 장치에 대한 속도 데이터를 측정하는 단계; 및
    상기 가속 페이즈에 따른 상기 속도 데이터의 적분 및 상기 감속 페이즈에 따른 상기 토크 명령 신호의 적분의 곱의 적어도 일부에 기초하여 상기 모션 시스템의 관성(inertia)을 결정하는 단계를 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 토크 명령 신호를 생성하는 단계는 미리 정하여진 테스트 시퀀스(testing sequence)에 따라 상기 토크 명령 신호를 조정하는 단계를 포함하며, 상기 조정하는 단계는 미리 정해진 속도 체크 포인트(checkpoint)에 도달하는 상기 모션 시스템의 상기 속도에 응답하여 상기 토크 명령 신호의 변화 비율 또는 방향 중 적어도 하나를 변화시키는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 결정하는 단계는
    상기 가속 페이즈에 걸쳐 상기 토크 명령 신호 및 상기 속도 데이터를 적분하여 Uacc 및 Vacc를 각각 구하는 단계;
    상기 감속 페이즈에 걸쳐 상기 토크 명령 신호 및 상기 속도 데이터를 적분하여 Udec 및 Vdec 각각 구하는 단계; 및
    Uacc, Vacc, Udec 및 Vdec의 함수로서 상기 관성을 결정하는 단계를 포함하며, 여기에서,
    Figure 112013113869130-pat00129
    이고,
    uacc(t)는 상기 가속 페이즈에 대응하는 상기 토크 명령 신호의 부분이고,
    vacc(t)는 상기 가속 페이즈에 대응하는 상기 속도 데이터의 부분이고,
    udec(t)는 상기 감속 페이즈에 대응하는 상기 토크 명령 신호의 부분이며,
    vdec(t)는 상기 감속 페이즈에 대응하는 상기 속도 데이터의 부분인, 방법.
  5. 제4항에 있어서,
    상기 관성을 결정하는 단계는
    Figure 112013113869130-pat00130
    에 따른 상기 관성을 결정하는 단계
    를 포함하며, 여기에서
    J는 상기 관성이고,
    Figure 112013113869130-pat00131
    는 상기 가속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 가속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차이며,
    Figure 112013113869130-pat00132
    는 상기 감속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 감속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차인, 방법.
  6. 제1항에 있어서,
    상기 관성에 기초하여 상기 모션 시스템에 대한 적어도 하나의 컨트롤러 이득 계수(controller gain coefficient)를 결정하는 단계를 더 포함하는 방법.
  7. 모션 시스템의 기계적 파라미터를 추정하기 위한 시스템으로서,
    메모리; 및
    상기 메모리에 저장된 컴퓨터 실행 가능한 컴포넌트(computer-executable component)를 실행하도록 구성된 프로세서를 포함하며,
    상기 컴퓨터 실행 가능 컴포넌트는
    테스트 시퀀스 동안 시간에 따라 계속해서 변동하는 토크 명령 신호를 생성하도록 구성되는 토크 명령 생성기;
    상기 토크 명령 신호에 응답하여 시간에 따라 모션 시스템의 속도를 나타내는 속도 데이터를 획득하도록 구성된 속도 모니터링 컴포넌트(velocity monitoring component); 및
    상기 토크 명령 신호 및 상기 속도 데이터에 기초하여 상기 모션 시스템의 관성을 추정하도록 구성된 관성 컴포넌트 또는 상기 토크 명령 신호 및 상기 속도 데이터에 기초하여 상기 모션 시스템의 마찰 계수를 추정하도록 구성된 마찰 계수 컴포넌트 중 적어도 하나를 포함하는, 시스템.
  8. 제7항에 있어서,
    상기 관성 컴포넌트 또는 상기 마찰 계수 컴포넌트 중 적어도 하나는 시간 범위에 따른 상기 속도 데이터의 하나 이상의 적분 및 상기 시간 범위에 따른 상기 토크 명령 신호의 하나 이상의 적분의 적어도 일부에 기초하여 상기 관성 또는 상기 마찰 계수를 각각 추정하도록 더 구성되며, 상기 시간 범위는 상기 테스트 시퀀스의 지속 시간의 적어도 일부인, 시스템.
  9. 제7항에 있어서,
    상기 토크 명령 생성기는 토크 함수(u(t))에 따라 상기 토크 명령 신호를 제어하도록 더 구성되며, 상기 u(t)는 상기 테스트 시퀀스의 각각의 페이즈에 연관된 미리 정해진 명령어의 세트에 기초하며, 상기 각각의 페이즈는 각각의 정의된 속도 체크 포인트 값에 도달하는 상기 모션 시스템의 상기 속도에 응답하여 트리거(trigger)되는, 시스템.
  10. 제8항에 있어서, 상기 관성 컴포넌트 또는 상기 마찰 계수 컴포넌트 중 적어도 하나는 Uacc, Vacc, Udec 및 Vdec의 함수로서 상기 관성 또는 상기 마찰 계수를 각각 추정하도록 더 구성되며, 여기에서,
    Figure 112013113869130-pat00133
    이고,
    uacc(t)는 상기 테스트 시퀀스의 가속 페이즈에 대응하는 상기 토크 명령 신호의 부분이고,
    vacc(t)는 상기 가속 페이즈에 대응하는 상기 속도 데이터의 부분이고,
    udec(t)는 상기 테스트 시퀀스의 감속 페이즈에 대응하는 상기 토크 명령 신호의 부분이며,
    vdec(t)는 상기 감속 페이즈에 대응하는 상기 속도 데이터의 부분인, 시스템.
  11. 제10항에 있어서,
    상기 관성 컴포넌트는
    Figure 112012083089140-pat00073
    에 기초한 상기 관성을 추정하도록 더 구성되며,
    J는 상기 관성이고,
    Figure 112012083089140-pat00074
    는 상기 가속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 가속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차이며,
    Figure 112012083089140-pat00075
    는 상기 감속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 감속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차인, 시스템.
  12. 제10항에 있어서,
    상기 관성 계수 컴포넌트는
    Figure 112012083089140-pat00076
    에 기초한 상기 마찰 계수를 추정하도록 더 구성되고,
    B는 상기 마찰 계수이고,
    Figure 112012083089140-pat00077
    는 상기 가속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 가속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차이며,
    Figure 112012083089140-pat00078
    는 상기 감속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 감속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차인, 시스템.
  13. 제7항에 있어서,
    상기 컴퓨터 실행 가능 컴포넌트는 상기 관성 또는 상기 마찰 계수 중 적어도 하나의 함수로서 적어도 하나의 컨트롤러 이득 계수를 생성하도록 구성된 튜닝 컴포넌트(tuning component)를 더 포함하는 시스템.
  14. 모션 프로파일(motion profile)을 생성하기 위한 방법으로서,
    모션 장치에 대한 목표 위치 또는 목표 속도 중 적어도 하나를 나타내는 설정 값(setpoint)을 수신하는 단계; 및
    상기 모션 장치가 상기 목표 위치 또는 상기 목표 속도 중 적어도 하나로 전환하기 위한 모션 프로파일을 생성하는 단계를 포함하고,
    상기 모션 프로파일은 상기 모션 프로파일의 적어도 하나의 세그먼트에 대하여 시간의 함수로서 계속해서 변동하는 저크 레퍼런스(jerk reference)를 정의하는, 방법.
  15. 제14항에 있어서,
    상기 모션 프로파일을 생성하는 단계는, 시간의 함수로서, 상기 모션 프로파일 중 적어도 하나의 세그먼트에 대하여, 가속도 레퍼런스, 속도 레퍼런스 또는 위치 레퍼런스 중 적어도 하나를 정의하는 단계를 포함하는, 방법.
  16. 제14항에 있어서,
    상기 생성하는 단계는,
    상기 모션 프로파일의 각각의 세그먼트에 대한 저크 레퍼런스(reference), 가속도 레퍼런스, 속도 레퍼런스 또는 위치 레퍼런스 중 적어도 하나를 계산하는 단계;
    상기 모션 프로파일의 각각의 세그먼트에 대한 지속 시간을 계산하는 단계;
    상기 지속 시간을 모션 컨트롤러의 샘플 시간의 각각의 가장 가까운 배수로 반올림하여 반올림된 지속 시간을 구하는 단계; 및
    상기 반올림된 지속 시간을 이용하여 상기 저크 레퍼런스, 상기 가속도 레퍼런스, 상기 속도 레퍼런스 또는 상기 위치 레퍼런스 중 적어도 하나를 재계산하는 단계를 포함하는, 방법.
  17. 제14항에 있어서,
    상기 생성하는 단계는,
    Figure 112012083089140-pat00079

    Figure 112012083089140-pat00080

    Figure 112012083089140-pat00081

    Figure 112012083089140-pat00082

    Figure 112012083089140-pat00083

    Figure 112012083089140-pat00084

    Figure 112012083089140-pat00085

    Figure 112012083089140-pat00086

    Figure 112012083089140-pat00087

    Figure 112012083089140-pat00088

    Figure 112012083089140-pat00089

    Figure 112012083089140-pat00090
    의 관계에 따라 상기 모션 프로파일을 생성하는 단계를 포함하며, 여기에서,
    P는 상기 모션 장치의 위치이고,
    J는 최대 가속 저크이고,
    I는 최대 감속 저크이고,
    A는 최대 가속도이고,
    D는 최대 감속도이고,
    V는 최대 속도이고,
    t1은 상기 모션 프로파일의 증가하는 가속 단계 및 감소하는 가속 단계의 지속 시간이고,
    t2는 상기 모션 프로파일의 일정 가속 단계의 지속 시간이고,
    t3는 상기 모션 프로파일의 일정 속도 단계의 지속 시간이고,
    t4는 상기 모션 프로파일의 증가하는 감속 단계 및 감소하는 감속 단계의 지속 시간이고,
    t5는 상기 모션 프로파일의 일정 감속 단계의 지속 시간이며,
    Figure 112012083089140-pat00091
    인, 방법.
  18. 모션 프로파일을 생성하기 위한 시스템으로서,
    메모리; 및
    상기 메모리에 저장되는 컴퓨터 실행가능 컴포넌트를 실행하도록 구성된 프로세서를 포함하고,
    상기 컴퓨터 실행가능 컴포넌트는,
    모션 장치에 대한 목표 위치 또는 목표 속도의 수신에 응답하여, 상기 모션 프로파일의 적어도 하나의 단계에 대하여 시간에 따라 계속해서 변동하는 연속적인 저크 레퍼런스를 가지는 모션 프로파일을 생성하도록 구성된 모션 프로파일 생성기를 포함하며, 상기 모션 프로파일은 상기 모션 장치를 상기 목표 위치 또는 상기 목표 속도로 전환시키기 위한 궤적을 정의하는, 시스템.
  19. 제18항에 있어서,
    상기 모션 프로파일 생성기는 적어도 하나의 정의된 제약의 함수로서 상기 모션 프로파일을 생성하도록 더 구성되며, 상기 적어도 하나의 정의된 제약은 샘플 시간, 속도 제한, 가속도 제한, 저크 제한 또는 감속도 제한 중 적어도 하나를 포함하는, 시스템.
  20. 제18항에 있어서,
    상기 모션 프로파일 생성기는
    Figure 112013113869130-pat00092

    Figure 112013113869130-pat00093

    Figure 112013113869130-pat00094

    Figure 112013113869130-pat00095

    Figure 112013113869130-pat00096

    Figure 112013113869130-pat00097

    Figure 112013113869130-pat00098

    Figure 112013113869130-pat00099

    Figure 112013113869130-pat00100

    Figure 112013113869130-pat00101

    Figure 112013113869130-pat00102

    Figure 112013113869130-pat00103
    의 관계에 따라 상기 모션 프로파일을 생성하도록 더 구성되며, 여기에서,
    P는 상기 모션 장치의 위치이고,
    J는 최대 가속 저크이고,
    I는 최대 감속 저크이고,
    A는 최대 가속도이고,
    D는 최대 감속도이고,
    V는 최대 속도이고,
    t1은 상기 모션 프로파일의 증가하는 가속 단계 및 감소하는 가속 단계의 지속 시간이고,
    t2는 상기 모션 프로파일의 일정 가속 단계의 지속 시간이고,
    t3는 상기 모션 프로파일의 일정 속도 단계의 지속 시간이고,
    t4는 상기 모션 프로파일의 증가하는 감속 단계 및 감소하는 감속 단계의 지속 시간이고,
    t5는 상기 모션 프로파일의 일정 감속 단계의 지속 시간이며,
    Figure 112013113869130-pat00104
    인, 시스템.
  21. 제1항에 있어서,
    상기 속도 데이터 및 상기 토크 명령 신호에 적어도 일부에 기초하여 상기 모션 시스템의 마찰 계수(friction coefficient)를 결정하는 단계
    를 더 포함하는 방법.
  22. 모션 시스템의 파라미터를 추정하기 위한 방법으로서,
    시간 범위에 따라 계속해서 변동하는 토크 명령 신호를 생성하는 단계;
    상기 토크 명령 신호에 응답하여 상기 시간 범위에 따라 상기 모션 시스템의 속도를 나타내는 모션 장치에 대한 속도 데이터를 측정하는 단계; 및
    상기 토크 명령 신호의 적분 및 상기 속도 데이터의 적분의 적어도 일부에 기초하여 상기 모션 시스템의 마찰 계수를 결정하는 단계
    를 포함하는 방법.
  23. 제22항에 있어서,
    상기 결정하는 단계는
    가속 페이즈(phase)로서 상기 시간 범위의 제1 세그먼트(segment)를 지정하는 단계;
    감속 페이즈로서 상기 시간 범위의 제2 세그먼트를 지정하는 단계;
    상기 가속 페이즈에 걸쳐 상기 토크 명령 신호 및 상기 속도 데이터를 적분하여 Uacc 및 Vacc를 각각 구하는 단계;
    상기 감속 페이즈에 걸쳐 상기 토크 명령 신호 및 상기 속도 데이터를 적분하여 Udec 및 Vdec 각각 구하는 단계; 및
    Uacc, Vacc, Udec 및 Vdec의 함수로서 상기 마찰 계수를 결정하는 단계를 포함하며, 여기에서,
    Figure 112013113869130-pat00134
    이고,
    uacc(t)는 상기 가속 페이즈에 대응하는 상기 토크 명령 신호의 부분이고,
    vacc(t)는 상기 가속 페이즈에 대응하는 상기 속도 데이터의 부분이고,
    udec(t)는 상기 감속 페이즈에 대응하는 상기 토크 명령 신호의 부분이며,
    vdec(t)는 상기 감속 페이즈에 대응하는 상기 속도 데이터의 부분인, 방법.
  24. 제23항에 있어서,
    상기 마찰 계수를 결정하는 단계는
    Figure 112013113869130-pat00135
    에 따른 상기 마찰 계수를 결정하는 단계를 포함하며, 여기에서
    B는 상기 마찰 계수이고,
    Figure 112013113869130-pat00136
    는 상기 가속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 가속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차이며,
    Figure 112013113869130-pat00137
    는 상기 감속 페이즈의 종점에서의 상기 모션 시스템의 속도 및 상기 감속 페이즈의 시점에서의 상기 모션 시스템의 속도간의 차인, 방법.
  25. 모션 시스템의 파라미터를 추정하기 위한 방법으로서,
    시간 범위에 따라 계속해서 변동하는 토크 명령 신호를 생성하는 단계 - 상기 시간 범위는 가속 페이즈 및 감속 페이즈를 포함함 -;
    상기 토크 명령 신호에 응답하여 상기 시간 범위에 따라 상기 모션 시스템의 속도를 나타내는 모션 장치에 대한 속도 데이터를 측정하는 단계; 및
    상기 가속 페이즈에 따른 상기 토크 명령 신호의 적분 및 상기 감속 페이즈에 따른 상기 속도 데이터의 적분의 곱의 적어도 일부에 기초하여 상기 모션 시스템의 관성을 결정하는 단계
    를 포함하는 방법.
KR1020120113619A 2012-04-20 2012-10-12 기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법 KR101378824B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/451,924 US8710777B2 (en) 2012-04-20 2012-04-20 Method for automatically estimating inertia in a mechanical system
US13/451,924 2012-04-20
US13/474,919 US9041337B2 (en) 2012-05-18 2012-05-18 Motion profile generator
US13/474,919 2012-05-18

Publications (2)

Publication Number Publication Date
KR20130122704A KR20130122704A (ko) 2013-11-08
KR101378824B1 true KR101378824B1 (ko) 2014-03-27

Family

ID=49384229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120113619A KR101378824B1 (ko) 2012-04-20 2012-10-12 기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법

Country Status (4)

Country Link
JP (2) JP2013225284A (ko)
KR (1) KR101378824B1 (ko)
TW (1) TWI498701B (ko)
WO (1) WO2013158849A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015083417A1 (ja) * 2013-12-06 2015-06-11 三菱電機株式会社 摩擦同定方法および摩擦同定装置
KR101642198B1 (ko) 2014-12-11 2016-07-29 포항공과대학교 산학협력단 모션 효과 생성 장치 및 이를 위한 컴퓨터로 읽을 수 있는 기록매체
US10033308B2 (en) * 2015-03-17 2018-07-24 Intuitive Surgical Operations, Inc. Systems and methods for motor torque compensation
EP3076541A1 (de) * 2015-03-31 2016-10-05 Siemens Aktiengesellschaft Antriebsvorrichtung mit trägheitsmomentschätzung
US10126202B2 (en) * 2015-09-11 2018-11-13 Linestream Technologies Method for automatically estimating inertia, coulomb friction, and viscous friction in a mechanical system
EP3258331A1 (de) * 2016-06-16 2017-12-20 Schneider Electric Industries SAS Verfahren zur überwachung einer maschine
US9870002B1 (en) * 2016-09-06 2018-01-16 X Development Llc Velocity control of position-controlled motor controllers
CN108513651B (zh) * 2017-06-27 2021-08-20 深圳市大疆灵眸科技有限公司 手持云台装置及其控制方法与计算机可读存储介质
US11615659B2 (en) * 2018-05-17 2023-03-28 Arcus Technology, Inc. Motion system health management using multidimensional modeling using motor operational parameters
CN109472058B (zh) * 2018-10-16 2023-07-14 成都泰隆游乐实业有限公司 一种水滑梯轨迹分析方法
CN113784676A (zh) * 2019-04-08 2021-12-10 波士顿科学国际有限公司 具有过量扭矩保护的动脉粥样硬化切除术系统
JP7222427B2 (ja) * 2019-07-18 2023-02-15 株式会社安川電機 制御システム、制御装置及び制御方法
CN111198561B (zh) * 2019-12-05 2021-10-22 浙江大华技术股份有限公司 目标跟踪的运动控制方法、装置、计算机设备及存储介质
TWI721872B (zh) * 2020-04-23 2021-03-11 德律科技股份有限公司 適用於具有輸送帶的自動化機台的自動控制系統及方法
CN113821006B (zh) * 2020-05-07 2022-10-14 牧今科技 用于确定指示机器人校准质量的误差参数的值的方法和计算系统
CN113962138B (zh) * 2020-07-21 2023-11-03 腾讯科技(深圳)有限公司 移动平台的参数值确定方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333570A (ja) * 2005-05-24 2006-12-07 Hitachi Industrial Equipment Systems Co Ltd 電動機制御装置の機械系パラメータ推定方法及びシステム
JP2009184095A (ja) 2008-02-08 2009-08-20 Fanuc Ltd 部品保護機能を備えたロボット制御装置及びロボット制御方法
JP2011072178A (ja) 2009-08-28 2011-04-07 Fanuc Ltd イナーシャと摩擦を同時に推定する機能を有する電動機の制御装置
KR101121474B1 (ko) * 2010-12-01 2012-03-13 대성전기공업 주식회사 Dc 서보모터 시스템의 관성모멘트와 마찰계수를 구하는 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03290706A (ja) * 1990-04-09 1991-12-20 Mitsubishi Electric Corp 数値制御装置
JP3341305B2 (ja) * 1992-06-30 2002-11-05 ソニー株式会社 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
EP0827265B1 (en) * 1995-05-17 2002-04-10 Kabushiki Kaisha Yaskawa Denki Apparatus for determination of control constant
CA2312348C (en) * 1997-12-02 2004-07-20 Lacent Technologies Inc. Gantry-mounted laser nozzle and method for controlling laser positioning
US6320345B1 (en) * 1998-03-05 2001-11-20 Nikon Corporation Command trajectory for driving a stage with minimal vibration
JP2000040658A (ja) * 1998-07-24 2000-02-08 Nikon Corp ステージ制御方法及び走査型露光装置
JP3654049B2 (ja) * 1999-05-21 2005-06-02 松下電器産業株式会社 モータ制御装置
US6495791B2 (en) * 2000-05-16 2002-12-17 General Scanning, Inc. Method and subsystem for generating a trajectory to be followed by a motor-driven stage when processing microstructures at a laser-processing site
DE112005001789T5 (de) * 2004-07-27 2007-07-12 Kabushiki Kaisha Yaskawa Denki, Kitakyushu Servosteuervorrichtung
JP2006074896A (ja) * 2004-09-01 2006-03-16 Yaskawa Electric Corp モータ制御装置
JP4602921B2 (ja) * 2006-03-07 2010-12-22 株式会社日立産機システム モータ制御装置およびモータ制御方法
GB0610632D0 (en) * 2006-05-30 2006-07-05 Surface Control Ltd Monitoring apparatus
WO2008075558A1 (ja) * 2006-12-21 2008-06-26 Kabushiki Kaisha Yaskawa Denki 位置制御装置
US7622881B2 (en) * 2007-02-28 2009-11-24 Rockwell Automation Technologies, Inc. Method and apparatus for estimating system inertia where number of motor rotations are restricted

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006333570A (ja) * 2005-05-24 2006-12-07 Hitachi Industrial Equipment Systems Co Ltd 電動機制御装置の機械系パラメータ推定方法及びシステム
JP2009184095A (ja) 2008-02-08 2009-08-20 Fanuc Ltd 部品保護機能を備えたロボット制御装置及びロボット制御方法
JP2011072178A (ja) 2009-08-28 2011-04-07 Fanuc Ltd イナーシャと摩擦を同時に推定する機能を有する電動機の制御装置
KR101121474B1 (ko) * 2010-12-01 2012-03-13 대성전기공업 주식회사 Dc 서보모터 시스템의 관성모멘트와 마찰계수를 구하는 방법

Also Published As

Publication number Publication date
TWI498701B (zh) 2015-09-01
KR20130122704A (ko) 2013-11-08
WO2013158849A4 (en) 2014-01-30
TW201351082A (zh) 2013-12-16
JP2013225284A (ja) 2013-10-31
WO2013158849A2 (en) 2013-10-24
JP2017062824A (ja) 2017-03-30
WO2013158849A3 (en) 2013-12-12

Similar Documents

Publication Publication Date Title
KR101378824B1 (ko) 기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법
US9268316B2 (en) Method for automatically estimating a friction coefficient in a mechanical system
US10126202B2 (en) Method for automatically estimating inertia, coulomb friction, and viscous friction in a mechanical system
US9041337B2 (en) Motion profile generator
CN107077106B (zh) 自抗扰控制的优化参数化
US9776640B1 (en) Automatic determination of maximum acceleration for motion profiles
US9690261B2 (en) Method for automatically setting responsiveness parameters for motion control systems
JP5638724B2 (ja) 運動制御アクチュエーターに対する軌道を生成する方法
US10824121B2 (en) Machine learning device, servo motor controller, servo motor control system, and machine learning method
JP6564432B2 (ja) 機械学習装置、制御システム、制御装置、及び機械学習方法
US11009837B2 (en) Machine learning device that adjusts controller gain in a servo control apparatus
JP4889809B2 (ja) 加減速制御装置
CN110383187B (zh) 基于具有滞后的速率限制中继及正弦注入的系统参数识别方法
US10222764B2 (en) Application-specification-oriented control design
CN107873122A (zh) 电动机控制系统
JP2014174842A (ja) S字加減速制御プログラム、動作制御プログラム、記録媒体、コントローラ、s字加減速制御演算方法およびワーク動作制御システム
JP2019088100A (ja) モータ制御装置、制御システム、および、モータ制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180131

Year of fee payment: 5