Patent Description:
Electric driven motors are used in a wide variety of applications including both commercial and military applications. A motor is used to drive a movable mechanism, also referred to as a load, by applying a transmission force, which can be linear force or a torque. The motor receives energy from an electric voltage source such as a battery or generator, and provides a transmission force (linear or torque), to move the mechanism. The motor receives position commands from an external system controller and reports back estimates of updated mechanism position and angular rate as the mechanism is moved. The mechanism itself may be subject to external loading forces or torques, which may be constant, or vary linearly or nonlinearly with deflection of the mechanism or with external factors such as situational or environmental conditions. External loading forces, including friction and inductive resistance, or back electromotive force (EMF), associated with movement of the mechanism in turn cause a reaction torque which counteracts the motor's transmission force.

In a proportional-integral-derivative (PID) feedback control design, the motor's control system is unaware of the reaction torque. Gains applied by the motor's control system for actuating the mechanism are designed to be high enough to overcome a worst-case reaction torque while maintaining minimum performance standards. Bandwidth, which is defined as the frequency at which the gain of the closed loop input-output response is relative to, e.g., 3dB down from, the steady state value and is related to the reciprocal of response time, is maintained high at a fixed value that can meet response requirements for a worst-case reaction torque. Such a high fixed-bandwidth system may be overly responsive and inefficient with respect to power consumption.

While conventional methods and systems have generally been considered satisfactory for their intended purpose. <CIT> relates to a motor drive controller. <CIT> relates to a sensor-less control of an electric motor. <CIT> relates to an estimation system for rotor information.

The purpose and advantages of the below described illustrated embodiments will be set forth in and apparent from the description that follows. Additional advantages of the illustrated embodiments will be realized and attained by the devices, systems and methods particularly pointed out in the written description and claims hereof, as well as from the appended drawings.

To achieve these and other advantages and in accordance with the purpose of the illustrated embodiments, in one aspect, a method is provided for controlling a motor for moving a load. The method is defined in claim <NUM> and includes receiving a selected bandwidth, wherein bandwidth is related to the reciprocal of response time, receiving a command to move the load to a selected position, receiving a feedback of measured motor position, estimating reaction torque or force associated with moving the load in real time, and estimating rotational motor speed and motor position. The method further includes calculating gains for controlling position of the load as a function of the selected bandwidth, wherein in the gain represents an adjustment of at least one of the estimated motor position, motor rotational speed, and reaction torque. The method further includes determining a drive signal to apply to the motor as a function of the estimated reaction torque, the estimated rotational motor speed, the estimated motor position, the gains and the selected position and transmitting the drive signal to the motor to move the load.

In another aspect, a controller for a motor configured to move a load is provided. The controller is defined in claim <NUM> and includes a processing device configured to receive a selected bandwidth, wherein bandwidth is related to the reciprocal of response time, receiving a command to move the load to a selected position, receive a feedback of measured motor position, estimate reaction torque or force associated with moving the load in real time, and estimate rotational motor speed and motor position. The processing device is further configured to calculate gains for controlling position of the load as a function of the selected bandwidth, wherein in the gains represents an adjustment of at least one of the estimated motor position, motor rotational speed, and reaction torque. The processing device is further configured to determine a drive signal to apply to the motor as a function of the estimated reaction torque, the estimated rotational motor speed, the estimated motor position, the gain and the selected position and transmit the drive signal to the motor to move the load.

The illustrated embodiments are now described more fully with reference to the accompanying drawings wherein like reference numerals identify similar structural/functional features. The illustrated embodiments are not limited in any way to what is illustrated, as the illustrated embodiments described below are merely exemplary, which can be embodied in various forms, as appreciated by one skilled in the art. Therefore, it is to be understood that any structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representation for teaching one skilled in the art to variously employ the discussed embodiments. Furthermore, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the illustrated embodiments.

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this present disclosure belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the illustrated embodiments, exemplary methods and materials are now described.

It must be noted that as used herein and in the appended claims, the singular forms "a", "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "the signal" includes reference to one or more signals and equivalents thereof known to those skilled in the art, and so forth.

It is to be appreciated the illustrated embodiments discussed below are preferably a software algorithm, program or code residing on computer useable medium having control logic for enabling execution on a machine having a computer processor. The machine typically includes memory storage configured to provide output from execution of the computer algorithm or program.

As used herein, the term "software" is meant to be synonymous with any code or program that can be in a processor of a host computer, regardless of whether the implementation is in hardware, firmware or as a software computer product available on a disc, a memory storage device, or for download from a remote machine. The embodiments described herein include such software to implement the equations, relationships and algorithms described above. One skilled in the art will appreciate further features and advantages of the illustrated embodiments based on the above-described embodiments. Accordingly, the illustrated embodiments are not to be limited by what has been particularly shown and described, except as indicated by the appended claims.

Turning now descriptively to the drawings, in which similar reference characters denote similar elements throughout the several views, <FIG> depicts an exemplary actuator system <NUM> in which below illustrated embodiments may be implemented. Actuator system <NUM> includes an actuator controller <NUM> that is configured to allow user or automated selection of bandwidth or response time of the actuator system <NUM> during operation. The selected bandwidth can be provided, for example by an external system controller (not shown). Bandwidth is related to the reciprocal of response time, and each reference to bandwidth encompasses reference to response time.

The actuator controller <NUM> estimates in real time a reaction torque input to the actuator system <NUM> by a mechanism <NUM> (also referred to as load). The reaction torque includes a loading torque applied to the mechanism <NUM> by external loading <NUM>. The actuator controller <NUM> decouples bandwidth requirements from requirements for responding on conditions when the reaction torque is at a maximum value, such as due to large external loading <NUM>. This decoupling allows for optimization of energy consumption during operation by allowing for selection of a bandwidth to match response needs as well as expected reaction torque or estimated reaction torque. This decoupling further provides robustness to disturbances that can cause unexpected external loading torques.

In an example scenario, the actuator system <NUM> is included in an airborne system, such as an aircraft or missile, or guided projectile. Mechanism <NUM> is a control surface on the airborne system, such as a fin, canard, stabilator, flap, aileron, rudder, elevator, or other device that can be moved by a motor <NUM> of the actuator system <NUM>, such as a landing gear. The actuator system <NUM> can be included within an airborne, waterborne, land borne, or subterranean system, such as a vehicle or pump, without limitation. When the mechanism is moved, its position is changed at a rate of position change. When being moved, the mechanism can be subjected to an external loading force. The loading force can be, for example, friction, air resistance, water resistance, etc. The external loading forces can include external loading torques, which may be constant, or vary linearly with deflection of the mechanism. The external loads <NUM> may also be nonlinear or vary with external factors, for example flight condition. An example of an external load <NUM> that is affected by external factors for an example aircraft or missile control surface mechanism <NUM> is a hinge moment loading which is affected by Mach number, dynamic pressure, airframe angle of attack and sideslip, as well as control surface deflection. External loads <NUM> applied to the mechanism <NUM> in turn cause a reaction torque which must be overcome by transmission force applied to the mechanism <NUM> by the actuator system <NUM>.

Controller <NUM> receives load position commands and selected bandwidth from one or more external system controllers, such as an autopilot or a user interface. Actuator controller <NUM> further reports feedback to the one or more external system controllers. The feedback includes estimates of the motor position and motor rotational rate. An inverter <NUM> of actuator system <NUM> receives energy from an electric voltage source (not shown), such as a battery or generator. Motor <NUM> receives current signals from inverter <NUM> and converts the current signals into a mechanical force, which is applied to a transmission unit <NUM>. Transmission unit <NUM> can provide a gear to move the mechanism <NUM>. Transmission unit <NUM> relates a position of mechanism <NUM> to the position of motor <NUM>, such as through a gear ratio, <NUM>/N. Mechanism <NUM> applies a load reaction torque to the transmission unit <NUM>, wherein the load reaction torque is a reaction to a loading torque applied to the mechanism <NUM> by external loading <NUM>. The transmission force applied by transmission unit <NUM> is configured to be sufficient to compensate for the load reaction torque applied by mechanism <NUM>.

Actuator system <NUM> includes current sensors <NUM> and one or more current monitors <NUM> to measure and monitor each phase of current output by inverter <NUM>. Output of the current monitors <NUM> is provided to the actuator controller <NUM> as current feedback. Actuator system <NUM> further includes a position encoder configured to measure motor position, e.g., in terms of angular rotation or linear translation. Output of the position encoder <NUM> is provided to actuator controller <NUM> as motor position feedback.

<FIG> shows actuator controller <NUM>, which includes an outer loop load controller <NUM> and an inner loop motor controller <NUM>. The outer loop fin controller <NUM> includes a gain computations module <NUM>, a high gain observer <NUM>, and a load position controller module <NUM>. The embodiments of this disclosure are directed to the design and implementation of outer loop load controller <NUM>. The inner loop motor controller <NUM> includes a current loop controller module <NUM> a motor controller interface <NUM>, and a current monitor interface <NUM>. The inner loop motor controller <NUM>, though necessary to the operation of the actuator system <NUM>, is not restricted to a specific configuration. The configuration of inner loop motor controller <NUM> shown and described is provided by way of example, whereas other configurations known in the art could be used.

Gain computation module <NUM>, described in greater detail below, receives a selectable load controller bandwidth ΩC (also referred to as command bandwidth) and outputs command gain Kc and limit Llimc, Ulimc values to the load position controller <NUM>. The actuator controller <NUM> receives the command bandwidth as an input selectable value or as a software setting of the actuator controller <NUM>. The command bandwidth can be set by an administrator or from one or more external load controllers (not shown) that can modify the command bandwidth during operation in response to a condition, such as a sensed condition or at different phases of or times during an operation.

The inner loop motor controller <NUM>, is shown with reference to a conventional d-q motor current model. With reference to the inner loop motor controller <NUM>, the current monitor interface <NUM> receives current feedback ia , ib , ic as measured at the motor (motor <NUM> as shown in <FIG>).

Current loop controllers <NUM> include traditional proportional-integral (PI) controllers that produce outputs voltage vectors vdref and vqref. Motor controller interface <NUM> rotates the voltage vectors vdref and vqref into the stationary reference frame using θ̂m (provided by the high gain observer <NUM>) as a transformation angle to obtain quadrature voltage values, Vα and Vβ, and mathematically transforms Vα and Vβ into three phase-voltages va , vb , vc , which are output to the motor <NUM>, e.g., via inverter <NUM>.

With reference to outer loop <NUM>, high gain observer <NUM> receives motor position feedback θm as measured at the motor (e.g., by a sensor, such as an optical encoder or Hall effects sensor, estimates motor positon θ̂m motor speed ω̂m , and load reaction torque T̂m. The high gain observer <NUM> provides the estimated motor positon θ̂m motor rotation rate ω̂m, and load reaction torque T̂m to the load position controller <NUM>, the estimated motor positon θ̂m to the motor controller interface <NUM> and the current monitor interface <NUM>, and the estimated load positon θ̂load and load rotation rate ω̂load to the external system controller. The load position controller <NUM> receives a load position command θrefload that it uses to determine reference current vectors iqref, idref as a function of estimated motor positon θ̂m, motor speed ω̂m, and load reaction torque T̂m. Reference current vectors iqref , idref are provided to the current controller module <NUM>. The current loop controller module <NUM> and motor controller interface <NUM> operate as described above with respect to inner loop <NUM> to output va , vb , vc. to the motor <NUM> (shown in <FIG>).

With reference to <FIG> and <FIG>, as described above, actuator controller <NUM> provides three features associated with the outer loop load controller <NUM> that operate together to decouple bandwidth requirements from requirements for maximum load reaction torque. The first feature is high gain observer <NUM> uses measurements of the motor position θm measured at motor <NUM> by encoder <NUM> and provides estimates of load reaction torque T̂m as well as estimates of motor position θ̂m and motor rotation rate ω̂m. The second features is application of a load position controller <NUM> that uses estimates of the load reaction torque T̂m, motor position and motor rotation rate to determine inner loop motor controller reference current vectors iqref, idref. The third features is a gain computation module <NUM> that computes gains to apply to the load position controller <NUM> as a function of a commanded actuator bandwidth.

It is envisioned that the externally supplied commanded bandwidth may be either fixed in software settings to provide motors of "selectable bandwidth," or may actually be modified during operation by an external system controller, to allow the motor to assume a different bandwidth response at different times or phases of system operation. The "selectable bandwidth" option could also be attractive to customers who would like to use the same motor part in different applications. The option to modify the bandwidth in real time could be very beneficial in applications where the response requirements change significantly during its operation, such as for a missile system during mid-course glide versus terminal maneuver. The ability to use a lower bandwidth when appropriate can lead to significant power savings, which can reduce battery size and/or electric generation requirements.

Due to the selectable bandwidth, the same actuator system <NUM> can be used for different applications. Additionally, since the selectable bandwidth can be modified during operation, e.g., in real time, bandwidth can be changed to accommodate different needs for response times at different phases of an operation. This can be illustrated by an example in which mechanism <NUM> is a control surface, such as a fin, on a missile. A lower bandwidth, which correlates to a slower response time, can be applied during a mid-course glide phase of missile flight whereas a higher bandwidth, faster response, may be required during the terminal maneuver phase of the missile flight. Power requirements can be reduced when bandwidths are reduced. The ability to use a lower bandwidth when appropriate can lead to significant power savings, which can reduce battery size and/or electric generation requirements.

An important feature of the actuator controller <NUM>, is that the bandwidth requirements of actuator system <NUM> are decoupled from the maximum load reaction torque T̂m requirements. This decoupling allows the selectable bandwidth to be lowered even when the mechanism <NUM> is subjected to relatively high external loading torques.

A further advantage of the ability of the actuator controller <NUM> to directly compensate for load reaction torque T̂m is the ability of actuator system <NUM> to provide a consistent response as specified by the selected bandwidth independent of the external loading torque. This for example, could prevent or reduce asymmetric responses of missile or aircraft control surfaces that are experiencing different aerodynamic loading due to angle of attack or aerodynamic shading. The consistent responses provide more robust and predictable performance of the actuator system <NUM>, which is important when combined with similar actuator systems to control a vehicle.

Another benefit is that the load reaction torque T̂m that is estimated by the high gain observer <NUM> and compensated for in the load position controller <NUM> can further include disturbances due to parameter uncertainties. The estimation of and compensation for these uncertainties improves robustness of the actuator system <NUM> for responding to disturbances and modeling uncertainties.

Although an example application for controlling a fin mechanism is described, this is for illustrative purposes and in no way is intended to limit the scope of applications of the disclosure. Furthermore, in the example provided the transmission force applied to the fin of a missile was a rotational torque, the disclosure can encompass a transmission force that applies a linear force to the mechanism <NUM>, wherein high gain observer <NUM> would still provide an estimate of a load reaction torque T̂m applied at a shaft of motor <NUM>.

Load position controller <NUM>, variable bandwidth gain computations by gain computations <NUM>, and high gain observer design <NUM> are now described in greater detail.

For illustration purposes, load position controller <NUM> is described for an example electric motor actuation system <NUM> that drives a mechanism <NUM> for controlling a fin control surface on a missile or aircraft. In this case, the load position command θrefload tracked by load position controller <NUM> is a fin position reference command. First, we assume that the fin position θfin can be related to the motor position θm through a gear ratio, N, by a simple algebraic product: <MAT> Commanded fin position is converted to a motor position command: <MAT> Then, using simplified mechanical rotational equation of the electric motor: <MAT> <MAT> Where:.

Assuming full state feedback and known external loading torque, a simple position feedback control law can be designed to make the system behave like a second order system with known bandwidth (Ω) and damping (ζ) about a commanded angular position (θC ): <MAT>.

Noting that θ̈ = ω̇ and θ̇ = ω , the motor state equations can be equated to the desired bandwidth second order system: <MAT>.

An equation for the load position controller <NUM> that can apply a desired bandwidth (denoted as Ω) is found by solving for the input current, iq, which becomes a reference signal to the current loop controller module <NUM> <MAT>: <MAT>.

With reference to <FIG>, a schematic diagram of the load position controller <NUM> is shown. Controller gains K1, K2, and K3 and saturation limits Llim and Ulim are provided as inputs as well as estimates of the motor position θ̂m, motor speed ω̂m, and load reaction torque T̂m, as shown and described with respect to <FIG>, for a feedback control architecture. A dynamic limiter <NUM> is optionally used to limit the motor position error signal used in the controller, which in effect limits the maximum motor angular rate command. In addition a fixed limit on the output iq reference signal provides a current command limit to the current loop controller module <NUM> and prevents high gain peaking.

A gain multiplier <NUM> converts the fin position command θreffin to a motor position command θC by application of the constant gear ratio N of the transmission unit <NUM>. Estimated motor position θ̂m is subtracted from the output of gain multipler <NUM> at adder <NUM>. The output of adder <NUM> is optionally input to dynamic limiter <NUM> for applying dynamic limits Ulim and Llim. The output of dynamic limiter <NUM> is multiplied by first gain component K1 at multiplier <NUM>. The output of multiplier <NUM> is provided to adder <NUM>. Estimated motor speed ω̂m is multiplied by second gain component K2 at multiplier <NUM>. The output of multiplier <NUM> is provided to adder <NUM>. Estimated load reaction torque T̂m is multiplied by third gain component K3 at multiplier <NUM>. The output of multiplier <NUM> is provided to adder <NUM>. The output of adder <NUM> can optionally be provided to a fixed limiter <NUM> for applying limit iq lim. The output of fixed limiter <NUM> is output as the iq reference signal <MAT>.

Gain components K1, K2, K3 applied in <FIG> can be computed in real-time as a function of the selected bandwidth ΩC input from an external device or user interface, such as via a higher level system controller, computed a periodically whenever the desired bandwidth changes, or computed once at system or software initialization of actuator system <NUM>. The higher level system controller can be, for example an autopilot or a control augmentation system operated by a pilot. The gain computation module <NUM> calculates the gain components K1, K2, K3 based on the current reference equation in terms of the variable bandwidth (ΩC), desired damping (ζ), and motor parameters defined previously: <MAT> <MAT> <MAT>.

The dynamic limits Llim and Ulim applied to the motor position error signal are also computed in the gain computation module <NUM> as a function of the selected bandwidth (ΩC) and damping (ζ), to give a maximum motor angular rotation limit specified by ωm,max in rad/s. <MAT> <MAT>.

The fin controller gains and limits appear in vector form in <FIG>: <MAT>.

The load position controller <NUM> is designed to directly compensate for load reaction torque T̂m in order to maintain a desired system bandwidth in the presence of time varying and uncertain external loading torque conditions. In many instances it is not feasible to have direct measurement of either the motor rotational speed or load reaction torque, such as in an inexpensive actuator system. In these instances, it is desirable to estimate the motor rotational speed and reaction torque from measurements of the motor rotational position. A measurement device, such as a Hall effects sensor or optical encoder, can be used to provide a direct measurement of the motor shaft rotational position, even without an independent measurement of the motor rotational speed.

High gain observer <NUM> can provide simultaneous estimates of the motor position, motor rate, and motor reaction torque for use by the load position controller <NUM>, even when only the motor rotational position measurement is available. With a sufficiently high bandwidth for high gain observer <NUM>, estimates for motor position, motor rate, and motor reaction torque can converge at a time scale that does not adversely influence robustness of the load position controller <NUM>.

High gain observer <NUM> is configured with a state to represent load reaction torque in addition to states representing motor position and motor rate, wherein the load reaction torque can be assumed to be constant. State equations for the high gain observer <NUM> are provided as: <MAT> <MAT> <MAT> Writing these equations in standard state space form, with z = [θm ω T]T , u = iq <MAT> where <MAT>.

Expansion of a Luenberger observer equation provides: <MAT> where <MAT> re estimated state values calculated by the high gain observer <NUM>.

Defining an observer gain matrix for a single input, single output (SISO) system: <MAT>.

A system matrix equation for the high gain observer <NUM> is: <MAT> <MAT>.

A characteristic equation for the high gain observer <NUM> is found from: <MAT> where s is the Laplace operator and I is the identity matrix. Expanding the determinant: <MAT> Equating the coefficients of the characteristic polynomial to those of a stable <NUM>rd order Butterworth polynomial with bandwidth W: <MAT>.

Solving for the gains of the high gain observer <NUM> in terms of the previously defined motor parameters and the desired bandwidth of the close loop high gain observer <NUM>: <MAT> <MAT> <MAT> Equations for the high gain observer <NUM> are then written: <MAT> <MAT> <MAT>.

With reference to <FIG>, a schematic diagram of the high gain observer <NUM> is shown, with observer gains (Kob<NUM>, Kob<NUM>, Kob<NUM>) pre-calculated and stored in software. Bandwidth of the high gain observer <NUM> is a design consideration but should be sufficiently high to guarantee convergence of the estimates at the time scale needed by the outer loop controller, and yet sufficiently less than the bandwidth of the inner loop current controllers <NUM>.

In one or more embodiments, the observer gains could also be calculated from the equations above in the software/firmware implementation of the gain computation module <NUM> and passed to the high gain observer <NUM>. In this embodiment, bandwidth of the high gain observer <NUM> would also be supplied by a user interface.

The estimate of load response torque T̂ output by the high gain observer <NUM> includes not only the load reaction torque T̂ at the motor <NUM>, but also includes an estimate of disturbance σ̂, such as due to errors in estimates of one or more parameters: <MAT> with: <MAT>.

Thus, cancellation of the estimated torque T̂ from the high gain observer <NUM> provides additional robustness to disturbances and uncertainty in the system.

Starting with block <NUM> of <FIG>, measured motor position θmeas is received at module <NUM>. Module <NUM> converts the measurement of motor position from units of the measurement device <NUM> into continuous radians which increase/decrease monotonically beyond +/- <NUM> pi. The difference between output of module <NUM> and estimated motor position θ̂m are determined at adder <NUM>. The output of adder <NUM> is motor position error θerr and is provided to multipliers <NUM>, <NUM>, and <NUM>. At multiplier <NUM> the motor position error θerr is combined with (e.g., multiplied by) first observer gain component Kob1. The output of multiplier <NUM> is added to estimated motor speed ω̂m at adder <NUM>. The output of adder <NUM> is integrated by integrator <NUM>. The output of integrator <NUM> is output as updated estimated motor position θ̂m, which is provided to the load position controller <NUM>.

At multiplier <NUM>, θerr is combined with (e.g., multiplied by) third observer gain component Kob3. The output of adder <NUM> is integrated by integrator <NUM>. The output of integrator <NUM> is output as updated estimated load reaction torque T̂m, which is provided to the load position controller <NUM>.

At multiplier <NUM>, θerr is combined with (e.g., multiplied by) second observer gain component Kob2. At multiplier <NUM> estimated motor speed ω̂m is combined with variable a_22. The output of multipliers <NUM> and <NUM> are added at adder <NUM>.

At multiplier <NUM> estimated load reaction torque T̂m is combined with (multiplied by) variable a_23. At multiplier <NUM>, measured current iq,meas is combined with variable b_2. The output of multipliers <NUM> and <NUM> are added at adder <NUM>. The output of multipliers <NUM>, and <NUM> and adder <NUM> are added at adder <NUM>. The output of adder <NUM> is integrated by integrator <NUM>. The output of integrator <NUM> is output as updated estimated motor speed ω̂m, which is provided to the load position controller <NUM>.

<FIG> shows an exemplary and non-limiting flowchart <NUM> illustrating a method for an actuator system for moving a load, in accordance with certain illustrated embodiments. The method can be performed by a controller of a motor, such as actuator controller <NUM> of motor <NUM> shown in <FIG>. Before turning to description of <FIG>, it is noted that the flowchart in <FIG> shows an example in which operational steps are carried out in a particular order, as indicated by the lines connecting the blocks, but the various steps shown in this diagram can be performed in a different order, or in a different combination or sub-combination. It should be appreciated that in some embodiments some of the steps described below may be combined into a single step. In some embodiments, one or more additional steps may be included. In some embodiments, one or more of the steps can be omitted.

Operation <NUM> includes receiving a selected bandwidth, wherein bandwidth is related to the reciprocal of response time. The selected bandwidth can be fixed or can be variable during operation of the actuator system. Operation <NUM> includes receiving a command to move the load to a selected position. Operation <NUM> includes receiving a feedback of measured motor position. Operation <NUM> includes estimating reaction torque or force associated with moving the load in real time. In one or more embodiments, estimating the reaction torque or force can be an integration of a function of the third observer gain component and the difference between the measured motor position and previous estimated motor position.

Operation <NUM> includes estimating rotational motor speed and motor position. In one or more embodiments, estimating the motor position can be an integration of a function of the estimated rotational motor speed, the first observer gain component, and a difference between the measured motor position and the previous estimated motor position. In one or more embodiments, estimating the motor speed can be an integration of a function of the estimated rotational motor speed, the estimated reactive torque, the drive signal, the second observer gain component, and a difference between the measured motor position and the previous estimated motor position.

Operation <NUM> includes calculating gains for controlling position of the load as a function of the selected bandwidth. In one or more embodiments, the first gain component can be a function of the input bandwidth and the torque constant and the rotational inertia of the motor, the second gain component can be a function of the input bandwidth and damping factor, the viscous damping constant of the motor, the torque constant of the motor, and motor rotational inertia, and the third gain component can be a function of a torque constant of the motor.

Operation <NUM> includes determining a drive signal to apply to the motor as a function of the estimated reaction torque, the estimated rotational motor speed, the estimated motor position, the gain and the selected motor position. In one or more embodiments, determining the drive signal can include multiplying a difference between the selected motor position and the estimated motor position by a first gain component of the gain, multiplying the estimated rotational motor speed by a second gain component of the gain, and multiplying the estimated reactive torque by a third gain component of the gain.

Operation <NUM> includes transmitting the drive signal to the motor to move the load. In one or more embodiments, transmitting the drive signal can include transmitting the drive signal until an estimated position of the load based on the estimated motor position is within a threshold of the selected position.

Aspects of the present disclosure are described above with reference to block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. Features of the methods described include operations, such as equations, transformations, conversions, etc., that can be performed using software, hardware, and/or firmware. Regarding software implementations, it will be understood that individual blocks of the block diagram illustrations and combinations of blocks in the block diagram illustrations, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the block diagram block or blocks.

With reference to <FIG>, a block diagram of an example computing system <NUM> is shown, which provides an example configuration of the actuator controller <NUM> or one or more portions of the actuator controller <NUM>. Computing system <NUM> is only one example of a suitable system and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the disclosure described herein. Computing system <NUM> can be implemented using hardware, software, and/or firmware. Regardless, computing system <NUM> is capable of being implemented and/or performing functionality as set forth in the disclosure.

Computing system <NUM> is shown in the form of a general-purpose computing device. Computing system <NUM> includes a processing device <NUM>, memory <NUM>, an input/output (I/O) interface (I/F) <NUM> that can communicate with an internal component <NUM>, and optionally an external component <NUM>.

The processing device <NUM> can include, for example, a PLOD, microprocessor, DSP, a microcontroller, an FPGA, an ASIC, and/or other discrete or integrated logic circuitry having similar processing capabilities.

The processing device <NUM> and the memory <NUM> can be included in components provided in the FPGA, ASIC, microcontroller, or microprocessor, for example. Memory <NUM> can include, for example, volatile and non-volatile memory for storing data temporarily or long term, and for storing programmable instructions executable by the processing device <NUM>. I/O I/F <NUM> can include an interface and/or conductors to couple to the one or more internal components <NUM> and/or external components <NUM>.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flow diagram and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational operations to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the block diagram block or blocks.

Embodiments of the actuator controller <NUM> (or portions of control circuit <NUM>) may be implemented or executed by one or more computer systems, such as a microprocessor. Each computer system <NUM> can implement actuator controller <NUM>, or multiple instances thereof. In various embodiments, computer system <NUM> may include one or more of a microprocessor, an FPGA, application specific integrated circuit (ASIC), microcontroller. The computer system <NUM> can be provided as an embedded device. All or portions of the computer system <NUM> can be provided externally, such by way of a mobile computing device, a smart phone, a desktop computer, a laptop, or the like.

Computer system <NUM> is only one example of a suitable system and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the disclosure described herein. Regardless, computer system <NUM> is capable of being implemented and/or performing any of the functionality set forth hereinabove.

Computer system <NUM> may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types.

While the disclosure has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made without departing from the examples of the disclosure. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the disclosure without departing from the essential scope thereof. Therefore, it is intended that the disclosure not be limited to the particular embodiment(s) disclosed, but that the disclosure will include all embodiments falling within the scope of the appended claims.

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the illustrated embodiments, exemplary methods and materials are now described. All publications mentioned herein disclose and describe the methods and/or materials in connection with which the publications are cited.

It must be noted that as used herein and in the appended claims, the singular forms "a", "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to "a stimulus" includes a plurality of such stimuli and reference to "the signal" includes reference to one or more signals and equivalents thereof known to those skilled in the art, and so forth.

Claim 1:
A method of controlling an actuator for moving a load, the method comprising:
receiving (<NUM>) a selected bandwidth, wherein the bandwidth is defined as a frequency at which a gain of a closed loop input-output response is relative to a steady state value and is related to a reciprocal of response time;
receiving (<NUM>) a command to move the load to a selected position;
receiving (<NUM>) a feedback of a measured motor position;
estimating (<NUM>) a reaction torque or force associated with moving the load in real time;
estimating (<NUM>) a rotational motor speed and a motor position;
calculating (<NUM>) controller gain for controlling a position of the load based on the selected bandwidth;
determining (<NUM>) a drive signal to apply to the motor to move the load, wherein the drive signal is a function of the estimated reaction torque, the estimated rotational motor speed, the estimated motor position, the gain, and the selected position; and
transmitting (<NUM>) the drive signal to the motor to move the load;
wherein determining the drive signal includes multiplying a difference between the selected position and the estimated motor position by a first component of the gain, multiplying the estimated rotational motor speed by a second component of the gain, and multiplying the estimated reaction torque by a third component of the gain;
the method characterized by the first component of the gain is a function of the selected bandwidth, motor inertia, and a torque constant of the motor,
the second component of the gain is a function of a viscous damping constant of the motor, the torque constant of the motor, and the motor inertia, and/or
the third component of the gain is a function of the torque constant of the motor.