# US 10,481,598 B2 · Motion system with sensor outputs and haptic controls

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,598 B2
- Document ID: US10481598B2
- Status: Granted
- Kind: B2
- Application number: 16/046,145
- Filed: 2018-07-26
- Published: 2019-03-28
- Granted: 2019-11-19
- Earliest claimed: 2017-09-22
- Assignees: Performance Motion Devices, Inc.
- Applicants: Performance Motion Devices, Inc.
- Inventors: Peter Fransiscus Vandermeulen; Emanuel Gustav Lewin; Thomas Keller
- Web page: https://patentgrep.com/patent/US10481598B2

## CPC

- G05B 23/0272: {Presentation of monitored results, e.g. selection of status reports to be displayed; Filtering information to the user}
- G01R 31/34: Testing dynamo-electric machines
- H02P 23/14: Estimation or adaptation of motor parameters, e.g. rotor time constant, flux, speed, current or voltage
- H02P 29/02: Providing protection against overload without automatic interruption of supply (protection against faults of stepper motors H02P8/36)
- H02P 29/60: Controlling or determining the temperature of the motor or of the drive (H02P29/02 takes precedence)
- H02P 29/64: Controlling or determining the temperature of the winding
- G01R 31/343: {in operation}
- H02P 2203/00: Indexing scheme relating to controlling arrangements characterised by the means for detecting the position of the rotor
- H02P 2205/01: Current loop, i.e. comparison of the motor current with a current reference
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G01R: MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES (indicating correct tuning of resonant circuits H03J3/12)
- H02P: CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS

## Abstract

A motion control system provides optimized communications within and between an amplifier and a profile generation subsystem. In particular, the communications can provide data streams between components of the motion control that are derived from observed variables of the motion system. An amplifier subsystem drives a motor and output motor data indicating status of the motor. The profile generation subsystem issues motor control commands to the amplifier subsystem and generates motor summary data based on the motor data. The profile generation subsystem selectively output an error signal based on at least one of the motor data and motor summary data.

## Claims

### Claim 1

A motor control module, comprising:
an amplifier subsystem configured to drive a motor and output motor data indicating status of the motor;
a profile generation subsystem configured to issue motor control commands to the amplifier subsystem, the profile generation subsystem further configured to 1) generate motor summary data based on the motor data, and 2) selectively output an error signal based on at least one of the motor data and motor summary data; and
a local sub-host configured to generate module summary data based on the motor summary data, the error signal and profile generation subsystem status data, the local sub-host further configured to forward the module summary data to a motor control host.

### Claim 2 (depends on 1)

The module of claim 1, wherein the amplifier subsystem is further configured to generate the motor data based on at least one measured value of the motor.

### Claim 3 (depends on 2)

The module of claim 2, wherein the motor data, motor summary data and measured value include at least one of motor temperature, motor winding temperature, average temperature, deviation of temperature and temperature drift.

### Claim 4 (depends on 2)

The module of claim 2, wherein the motor data, motor summary data and measured value include at least one of motor current, average current, deviation of current and current drift.

### Claim 5 (depends on 2)

The module of claim 2, wherein the motor data, motor summary data and measured value include at least one of motor position, position error, cumulative position error, motor velocity, velocity error, cumulative velocity error, motor acceleration, acceleration error, cumulative acceleration error, an amplifier component temperature, motor torque, motor jerk, a resonant frequency of the motor, and motor motion completion time.

### Claim 6 (depends on 1)

The module of claim 1, wherein the motor data includes temperature data of the motor.

### Claim 7 (depends on 1)

The module of claim 1, wherein the amplifier subsystem includes a current sensor configured to measure a current at the motor and output current data to the profile generation subsystem.

### Claim 8 (depends on 7)

The module of claim 7, wherein the motor summary data includes at least one of average current, deviation of current and current drift based on the current data.

### Claim 9 (depends on 1)

The module of claim 1, wherein the motor data includes indications of temperature and current of the motor, the profile generation subsystem further configured to 1) determine whether the temperature and current exhibit a drift, and 2) selectively output the error signal to indicate the drift.

### Claim 10 (depends on 1)

The module of claim 1, wherein the profile generation subsystem includes a current loop unit, a position loop unit, and a profile generator.

### Claim 11 (depends on 10)

The module of claim 10, wherein the current loop unit is further configured to generate current summary data based on measured current at the motor, the motor summary data including the current summary data.

### Claim 12 (depends on 10)

The module of claim 10, wherein the position loop unit is further configured to generate position summary data based on measured positions of the motor, the motor summary data including the current summary data.

### Claim 13

A method of operating a motor control module, comprising:
at an amplifier subsystem:
driving a motor; and
outputting motor data indicating status of the motor; and
at a profile generation subsystem:
issuing motor control commands to the amplifier subsystem;
generating motor summary data based on the motor data; and
selectively outputting an error signal based on at least one of the motor data and motor summary data;
generating module summary data based on the motor summary data, the error signal and profile generation subsystem status data; and
forwarding the module summary data to a motor control host.

### Claim 14

A method of operating a motor control module, comprising:
at an amplifier subsystem:
driving a motor;
generating motor data indicating status of the motor; and
generating motor summary data based on the motor data; and
at a profile generation subsystem:
issuing motor control commands to the amplifier subsystem;
receiving at least one of the motor data and motor summary data from the amplifier subsystem; and
selectively outputting an error signal based on at least one of the motor data and motor summary data;
generating module summary data based on the motor summary data, the error signal and profile generation subsystem status data; and
forwarding the module summary data to a motor control host.

### Claim 15

A method of operating a motor control module, comprising:
receiving first motor data indicating status of a motor;
calculating, at an amplifier subsystem, motor summary data based on the motor data;
determining, at a profile generation subsystem, whether the motor data exhibits a drift based on the motor summary data; and
selectively outputting an error signal based on the drift.

### Claim 16

A motion system, comprising:
a first motor control module including a first position loop configured to receive position encoder data from a first motor and a second motor, the first motor control module configured to control the first motor based on the position encoder data from the first and second motors; and
a second motor control module including a second position loop configured to receive the position encoder data from the first and second motors, the second motor control module configured to control the second motor based on the position encoder data from the first and second motors.

### Claim 17 (depends on 16)

The system of claim 16, wherein the second motor is integral to a manual controller, the second motor being configured to 1) generate haptic feedback to a user, and 2) generate the position encoder data of the second motor as a function of a manual input by the user.

### Claim 18 (depends on 16)

The system of claim 16, further comprising:
a sub-host configured to generate motor control commands to the first and second motor control modules; and
a transform module configured to inverse transform a measured torque of at least one of the first and second motors and forward a transformed measured torque to the sub-host.

### Claim 19 (depends on 18)

The system of claim 18, further comprising:
a first motor subsystem including the first motor control module and a third motor control module configured to control a third motor based on the position encoder data from at least one of the first and second motors; and
a second motor subsystem including the second motor control module.

### Claim 20 (depends on 19)

The system of claim 19, wherein the second motor subsystem further includes a fourth motor control module configured to control a fourth motor based on the position encoder data from at least one of the first and second motors.

### Claim 21

A method of operating a motor control module, comprising:
at a first processing block in a processing chain:
receiving first motor data indicating status of a motor;
calculating at least one of a mean and a standard deviation of the first motor data;
storing the first calculated data as a first stored value;
waiting a set period of time;
receiving second motor data indicating status of a motor;
calculating at least one of a mean and a standard deviation of the second motor data;
storing the second calculated data as a second stored value;
determining if a drift from the first stored value has occurred; and
outputting first summary data, the first summary data indicating at least one of the mean and a drift from a stored status value; and
at a second processing block in the processing chain:
receiving the first summary data indicating drift of a motor; and
determining an error action based on the drift of a motor.
