New Motor Control IC Integrates Outer Loop And Velocity Loop Functions
Model: MC71113, MC73113, MC78113
Performance Motion DevicesUpdated 01/20/2021
The Juno MC71113, MC73113, and MC78113 are newly released ICs that integrate a high-speed outer loop control function with a velocity control function for 3-phase Brushless DC and DC Brush motors. Ideal for controlling pressure, temperature, liquid level, magnetic bearings, chemical reaction rate, and other 'outer loop' quantities for medical, industrial, and military applications, these devices can operate via microprocessor control or by direct analog or digital signal command.
As shown in Figure 1, the output of the outer loop becomes the input to the motor velocity loop which in turn commands the torque loop. Any measurable outer loop quantity can be controlled as long as the commanded motor velocity proportionally affects the measured outer loop quantity.
Figure 1: Juno Outer Loop Control IC Flow Diagram
Application examples include ventilators where the speed of a Brushless DC (BLDC) motor turbine directly affects measured chamber pressure, and process temperature control where the flow rate of a pump introducing cooling fluid lowers a process chamber temperature. By integrating the outer loop function with the velocity control function in a single IC at control loop rates as high as 10 kHz, unprecedented levels of precision and control of the outer loop quantity are possible.
Juno outer loop control ICs are the latest additions to PMD's Juno family of Velocity & Torque Control ICs which provide functions for spindle control, centrifuge control, precision torque control, and a wide variety of other liquid handling and laboratory automation applications. Juno outer loop control ICs are available in a 64-pin TQFP package measuring 12x12 mm. These ICs are available immediately and are priced from $23 depending on motor type controlled and quantity.
Juno Outer Loop Control ICs are single-axis devices for control of outer loop quantities and three-phase brushless DC motors and DC Brush motors. Three IC options are offered as shown in the table below:
12 x 12 mm
12 x 12 mm
DC Brush or Brushless DC (user programmable)
12 x 12 mm
Figure 2: Juno Outer Loop Control ICs Connection Diagram
At power-up or reset Juno checks for the presence of stored configuration commands in its internal NVRAM. If NVRAM is programmed, the stored configuration commands are read into the active control registers, providing parameter information that will be used during operation.
If no initial configuration is stored in NVRAM, then default values are used and information will then be sent by a host device such as a microprocessor. Available host interfaces include asynchronous serial (point to point & multi-drop), SPI (Serial Peripheral Interface), and CANbus 2.0.
Depending on how the Juno control loop has been configured an external analog signal may serve as the outer loop command value or an SPI (Serial Peripheral Interface) port may be used for this command. Alternatively, an internal profile generator may be commanded by a host microprocessor to generate outer loop command values.
Juno provides control of the outer loop quantities such as pressure or temperature via a PID (Proportional, Integral, Derivative) filter. Outer loop control uses either Juno's Tachometer analog signal or the digital SPI port to feedback the measured pressure or temperature.
Juno’s velocity loop receives commands directly from the upstream outer loop. The measured velocity may come from encoder, Hall sensor, or tachometer signal feedback. A PI loop, dual biquad filter, and a deadband filter allow very precise velocity control to be achieved.
FOC (Field Oriented Control) phasing and current control is performed via direct input of analog signals representing the instantaneous current through the motor coils. These signals are typically derived from external dropping resistors or Hall sensors at the amplifier circuitry. This analog current information is then combined with information about the rotor angle from Hall sensors or encoder signals to generate PWM output signals for each motor phase.
To create a complete outer loop controller Juno is connected to switching amplifiers, typically MOSFET or IGBT-based. A programmable dead time function and other timing and current sense control parameters ensure that switch synchronization and current control is optimal over the entire operating range of the driven motor.
A number of safety features are incorporated into the Juno ICs including shunt control, I2t current limiting, brake signal input, DC bus overvoltage and undervoltage detect, overcurrent detect, and overtemperature detect.
Pressure & Temperature Control With Servo Motors
Figure 3: Pressure Control With BLDC Motor
Applications: Pressure control, flow control, temperature control, magnetic bearing control, galvanometer control, liquid level control.
In this configuration the Juno MC71113, MC73113, or MC78113 IC receives direct analog or direct digital SPI (Serial Peripheral Interface) commands representing the instantaneous desired pressure or temperature, or host microprocessor commands representing the desired pressure or temperature profile. A pressure or temperature sensor provides an analog or direct input SPI feedback signal. Although a Brushless DC motor is shown in the diagram, a DC Brush motor may be similarly used.
Other types of outer loop control can be achieved with Juno as long as the measured quantity has a roughly linear relationship with the motor spin rate or the driven actuator output. These outer loop quantities include pressure, temperature, flow rate, liquid level, magnetic bearing control, chemical reaction control, phase change control, and others.
In the diagram above a pressure control function as shown, but temperature control can be similarly achieved by substituting a temperature sensor, and having the motor pump introduce more or less cooling (or heating) fluid.
Outer Loop Controller
Figure 4: Outer Loop Calculation Flow
The figure above provides a detailed algorithmic view of Juno’s outer loop control module. This module provides a programmable outer loop function supporting a wide range of applications.
Although most often this module is configured to directly input commands from external circuitry, it is also possible for the outer loop command to come from the Juno IC's internal profile generator.
This loop module utilizes the desired outer loop command and a measured outer loop quantity to develop a loop error value which is passed through a PID (proportional, integral, derivative) filter and then output to the velocity loop module.
The outer loop controller also provides sophisticated filtering and customizing capabilities in the form of a user-programmable biquad filter on the AnalogCmd signal input, separate programmable upper and lower output limits deadband filter at the velocity command input, and a signed Kout loop output gain factor. These filters and gain factors can be used to improve control and configure the outer loop to work with a wide range of outer loop sensors.
Juno ICs come 100% ready for high performance outer loop control. All of the required specialized algorithms, tables, and calculations are contained inside the IC. The user needs to simply set the control parameters for their specific application & servo motor.
To control the outer loop up to ten parameters are set by the user: Kp, Ki, Kd, Ilimit, Dtime, Kvel, Kout, Outposlimit, Outneglimit, and Pouter. Three of these are gain factors for the PID (proportional, integral, derivative) controller, one is a limit for the integral contribution, one is the derivative sampling time, one is a scale factor that is applied only when the command source is set to profile generator, one is an output scale factor that is always applied, two are signed limits to the loop output value, and one is the cycle time period for the position/outer loop.
Determining correct Kp, Ki, KD, and Ilimit parameters for the outer loop controller gains can be done in a number of ways but the easiest is to utilize the tuning facilities provided by PMD’s Pro-Motion software package.
Velocity Control Loop
Figure 5: Velocity Loop Control Flow
Figure 5 provides a summary of the control flow of Juno’s velocity loop control module. This module provides a programmable velocity loop function supporting a wide range of applications.
This loop module utilizes the desired velocity command provided by the output of the outer loop module, and a measured velocity to develop a loop error value which is passed through a PI (proportional, integral) filter and output to a current loop module.
The velocity loop also provides sophisticated filtering capability in the form of biquad filters located in the velocity feedback path, as well as a deadband filter at the velocity command input. These filters can be used to smooth velocity and improve stability in the motion system being controlled.
To control the velocity loop three parameters are specified in connection with the PI loop: Kp, Ki, and Ilimit. Two of these are gain factors for the PI (proportional, integral) controller, one is a limit for the integral contribution. Additional settings are available for Kvel and Kout. These are a velocity loop scale factor and a loop output scale factor.
Determining correct Kp, Ki, and Ilimit parameters for the current loop controller gains can be done in a number of ways but the easiest is to utilize the tuning facility provided within PMD’s Pro-Motion software package.
Figure 6: Deadband Filter Function
Juno Outer Loop Control ICs provide a deadband filter associated with the velocity loop that may be useful for reducing hunting when the command velocity is around zero.
The figure above shows the form of the deadband filter for a commanded velocity that traverses linearly from a large negative command value, through a zero value, to a large positive value. This graph shows the relationship between the deadband output value as the commanded velocity value approaches and continues past zero. For a commanded value that traverses from a positive to a negative commanded value (effectively reversing the direction of the arrows shown) the form is similar in shape but shifted down and to the left by the difference between upper limit and lower limit value.
At each calculation cycle the deadband filter uses both the commanded velocity (the input to the filter) and the deadband filter output to determine a new deadband filter output value.
Two parameters are provided to control the deadband filter, DBlow and BHhigh. The first is the deadband lower limit and the second is the deadband upper limit.
Figure 7: Biquad Calculation Flow
As shown in Figure 7 a biquad filter is included at the AnalogCmd signal command source input and in the feedback pathway of the Juno velocity loop. For applications that may require it, biquads provide a sophisticated tool for smoothing the functioning of the system, reducing vibration, and reducing resonances in the system being controlled.
Biquads can be programmed to create different filtering functions including lead/lag, band pass, low pass, notch, and other filter types. A typical system development process involves making an open loop frequency scan of the system to be controlled to learn about dead spots and resonances in its frequency response. From this information the biquad filter can be programmed such that these system non-linearities are reduced or eliminated.
Juno outer loop control ICs have two biquad filters labelled biquad1 and biquad2. Biquad1 is located in the motor feedback path, while biquad2 is located at the AnalogCmd input signal. There are five settable biquad filter parameters labelled A1, A2, B0, B1, and B2. In addition, each filter may be separately enabled or disabled if not used.
Figure 8: Internally Generated Velocity Profile
While many applications will command an instantaneous outer loop value using analog or SPI (Serial Peripheral Interface) signals, Juno outer loop control ICs also include an internal profile generator that allows arbitrary outer loop command contours to be generated. The profile generator is used in conjunction with an external microprocessor or other host which utilize Juno's host command ports, either serial point-to-point, serial multi-drop, CANbus, or SPI, to specify the command profiles.
To control the profile generator the user specifies a desired rate of outer loop command increase (acceleration), a rate of decrease (deceleration), and a maximum allowed command value. Using these target parameters Juno’s profile generator performs calculations to determine the instantaneous commanded outer loop value at any given moment. These instantaneous profile values are called the commanded values.
The outer loop command profile is executed by continuously accelerating at the user-specified acceleration rate until the user-specified maximum outer loop command is reached. The sign of the maximum outer loop parameter determines the initial sign of the outer loop command. The profile decelerates at the user-specified deceleration when a new maximum command value is specified with a smaller value (in magnitude) than the present maximum command, or when a new maximum command has a sign that is opposite to the outer loop command sign.
To control Juno’s internal profile generator three parameters are specified: the maximum outer loop command, the outer loop command rate of increase (acceleration), and the deceleration. All of these parameters can be updated 'on the fly' to allow complex profile shapes to be created.
Field Oriented Control & Current Loop
Figure 9: Current Loop & Commutation Control Flow
The Figure above provides a summary of the control flow of Juno’s current loop & commutation module. Current control is a technique used for DC Brush and Brushless DC motors for controlling the current (and therefore the torque) through each winding of the motor. By controlling the current, response times improve, motor efficiency is higher, and motion smoothness increases. Commutation is used with Brushless DC motors only and utilizes information about the motor’s rotor angle to drive the multiphase motor output.
The Juno digital current loop utilizes the desired current for each motor winding along with the actual measured current which is input by direct analog signal input into the Juno IC. For Brushless DC motors these signals are then algorithmically converted from a non-rotating coordinate frame to a rotating frame. The converted result is referred to as the D phase current and the Q phase current. The commanded and actual D and Q phase currents are then subtracted, and an error generated, which in turn is passed through a PI (proportional, integral) filter.
Finally, the output of the D and Q phase PI filters are converted back into the 3-phase non-rotating reference frame and output as motor commands for each phase of the motor. This commutation and current control technique is known as Field Oriented Control (FOC), and requires information about the motor rotor’s phase angle to generate correctly phase output signals. The large majority of applications will use FOC for Brushless DC motor control. FOC usually provides the highest top speeds and more energy efficient operation of the motor.
A second option for Brushless DC motors is available for the Juno ICs however known as third leg floating. Third leg floating can sometimes provide a higher top speed than FOC. It uses a different method than FOC in that only two of three legs are driven at any instant with the third, non-driven leg, left floating. Third leg floating control mode may be considered with Hall-commutated Brushless DC motors.
The choice of field-oriented control or third leg floating is user programmable. For DC Brush motors the current loop method is fixed and does not need to be set by the user. In addition, because they are single phase devices, the current loop does not require information about the motor’s rotor angle.
To control the current loop in FOC mode three parameters are specified for both the D loop and the Q loop: Kp, Ki, and Ilimit. Two of these are gain factors for the PI (proportional, integral) controller, one is a limit for the integral contribution.
Determining correct Kp, Ki, and Ilimit parameters for the current loop controller gains can be done in a number of ways but the easiest is to utilize the tuning facilities provided by PMD’s Pro-Motion® software package. If a DC Brush motor is used or if the current loop is set to third leg floating then only the Q loop Kp, Ki, and Ilimit parameters are set.
PWM (Pulse Width Modulation) Signal Generation
The Juno outer loop control ICs can control high-efficiency MOSFET or IGBT power stages with individual high/low switch input control. DC Brush motors are driven in an H-Bridge configuration consisting of 4 switches, while Brushless DC motors are driven in a triple half-bridge configuration consisting of 6 switches.
Figure 10: PWM High/Low Signal Generation
In PWM High/Low mode two output pins are used per motor or per motor phase, allowing separate high-side/lowside control of each bridge switch. In this scheme, as the Figure above shows, the high side output and the low side output are never active at the same time, and there is generally a period of time when neither output is active. This period of time is called the dead time and provides a shoot through protection function for MOSFET or IGBT switches.
The dead time is specified in nSecs. The correct value can be determined from the MOSFET or IGBT IC manufacturer’s data sheet.
In addition to dead time, some high side switch drive circuitry requires a minimum amount of off time to allow the charge pump circuitry to refresh. This parameter is known as the refresh time and has units of nSecs. The related parameter of refresh time period, which is the time interval between off time refreshes has units of current loop cycles.
It is also possible to control the maximum allowed PWM duty cycle. This may be useful to limit the effective voltage presented to the motor windings, or to provide some other needed off-time for the switching amplifier circuitry.
Figure 11: Brushless DC Motor Bridge Configuration
To control PWM generation five parameters are specified; the PWM switching frequency which may be set to 20, 40, 80, or 120 kHz, the PWM dead time which is specified in nSecs, the PWM refresh time and the PWM refresh period, which together control charge pump circuitry refresh timing, and the PWM duty cycle limit.
(c) 2020 Performance Motion Devices, Inc.
REQUEST A QUOTE