Distributed Cooperative Control for Stepper Motor Synchronization

This paper describes the design and simulation of a distributed cooperative control algorithm based on multi-agents to synchronize a group of stepper motors. Modeling of the two-phase hybrid stepper motor in closed loop is derived in rotary reference frame, based on field-oriented control techniques to provide torque control. The simulation obtained by MATLAB-Simulink shows that the distributed cooperative control effectiveness depends on the network topology defined by the graph.


Introduction
Distributed and decentralized synchronization of large groups of dynamic systems is an area of intensive research [1].In this article, a cooperative control algorithm will be applied to synchronize five stepper motors in a topology network defined by its graph.
A cooperative control law has been implemented based on a multi-agent dynamical system where agents are interconnected by a "fixed" communication network, and each agent or node is mathematically modeled by a dynamical linear time-invariant system, with communication delays being neglected.
Multi-agent systems consist of autonomous agents which are able to interact with each other and/or with their environment.During the last 20 years, the cooperative control of multi-agent system has been attracting great attention in biology to understand animal group behavior, in situations such as the flocking of birds, the schooling of fishes, and the swarming of bacteria.Results have been translated into engineering disciplines, like formation control of aircraft and robots.
The stepper motor model implemented in the simulation is firstly discussed in Section 2, and a detailed review on field-oriented control to regulate flux and torque separately is given in Section 3. The closed-loop position control system based on rotary reference frame is justified in Section 4. A review on algebraic graph theory is presented in Section 5, together with the cooperative control law designed to run the simulations.The cooperative control law will be evaluated under different network topologies, with simulation results shown in Section 6.A closing chapter in Section 7 will address final conclusions of the simulation runs.
The first stepper motor model available was manufactured with a six-salient-pole stator, a four magnetless salient-pole rotor, it had three phases, and rotated in thirty-degree steps.Since then, stepper motors have evolved significantly over the years, and modern hybrid two-phase stepper motors incorporate toothed stator and rotor, as well as a permanent magnet in the rotor.The two-phase windings in the stator are physically oriented on axes that are 90º apart from each other.The current flowing in each stator winding produces a magnetic field vector, and by controlling the currents in the two stator windings, a magnetic field of arbitrary direction and magnitude can be produced by the stator.
Hybrid steppper motors have smaller size, higher stepping rate and higher torque than variable reluctance stepper motors.The dynamic model for a two-phase hybrid stepper motor modeled by [2], consists of ( 1), ( 2), (3), and ( 4). (1) where and are the phase voltages , and are the currents , is the rotor speed , is the rotor angle , and is the load torque .The parameters of the motor are phase resistance , phase inductance , torque constant , number of rotor teeth per phase , inertia of motor , and coefficient of viscous friction .

Field Oriented Control
For the last two decades, servomotors have evolved from largely brush types to brushless, providing higher reliability and lower maintenance.Most high performance servo systems employ an inner control loop to regulate torque, which is enclosed by outer control loops to control rotor angular velocity and rotor angle position.While the design of the outer loop is considerably independent of the motor type, the design of the torque loop is inherently specific to the motor being controlled.Torque control in a brush motor is rather simple, since the motor commutates itself.A Proportional-Integral (PI) controller which adjusts the voltage applied to the stator windings is used, in the effort to minimize the error between the requested and measured motor current.However, brushless motors, like stepper motors, are not self-commutating, resulting in the necessity to control currents/voltages applied to the stator windings, to produce a useful torque.
The two stator windings in the stepper motor are physically oriented on axes that are 90º apart from each other, while brushless synchronous DC (BLDC) motors includes three stator windings physically separated 120º instead.In the stepper motor, the current flowing in one of the stator winding produces a magnetic field vector, which sums with the field from the second winding.By controlling currents in the two windings, a magnetic field of arbitrary direction and magnitude can be produced by the stator.Consequently, torque is produced by the attraction or repulsion between the net stator field and the magnetic field in the rotor.For any rotor position, when the stator field is orthogonal to the field produced by the rotor, the torque will be maximum, and when the stator field is in line with the rotor field, they both superpose to each other, and no torque will be produced.

IC4M 2018
A generic stator field can be decomposed into two components: one parallel to the rotor field (direct component), and the other orthogonal to the rotor field (quadrature component), where only the quadrature-component produces torque.
By means of modeling the field produced by the current stator windings, a conceptual current space vector is used.The current space vector for a given winding has the direction of the field it produces, and a magnitude proportional to the current going through it.This makes it possible to represent the total stator field as a current space vector which is the vector sum of the current phasor components, one for each of the stator windings.The stator current space vector is a fictitious current that would flow in a single winding rotating so as to produce the same stator field direction and magnitude as the combination of the real currents through the real stator windings.The current space vector for two stator windings in a stepper motor and three stator windings in a brushless synchronous DC motor are defined in ( 5) and ( 6), respectively.
(5) (6) In order to efficiently produce constant smooth torque, the stator current space vector should, ideally, be constant in magnitude and should turn with the rotor so as to always be in quadrature with it, regardless of the rotor position or speed.While the stator current space vector may be constant in magnitude and direction if viewed from the rotating reference frame of the rotor, from a fixed frame viewpoint the current space vector describes a circle as the rotor turns.Since the current space vector is produced by the vector sum of components from each of the motor windings, and due to the fact that the two windings in the stepper motor are physically orientated on axes that are 90º apart from each other, the motor currents should ideally be two sinusoidal waveforms, with a 90º phase shift.
In the effort to generate a smooth sinusoidal modulation of the motor currents as the stepper motor turns, an accurate measurement of rotor position is required (e.g. using high resolution encoders).These two sinusoidal current command signals are provided as inputs to a pair of PI controllers that regulate the current in the two stator windings.Tracking a sinusoidal waveform by a PI controller has some limitations at high rotor speeds.High rotor speed results in large errors which perturb the direction of the current space vector relative to the rotor, causing it to shift away from the quadrature direction, reaching a situation where no torque is delivered.
The limited bandwidth of PI controllers is tackled by using field oriented control [3].The current space vector is controlled directly in the rotary reference frame of the rotor.In the ideal case, the current space vector is fixed in magnitude and direction (in quadrature) with respect to the rotor.Since the current space vector in the rotary reference frame is static, the PI controllers operate on DC values, rather than in time varying sinusoidal signals.This isolates the controller from the time varying winding currents and voltages, and therefore eliminates the limitation of the controller frequency response, proving an efficient torque control.For this reason, the measured stator currents in the stepper motor must be mathematically transformed from the two phase static reference frame, to a rotary reference frame, before being processed by the PI controllers.For brushless DC synchronous motors (BLDC), with three-phase stator windings, with phases physically separated 120º, the reference frame transformation can be performed in a single step: from three phase stationary frame to rotary frame, using Park's Transformation [4].However, that transformation is best described as two step process, where the motor currents are first translated from the 120º physical frame of the motor stator windings to a fixed orthogonal reference frame.This transformation is known as Clark Transformation.Two PI controllers will be required to control the currents, and since only the quadrature current produces useful torque, the controller will track the requested torque, and the controller will be configured with a zero input reference.However, most high performance servo systems employ an inner control loop to regulate torque, which it is enclosed by an outer control loop to handle rotor angular velocity, and followed by a second outer control loop for rotor angle positioning.While the design of the outer loops are considerably independent of motor type, the design of the torque loop is inherently specific to the motor being controlled.The block diagram in Figure 3, shows the three control loops employed at each stepper motor included in the group.

Distributed Cooperative Control
Cooperative control studies the dynamics of multi-agent dynamical systems linked to each other by a communication graph.The graph represents the allowed information flow between the agents, where each agent is confined to depend only on information about that agent and its neighbors in the graph [5].
Decentralized control systems refer to the case in which the agents are not following a centralized master/slave configuration.Instead, they are distributed within the system in a way that each agent is connected into a network of agents.Some of the advantages of distributed control systems are that a multi-agent system can perform tasks more efficiently than a single agent, increasing tolerance to possible agent failure.To coordinate with other agents in a network, every agent needs to share information with its neighbor peers, so that all can agree on a common goal of interest, like for instance, keeping the heading of aircraft in formation, or a target trajectory for a team of robots.
It was Reynolds [6] the first to propose a computer animation model to simulate collective behavior of multiple-agents, and after him several researches have provided some new in-sites of systematic framework of consensus problems.While most literature concentrates on studying consensus under fixed communication topology, in some applications the communication topology might change due to communication range limitations, mainly when agents are moving in space, like in the case of flight formation or robots synchronization.

Algebraic Graph Theory
The communication network is modeled by a graph and establishes the links and interconnections between the agents.The graph consists of nodes representing the agents, and directed edges corresponding to the allowed flow of information between the agents.Some basic graph theory concepts [7] are essential in the study of multi-agent dynamical systems.
A weighted order graph is defined as a pair , with a finite nonempty set of nodes , a set of edges or arcs , and a weighted adjacency matrix .Each node corresponds to an agent , and each edge denoted as , is represented as an arrow from (the tail) to (the head).We assume the graph is simple, i.e., , meaning that at any agent there will be no "self-loops", and there will be no multiple edges between the same pairs of nodes.
Each edge in a weighted direct graph (or digraph) represents the allowed flow of information from agent to agent , which means that agent can received information from agent .In contrast, the pairs of nodes in undirected graphs (also known as bidirectional graphs) are unordered, where an edge denotes that agents and can receive information from each other.The weighted adjacency matrix of a digraph is defined by: weights of the link and for any , if , and otherwise.The weighted adjacency matrix of a weighted undirected graph is defined analogously except that , , since implies , resulting in a symmetric adjacency matrix A.
The weighted in-degree of a node is the number of edges having as a head, so it will be equal to the -th row sum of : (7) and the weighted out-degree of node is the number of edges having as a tail, so it will be equal to the -th column sum of : (8) The in-degree and out-degree are local properties of the graph.A (directed) tree is a connected digraph where every node except one, called the root, has in-degree equal to one.A spanning tree of a digraph is a directed tree formed by graph edges that connects all the nodes of the graph.A graph is said to have a spanning tree, if a subset of the edges forms a directed tree meaning that there is a node (called root node) with a direct path from that node to every other nodes in the graph with no cycles (a cycle is a simple path that starts and ends at the same node).The root set or leader set of a graph is defined as the set of nodes that are the roots of all spanning trees.A graph may have multiple trees; however, if it contains at least one spanning tree, the graph is declared as strongly connected.
The adjacency matrix of an undirected graph is symmetric, .A graph is said to be weight balaced if the weighted in-degree equals the out-degree for all .If all the nonzero edge weights are equal to 1, this is the same as the definition of balanced graph.An undirected graph is weight balanced, since if , then the -th row sum equals the column sum.The Graph Laplacian matrix is defined as follows: (9) where is the in-degree matrix, and the adjacency matrix.Note that has all row sums equal to zero.
Many properties of a graph may be studied in terms of its graph Laplacian matrix, providing a key role in the analysis of dynamical multi-agent systems on graphs.The eigenvalues of the Laplacian matrix explains properties of the underlying graph topology.
Any undirected graph has , so all its eigenvalues are real and can be ordered as .A weighted undirected graph is connected, if and only if, its Laplacian matrix has an eigenvalue zero with multiplicity one, and all other eigenvalues have positive real parts [8].
A weighted directed graph has a directed spanning tree, if and only if, its Laplacian matrix has an eigenvalue zero with multiplicity one, and all other eigenvalues have positive real parts [9].

Cooperative Control Algorithm
When multiple agents agree on the value of a variable of interest, they are said to have reached consensus.Consensus algorithms are designed to be distributed, assuming only neighbor-to-neighbor interaction between agents, so agents will update the value of their information based on the information of their neighbors.Hence, the goal will be to design an updated law, so that the information of all agents in the network converge to a common value.
Consensus algorithms have been studied extensively in the context of cooperative control of multiagents.The most general continuous time consensus algorithm was formulated by [10], and it is given by the first order single integrator dynamics: (10) where is the entry of the adjacency matrix associated with the graph , and is the information of the agent.Setting denotes the fact that agent cannot receive information from agent .A consequence of equation (10) is that the information of agent is driven toward the information of its neighbors.Equation ( 10) can be written in matrix form, considering the global dynamics of the state vector as: (11) According to [10], the cooperative control law in (11) guarantees consensus, if and only if, the graph has a spanning tree, meaning that the dynamics given by (11) has a system matrix with eigenvalues in the left-hand complex plane, except for only one of the eigenvalues, which will be located at the origin (stability condition).
In this research paper, distributed cooperative control of multi-agent systems has been applied for rotor synchronization of five stepper motors, with a communication network topology defined by their graphs.The cooperative control law applied is the following: where is the control gain, is the adjacency matrix defined by the graph network topology, is the pinning gain, with a non-zero value for only one of the stepper motors that has the reference rotor position angle (leader agent), and is the rotor angle tracker error.The cooperative control law in (12), can be written in matrix form as shown in (13), and its implementation in block diagram will be as shown in the Figure 4.
(13) where is the control gain matrix, is the pinning matrix, is the Laplacian matrix, is the adjacency matrix, and is the in-degree matrix of .

Simulation Results
A distributed cooperative control law based on multi-agents has been used to synchronize five stepper motors, where each agent will communicate with its neighbors according to a predefined network topology given by the graphs shown in Figure 5.
Leadership is appointed to one of the stepper motors by the pinning matrix , to which reference signal is applied, for the other agents to follow according to the cooperative control law defined at (12).Simulations are analyzed for a square, and triangular reference signal, with results shown in Figures 6-to-10.
Even though redundant communication links were assigned in the network of case 4, same results as in case 3 are obtained.The topology defined in case 1 is the most unfavorable, because each agent delays the information to the next agent, as confirmed by the simulation response.

Conclusions
The cooperative control algorithm implemented to synchronize rotor position of five stepper motors, with the internal closed-loop rotor position control derived based on field-oriented control techniques to provide torque control, gives different results depending on the topology of the selected network.
From the experiments carried out, it could be concluded that the network topology plays an important role when cooperative control based in multi-agents is considered.Hence, an optimization tool to find the optimal communication graph, attending to minimize a predefined cost function, could be an interesting future research topic.

Figures 1
Figures 1 and 2 summarize stator winding current waveforms in a BLDC motor, as seen in three different reference frames.

Figure 1 .
Figure 1.Clark and Park Transformations.Figure 2. Stationary and rotary reference frame.

Figure 2 .
Figure 1.Clark and Park Transformations.Figure 2. Stationary and rotary reference frame.

Figure 3 .
Figure 3. Block diagram for stepper motor position control

Figure 8 .
Figure 8. Stepper motor voltage and current.Figure 9. Stepper motor voltage and current.