Patent Description:
In today's aviation industry, most pilots receive a great deal of flight training in flight simulators. For this training to be effective, flight simulators must be able to accurately replicate the static and dynamic "feel" of cockpit flight controls under normal and abnormal conditions.

The portion in a flight simulator responsible for replicating this feel is commonly referred to as a "control loading system. " This system generally consists of a force-generating device, known as a control loader, a servo drive, and a model of the aircraft flight control system which simulates the aircraft "feel" forces.

Control loaders are typically electro-mechanical devices containing an electric motor and, if the motor is brushless, a commutation transducer. Servo drives are a special type of electronic amplifier formed from a combination of electrical hardware, firmware and/or software. Aircraft models define the specific behavior of each flight control system and, most often, are generated in a separate control loading computer.

The control loader and servo drive work in concert to establish performance and fidelity capabilities of a given control loading system. Consequently, the design and integration of these items sharply distinguish one system from another and determine which systems are appropriate for specified FAA simulation certification levels - the highest being Federal Regulation <NUM> CFR Part <NUM>, Level D, or equivalent.

Prior art document <CIT> describes a method and system for controlling a control instrument of a simulation system reproducing a desired system, in response to a force applied onto said control instrument. <CIT> relates to an apparatus and method for providing a loading force for application to a user manipulable vehicle simulator control member, and for use in an aircraft simulator or flight simulator.

Current high-fidelity control loaders tend to be large, heavy, and expensive, making them difficult to use in many applications. The size and weight of prior control loaders have been primarily driven by motor requirements. For example, in order to generate the required force levels, dynamic fidelity, and stable, smooth (level D) performance, prior control loaders have employed large and expensive slotless motors. Such slotless motors tend to provide very smooth responses and low cogging, i.e., non-linear torque ripple, which can impair loader fidelity and feel. To accommodate the large motors, prior control loaders have also employed large and expensive motor mounting hardware, large and heavy motor/gear reduction methods, and cumbersome externally mounted force transducers.

In contrast with prior designs, an improved technique for control loading employs a slotted motor having a higher power density than slotless motors of similar power. The use of smaller slotted motors enables more efficient mounting hardware, smaller gear reduction mechanisms, and more efficiently mounted force transducers. Although slotted motors generally produce more cogging than slotless motors, the improved technique overcomes cogging and smooths the torque response by combining high-gain servo control with high-resolution motor sensing. Slotted motors are thus enabled to perform at a level previously achieved only with slotless motors, but with dramatic reductions in size, weight, and cost.

Given the smaller footprint and lower cost, the improved loader may also be practical in lower-cost simulators and as secondary controls in higher-cost simulators, applications where high fidelity has heretofore been difficult to achieve due to size and cost.

Certain embodiments disclosed herein are directed to a control loading system that includes a slotted motor having a motor shaft and an encoder configured to measure an angle of the motor shaft, an output arm coupled to the motor shaft and including a force transducer configured to measure an applied force applied by an operator, and a control stage. The control stage is configured to: receive inputs for (i) the applied force, (ii) the angle of the motor shaft, and (iii) a modeled force generated by a flight-control model; produce a command velocity based on a difference between the applied force and the model force; and generate, based on the inputs and on the command velocity, an output drive coupled to the slotted motor for driving the slotted motor.

In some examples disclosed herein, the control stage is further configured to apply a motor pole map to generate a cogging-correction based at least in part on (i) the angle of the motor shaft and (ii) the command velocity. According to some examples, the motor pole map includes an adaptive lookup table.

In some examples disclosed herein, the control stage is further configured to differentiate the angle of the slotted motor to generate a measure of angular velocity of the slotted motor, and generation of the output drive is further based at least in part on the measure of angular velocity of the slotted motor.

In some examples disclosed herein, the control stage includes multiple weighted differentiator elements configured to operate over respective time intervals, and the measure of angular velocity of the slotted motor is based at least in part on a sum of outputs of the weighted differentiator elements. According to some examples, weights of the weighted differentiator elements are established to optimize suppression of quantization noise introduced by the encoder.

According to some examples disclosed herein, the control stage is further configured to: generate a measure of command position as an integration of the command velocity; generate an error between the measure of command position and the angle of the motor shaft; and differentiate the error to produce a differentiated error, where the output drive is further based on the differentiated error.

In some examples disclosed herein, the control stage configured to differentiate the error includes multiple weighted differentiator elements configured to operate over respective time intervals, wherein the differentiated error is based at least in part of a sum of outputs of the weighted differentiator elements. According to some examples, weights of the weighted differentiator elements are configured to suppress quantization noise introduced by the encoder.

Other embodiments disclosed herein are directed to a method of control loading. Still other embodiments are directed to a computer program product. The computer program product stores instructions which, when executed on control circuitry of a computerized apparatus, cause the computerized apparatus to perform a method of control loading.

The foregoing summary is presented for illustrative purposes to assist the reader in readily grasping example features presented herein; however, this summary is not intended to set forth required elements or to limit embodiments hereof in any way. One should appreciate that the above-described features can be combined in any manner that makes technological sense, and that all such combinations are intended to be disclosed herein, regardless of whether such combinations are identified explicitly or not.

The foregoing and other features and advantages will be apparent from the following description of particular embodiments, as illustrated in the accompanying drawings, in which like reference characters refer to the same or similar parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of various embodiments.

Embodiments of the improved technique will now be described. One should appreciate that such embodiments are provided by way of example to illustrate certain features and principles but are not intended to be limiting.

An improved technique for control loading employs a slotted motor having a higher power density than slotless motors of similar power. The use of smaller slotted motors enables more efficient mounting hardware, smaller gear reduction mechanisms, and more efficiently mounted force transducers.

A major challenge associated with slotted motors is meeting smoothness requirements, as slotted motors induce cogging torque which affects "feel" when rotated slowly, thus making the control loader haptics unacceptable. Additionally, present-day servo drives are unable to fully eliminate motor cogging.

In certain examples disclosed, these challenges are overcome by an advanced control stage that works in conjunction with standard off-the-self servo drives and high resolution commutation transducers. These improvements fully eliminate motor cogging and make the use of slotted motor technology feasible.

In certain examples, size and weight of the control loader are significantly reduced. Rather than using a standard motor that mounts onto the loader, which is the common approach, the motor and loader are instead merged together using frameless motor technology (See <FIG>). For example, the motor windings and rotor may be purchased or otherwise obtained without a motor shaft, housing, bearings, commutation device, wiring, etc. These items, plus the windings and rotor, are then designed into, and form an integral part of, the loader itself.

Reducing size further, the required motor commutation transducer is precision mounted to the motor shaft centerline inside the motor rotor, rather than mounted outside the motor. The motor rotor is then integrated into a two stage cable gear reduction system using a common shaft for both the motor and the gear reduction system input. The cable reduction system eliminates lost motion between the input and output stages and provides smooth, low friction, low inertia loader operation.

The entire gear reduction system is miniaturized, and the required force transducer is uniquely integrated into the output arm of the gear reduction system, thus significantly reducing the loader's footprint and eliminating the need for a cumbersome externally mounted force transducer. The net result is the desired small, powerful, lightweight <NUM> CFR Part <NUM>, Level D capable control loading/loader system.

In some examples, position transducers are used on both the input and output stages of the gear reduction system. This feature provides real-time monitoring of the steel cables in the gear reduction system and notifies the user when maintenance is required.

A significant enabler for making the loader small and powerful is the use of slotted motor technology, a technology made possible through development of the advanced, high-gain control stage as disclosed herein. The control stage is custom engineered to remove motor cogging via precise signal mixing and custom high-order filtering.

<FIG> show front and back views of an example control loading system <NUM>, respectively. As best seen in <FIG>, the control loading system <NUM> has a base <NUM>, a body <NUM>, and a cover <NUM>. A slotted motor <NUM> is oriented front-to-back and includes a stator 110a and a rotor 110b. In an example, the motor <NUM> is provided as a brushless AC synchronous motor. The stator 110a is stationary relative to the body <NUM> and includes coils (not shown) which, when excited by an alternating (AC) source, are capable of inducing a rotating magnetic field. In contrast, the rotor 110b is free to rotate within the stator 110a and includes an array magnets <NUM>. In an example, the rotor includes <NUM> evenly-spaced magnets <NUM>, thus making the slotted motor <NUM> a <NUM>-pole motor.

<FIG> shows a rear view of the same control loading system <NUM>, with the cover <NUM> removed. Here, a shaft <NUM> of the slotted motor <NUM> can be seen. The shaft <NUM> may be directly coupled to or integral with the rotor 110b. In addition, a gear-reduction input stage <NUM> may be coupled to or integral with the shaft <NUM>. A cable <NUM> couples the input stage <NUM> to an output arm <NUM> via a gear reduction system, which includes first and second reducers 240a and 240b, respectively. The output arm <NUM> may include a coupling 250a to a control element, such as a lever, wheel, stick, or the like, which may be operated by a human user, e.g., a person using a flight simulator. In an example, an overall gear reduction of approximately <NUM>:<NUM> may be achieved, such that only two full rotations of the rotor 110b are needed to move the output arm <NUM> through its entire range of motion.

The output arm <NUM> is configured to respond to a driving force from the slotted motor <NUM>, e.g., via the cable <NUM> and reducers 240a and 240b, enabling the output arm <NUM> to move forward and back. The output arm <NUM> is further configured to respond to an applied force from the user, e.g., based on the user pushing or pulling the control element coupled to the output arm <NUM>. To this end, the control loading system <NUM> may further include a force transducer <NUM>, integrated into the output arm <NUM>, such as a load cell, for measuring forces applied by the user. In some examples, an output arm position transducer <NUM> is coupled to the output arm <NUM>, e.g., for measuring angular deflection of the output arm <NUM>. The output arm transducer <NUM> may be provided as a high-resolution optical encoder, e.g., one having at least <NUM> bits of resolution.

In some examples, the force transducer <NUM> is coupled to a multifunction assembly <NUM>, e.g., via a shielded cable. The multifunction assembly <NUM> may include a low-noise amplifier configured to amplify the signal produced by the force transducer <NUM>.

Turning now to <FIG>, two perspective views of rotor 110b and associated hardware are shown. Here, magnets <NUM> are arranged around a circumference of the rotor 110b. Motor shaft <NUM> and gear reduction input stage <NUM> are fixedly attached to the rotor 110b. In some examples, the motor shaft <NUM> and input stage <NUM> are formed as a single machined part. As shown in <FIG>, a commutation transducer <NUM> is precision mounted to a center line of the motor shaft <NUM>. In an example, the commutation transducer <NUM> includes a high-resolution optical encoder having at least <NUM> bits of resolution. As will be described further, the use of the high-resolution encoder enables the control loading system <NUM> to operate at high open-loop gain, improving precision and thus the highly-desired "feel" that users demand. In an example, outputs of transducers <NUM> and <NUM> are monitored in real-time to ensure proper operation of the gear reduction system and to signal the operator when maintenance is required.

<FIG> shows an overall control loop <NUM> in which the control loading system <NUM> may operate. Here, the output arm force transducer <NUM> receives an applied force <NUM> from a user, such as a pilot. As shown, output arm force transducer <NUM>, output arm position transducer <NUM>, and motor position transducer <NUM> provide their respective outputs to a control loading servo drive (CLSD) <NUM>, which passes these signals, e.g., via EtherCAT, to servo drive controller <NUM>, also referred to herein as a "control stage. " Servo drive controller <NUM> also receives aircraft flight control model forces <NUM> as input. These forces <NUM> are based on a model of the aircraft being simulated and may take account, for example, of wind effects, friction, springs, dampers, and any other relevant aspects of the aircraft being modeled.

The servo drive controller <NUM> synthesizes the various inputs and generates therefrom a control signal <NUM> (e.g., "Current Command"), which may be provided back to the CLSD <NUM>. CLSD <NUM> may then convert current command <NUM> to a power-level, pulse-width modulated AC signal for driving the motor <NUM>. The motor <NUM> may respond by rotating forward or back, based on the applied signal. Changes in motor rotation are then reflected in the motor position transducer <NUM> and in the output arm transducer <NUM>. In some examples, they may also result in changes in applied force <NUM>, as any change in force produced by the output arm <NUM> may be met with an opposing force from the user. Closed-loop operation thus proceeds accordingly. Such feedback imparts a smooth, resistive feel to the pilot's force input.

Although <FIG> shows a separate control loading computer (CLC), the functions of the CLC may alternatively be provided in the CLSD <NUM>. In either case, the CLC or CLSD may include a set of processors and memory (not shown). The set of processors and the memory together form control circuitry, which is constructed and arranged to carry out various methods and functions as described herein. Also, the memory includes a variety of software constructs realized in the form of executable instructions. When the executable instructions are run by the set of processors, the set of processors is made to carry out the operations of the software constructs.

<FIG> shows example operational details of the servo drive controller <NUM>. As shown, the servo drive controller <NUM> implements a digital control stage, which performs digital signal processing on specified inputs to generate specified outputs. The control stage may operate in successive frames, where values are computed once per frame, based at least in part on the state of control variables from previous frames. Frames may be generated at a regular frequency, with <NUM> frames per second being particularly suitable. Although a digital implementation of the control stage is shown, one should appreciate that an analog implementation may alternatively be used, as may a mixed implementation involving both digital and analog components.

As shown, the servo drive controller <NUM> (control stage) receives input in the form of applied force <NUM> (i.e., from the user), model forces <NUM> (based on the aircraft model), and an encoder position <NUM> received from commutation transducer <NUM>. The servo drive controller <NUM> processes these inputs to generate the current command signal <NUM>, also referred to herein as the "output drive. " Multiple paths contribute to producing the current command signal <NUM>, with contributions from the various paths added together by summer <NUM>.

Readers familiar with feedback control theory will readily understand the depicted topology. Several aspects of the design may be particularly noted, however. For example, summer <NUM> subtracts both applied force <NUM> (or a low-pass filtered version thereof) and a local feedback force <NUM> from model forces <NUM> to produce a signal at the output of summer <NUM>, which when multiplied by constant K<NUM> produces a signal Ẍcmd, which is proportional to acceleration. Integrator <NUM> integrates this acceleration term to produce a command velocity, Ẋcmd, i.e., a desired velocity of the output arm <NUM> during the next frame. The command velocity Ẋcmd contributes to current command <NUM> (via -K<NUM>). It also feeds back via K<NUM> to provide local feedback signal <NUM>, which goes back to the summer <NUM>. The command velocity Ẋcmd further provides a first input to motor pole map <NUM>, which receives a second input from motor encoder position <NUM>.

Motor pole map <NUM> is configured to produce an anti-cogging signal <NUM>, i.e., a signal that compensates for effects of cogging in the slotted motor <NUM> by precisely balancing out those effects. As shown, anti-cogging signal <NUM> is based at least in part on both inputs, i.e., on both the command velocity Ẋcmd and the motor encoder position <NUM>. For example, we have recognized that certain phase lags and other effects arise from velocity and that encoder position <NUM> alone is insufficient to oppose cogging precisely. In an example, motor pole map <NUM> is implemented as a two-dimensional lookup table. In a particular example, motor pole map <NUM> is realized with an adaptive lookup table. Values entered into the motor pole map <NUM> may be obtained by actual measurements and characterization of the motor <NUM>. In some examples, different values are entered for different motors <NUM>. Thus, the values in the motor pole map <NUM> may be specific to the particular motor used.

Also of note, servo drive controller <NUM> includes differentiators <NUM> and <NUM>. Differentiator <NUM> receives angular position of the motor, Xmotor, and generates an output Ẋmotor, which represents the angular velocity of the motor <NUM>. Owing to the quantized nature of encoder position <NUM> (e.g., the quantized output of an optical encoder), angular position Xmotor changes in steps, with such changes reflected as spikes in Xmotor (the derivative of a step is an impulse). As will be described in connection with <FIG>, differentiator <NUM> may be constructed in a specialized manner that reduces the effects of such spikes. Differentiator <NUM> thus avoids noise that would otherwise be found in Ẋmotor. Such avoidance of noise enables the overall control stage to operate at much higher gain than would otherwise be feasible, driving down the effects of motor cogging to negligible levels, ideally below the threshold of detectability by a human user.

Differentiator <NUM> receives as input and error signal, Xerr, which represents a difference between a command position, Ẋcmd (e.g., an integral of command velocity Ẋcmd) and the angular position of the motor, Xmotor. In response, differentiator <NUM> produces as output an error velocity, Ẋerr. Differentiators <NUM> and <NUM> may have similar construction. Thus, differentiator <NUM> also avoids excessive noise in a similar manner.

<FIG> shows an example construction of a differentiator <NUM>, which is intended to be representative of differentiators <NUM> and <NUM> and is optimized to reduce noise induced by the encoder in the encoder position <NUM>. As shown, differentiator <NUM> includes multiple differentiator elements <NUM> that all connect to input <NUM> (e.g., Xmotor or Xerr) and operate in parallel over respective time intervals. For example, differentiator element <NUM>-<NUM> operates over one frame (one update interval), differentiator element <NUM>-<NUM> operates over two frames, differentiator element <NUM>-<NUM> operates over three frames, and so on, for any desired number of elements (a particular example includes six such elements). Outputs of the differentiator elements are weighted by respective weights <NUM> (e.g., W1, W2, W3, and so on), and weighted outputs are summed together by summer <NUM>. A resulting output <NUM> thus represents a weighted sum of the contributions of the differentiator elements <NUM>.

In an example, weights <NUM> are established in a manner that reduces noise while optimizing performance. For example, elements <NUM> that produce high-noise outputs may be weighted less than elements <NUM> that produce lower-noise outputs. The resulting output signal <NUM> thus has much lower noise than it would if a single differentiator had been used.

<FIG> shows an example method <NUM> that may be carried out in connection with the control loading system of <FIG>. The method <NUM> is typically performed, for example, by software-implemented features described in connection with <FIG>, which reside in memory of the depicted CLC (or CLSD) and are run by the set of processors therein.

At <NUM>, inputs are received for (i) applied force <NUM>, (ii) the angle <NUM> of the motor shaft <NUM>, and (iii) a modeled force <NUM> generated by a flight-control model.

At <NUM>, a command velocity Ẋcmd is produced based on a difference, e.g., via summer <NUM>, between the model force <NUM> and the applied force <NUM>.

At <NUM>, an output drive <NUM> is generated based on the inputs <NUM>, <NUM>, and <NUM>, and on the command velocity Ẋcmd. The output drive <NUM> is coupled to the slotted motor <NUM> for driving the slotted motor <NUM>.

An improved technique has been described for control loading that employs a slotted motor <NUM> having a higher power density than slotless motors of similar power. The use of smaller slotted motors enables more efficient mounting hardware, smaller gear reduction mechanisms, and more efficiently mounted force transducers. The improved technique overcomes cogging and smooths the torque response by combining high-gain servo control with high-resolution motor sensing. Slotted motors are thus enabled to perform at a level previously achieved only with slotless motors, but with dramatic reductions in size, weight, and cost.

The improved technique addresses the deficiencies of today's high fidelity control loaders, which are large, heavy, and expensive, causing control loading systems to be costly and difficult to install in simulators. The improved design provides small size, light weight, high torque, and high fidelity. It is <NUM> CFR Part <NUM>, Level D capable and produces exceptionally smooth "feel" using a slotted frameless motor and off-the-shelf servo drive.

The new loader delivers dramatic advantages. Based on observations, advantages include <NUM>% more torque, <NUM>% more velocity, <NUM>% less weight, <NUM>% less footprint, <NUM>% less factory cost, and lower logistic costs compared to previous devices.

Having described certain embodiments, numerous alternative embodiments or variations can be made. For example, although a control loading technique has been shown and described in connection with flight simulators, this is merely an example. Alternatively, the disclosed techniques may be used in connection with space, air, sea and land vehicle simulators; "Iron Birds"; simulation test stands; and/or any other applications where control force or control force feedback "feel" is required.

Further, although features have been shown and described with reference to particular embodiments hereof, such features may be included and hereby are included in any of the disclosed embodiments and their variants. Thus, it is understood that features disclosed in connection with any embodiment are included in any other embodiment.

Further still, the improvement or portions thereof may be embodied as a computer program product including one or more non-transient, computer-readable storage media, such as a magnetic disk, magnetic tape, compact disk, DVD, optical disk, flash drive, solid state drive, SD (Secure Digital) chip or device, Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), and/or the like (shown by way of example as medium <NUM> in <FIG>). Any number of computer-readable media may be used. The media may be encoded with instructions which, when executed on one or more computers or other processors, perform the process or processes described herein. Such media may be considered articles of manufacture or machines, and may be transportable from one machine to another.

As used throughout this document, the words "comprising," "including," "containing," and "having" are intended to set forth certain items, steps, elements, or aspects of something in an open-ended fashion. Also, as used herein and unless a specific statement is made to the contrary, the word "set" means one or more of something. This is the case regardless of whether the phrase "set of" is followed by a singular or plural object and regardless of whether it is conjugated with a singular or plural verb. Also, a "set of" elements can describe fewer than all elements present. Thus, there may be additional elements of the same kind that are not part of the set. Further, ordinal expressions, such as "first," "second," "third," and so on, may be used as adjectives herein for identification purposes. Unless specifically indicated, these ordinal expressions are not intended to imply any ordering or sequence. Thus, for example, a "second" event may take place before or after a "first event," or even if no first event ever occurs. In addition, an identification herein of a particular element, feature, or act as being a "first" such element, feature, or act should not be construed as requiring that there must also be a "second" or other such element, feature or act. Rather, the "first" item may be the only one. Also, and unless specifically stated to the contrary, "based on" is intended to be nonexclusive. Thus, "based on" should not be interpreted as meaning "based exclusively on" but rather "based at least in part on" unless specifically indicated otherwise. Although certain embodiments are disclosed herein, it is understood that these are provided by way of example only and should not be construed as limiting.

Claim 1:
A control loading system (<NUM>) for motion simulation, comprising:
a slotted motor (<NUM>) having a motor shaft (<NUM>) and an encoder (<NUM>) configured to measure an angle (<NUM>) of the motor shaft (<NUM>), the slotted motor (<NUM>) exhibiting cogging;
an output arm (<NUM>) coupled to the motor shaft (<NUM>) and including a force transducer (<NUM>) configured to measure an applied force (<NUM>) applied by an operator; and
a control stage (<NUM>) configured to:
receive (<NUM>) inputs for (i) the applied force (<NUM>), (ii) the angle (<NUM>) of the motor shaft (<NUM>), and (iii) a modeled force (<NUM>) generated by a flight-control model;
produce (<NUM>) a command reflecting a desired velocity of the output arm (<NUM>) based on a difference between the model force (<NUM>) and the applied force (<NUM>); and
generate (<NUM>), based on the inputs and on the command, a current command input (<NUM>) coupled to the slotted motor (<NUM>) for driving the slotted motor (<NUM>);
apply a motor pole map (<NUM>) to generate a cogging-correction (<NUM>) based at least in part on (i) the angle of the motor shaft (<NUM>) and (ii) the command reflecting the desired velocity; and
provide the cogging correction (<NUM>) as a component of the current command input (<NUM>) for driving the slotted motor (<NUM>), thereby compensating for cogging in the slotted motor.