# Robustness Analysis for Multi-Agent Consensus Systems with Application to DC Motor Synchronization
## 5 Experimental Results  
The agent speed consensus control addressed in Section 2 was implemented by using a Bluetooth wireless communication system and an embedded microcontroller-based control platform, as shown in Figure 2. This platform consists of three identical modules whose elements are: a DC motor managed by a dual-core ARM Cortex-A9 embedded microcontroller system, with the ability to be programmed via WiFi, a Bluetooth transmitter, and a receiver (115,200 baud), as well as an encoder to measure motor speed, with a sampling frequency of 25 samples per second. Each motor has a load consisting of a wheel. The control algorithm was programmed using LabVIEW(r). Before the tests, the WiFi communication was used to configure the controllers parameters, but, during the tests, it was only used to send the reference value from the computer to the leader controller. The gains \(k_{p}=0.07\) and \(k_{cm}=1\) were chosen to have an underdamped response. Note that while controllers 2 and 3 need one speed state information via Bluetooth, the controller 1, the leader, needs to have all speeds to calculate the center of mass. Approximate motor parameter values are shown in Table 1. It is important to note that, in this system, there may be several sources of uncertainty, namely motor parameters, measurement noise, and transmission delays. A schematic diagram of the multi-agent system is shown in Figure 2, and the experimental implementation is presented in Figure 3.  
The tests consisted of a step reference change and a sinusoidal reference change, \(r(t)=70+30 sin(0.2\pi t)\). The response of the DC motor speeds (\(\omega_{1}(0)=60.13\) rpm, \(\omega_{2}(0)=59.75\) rpm and \(\omega_{3}(0)=59.67\) rpm) and controls to a reference step change are shown in Figures 4 and 5, respectively. It is possible to note that the leader control \(u_{1}\) has a bigger transitory because it is responsible for carrying the system to the reference; the other two controls carry the states to the center of mass. The behavior of the center of mass is plotted in Figure 6, where the center of mass is very close to the reference during stationary state and smoother than the speeds, acting as a low pass filter. This variation, of approximately 0.5 rpm, is mainly due to the encoder used to measure speed. Figures 7-9 show the response, control outputs of the motor system, and the center of mass with a time-varying reference (\(\omega_{1}(0)=0.40\) rpm, \(\omega_{2}(0)=1.10\) rpm and \(\omega_{3}(0)=1.14\) rpm). The synchronization of angular speeds is appreciated under reference step change and sinusoidal reference. Observe that small errors appear when using time-varying references, due to the propagation delay of the reference over the wireless communication system and the states, working as uncertainty, but is not enough to avoid synchronization.  
\begin{table}
\begin{tabular}{l l l l} \hline \(R_{m}\) & \(3.3\)\(\Omega\) & \(B_{l}\) & \(4.41\times 10^{-6}\) Nm/(rad/s) \\ \hline \(k_{m}\) & \(7.68\times 10^{-3}\) V/(rad/s) & \(k_{t}\) & \(6.9\times 10^{-3}\) Nm/A \\ \hline \(k_{g}\) & \(53\) & \(\eta_{m}\) & 0.69 \\ \hline \(\eta_{g}\) & 0.90 & \(J_{m}\) & \(3.90\times 10^{-7}\) kgm\({}^{2}\) \\ \hline \(J_{l}\) & \(1.03\times 10^{-4}\) kgm\({}^{2}\) & \(B_{m}\) & \(1.07\times 10^{-9}\) Nm/(rad/s) \\ \hline \end{tabular}
\end{table}
Table 1: Motor parameters and values.  
Figure 3: Three-motor synchronization experimental platform.  
Figure 2: Experimental agent interconnection diagram.  
Figure 4: Experimental speed consensus with a reference step change.  
Figure 5: Experimental control outputs with a reference step change.  
Figure 6: Experimental state center of mass with a reference step change.  
Figure 8: Experimental control outputs for each agent following a sinusoidal reference.  
Figure 7: Experimental speed tracking using a sinusoidal reference.  
Figure 9: Experimental center of mass of agents following a sinusoidal reference.