This example will show how to model a DC motor's speed using different approaches in Collimator. The three approaches involve simulating diagrams from a differential equation, a transfer function, and a state variable model. Then, we will design and simulate a PID controller for the DC motor speed.

A DC motor combines mechanical and electrical subsystems. The electrical part is an armature coil with a resistance and inductance to drive a field causing motion. The mechanical part can be modeled as an inertial rotor with friction. The DC motor is conceptually modeled as in **Figure 1** with the parameters given in **Table 1.**

**Table 1** DC motor model parameters:

\begin{array} {|l|l|}\hline Symbol & Description & Value & Unit \\ \hline R & \text{Shunt Resistance} & 4 & \Omega \\ \hline L & \text{Coil inductance} & .25 & H \\ \hline K & \text{Motor Electromotive/torque constant} & .05 & N.m/A \\ \hline j & \text{Rotor intertia} & .02 & Kg.m2 \\ \hline b & \text{Friction constant} & 0.1 & N.m.s \\ \hline \end{array}

The DC motor dynamics are given as the following system of differential equations:

$$L\frac{di}{dt} + Ri + K\frac{dϕ}{dt} = u$$

$$J\frac{d^2ϕ}{dt^2} +b \frac{dϕ}{dt} = Ki$$

Applying the Laplace transform for the above equations to get the domain equivalent as:

$$(Ls+R)I(s)+K\dotΦ(s) = U(s)$$

$$(Js+b) \dotΦ (s) = KI(s)$$

Then, both equations are combined by eliminating the current variable to get the open-loop transfer function as:

$$\frac{\dotΦ(s)}{U(s)} = \frac{K}{LJs^2+ (RJ +Lb)s + (Rb + K^2 )}$$

The transfer function can also be converted into an equivalent state space form as:

**Equation 6**

$$\frac{d}{dt}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix} = \begin{bmatrix}0 & 1 & 0\\0&-\frac{b}{J} &\frac{K}{J}\\0 & -\frac{K}{L} &-\frac{R}{L}\end{bmatrix}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix}+\begin{bmatrix}0\\0\\\frac{1}{L}\end{bmatrix}u $$

**Equation 7**

$$y=\begin{bmatrix}0 & 1 & 0\end{bmatrix}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix}$$

Substituting the parameter values in **Table 1** within Equations \(L\frac{di}{dt} + Ri + K\frac{dϕ}{dt} = u\) and, \(J\frac{d^2ϕ}{dt^2}+b\frac{dϕ}{dt} = Ki\) , the DC motor speed model as a system of differential equations is described as:

$$0.25\frac{di}{dt} + 4i+ 0.05\frac{dϕ}{dt} = u$$

$$0.02\frac{d^2ϕ}{dt^2} + 0.1 \frac{dϕ}{dt} = 0.05i$$

The dataflow of the system of differential equations can be formulated as a simulation diagram in Collimator's model editor as shown in **Figure 2**.

The parameters of the models are defined in **Figure 3.**

After running the simulation, the step response is visualized as in **Figure 4.**

The obtained transfer function for the DC motor is defined as:

$$\frac{\dotΦ(s)}{U(s)} =\frac{0.05}{0.005s^2+ 0.105s + 0.4025}$$

The transfer function model is implemented as in **Figure 5** with the transfer function block is configured as in **Figure 6**. The visualization of the step response of the transfer function model is shown in **Figure 7.**

By substituting the DC motor model parameters with the state space model of Equations shown in **Equation 6** and **Equation 7**, the following models are obtained:

**From Equation 6:**

$$\frac{d}{dt}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix} = \begin{bmatrix}0 & 1 & 0\\0& -5 & 2.5\\0 & -0.2 & -16\end{bmatrix}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix}+\begin{bmatrix}0\\0\\4\end{bmatrix}u $$

**From Equation 7:**

$$y=\begin{bmatrix}0 & 1 & 0\end{bmatrix}\begin{bmatrix}Φ\\\dotΦ\\i\end{bmatrix}$$

The state space model is implemented in **Figure 8** and the state space block is configured in **Figure 9**. The visualization of the step response of the state space model is shown in **Figure 10**.

The ideal parallel form the PID controller is defined as:

$$u(t)= K_pe(t)+K_i ∫_0^te(τ)dτ+K_d\frac{d}{dt}e(t)$$

The PID controller simulation model is implemented through Collimator's model editor as shown in **Figure 11**.

First, we try an initial PID tuning as \(K_p=K_i=K_d=1\). The step response of the closed-loop DC motor speed with the initial PID design is illustrated in **Figure 12**.

The initial PID tuning yields a very slow step response. Therefore, we increase the proportional gain to \(K_p=80\) Then, the step response is plotted in **Figure 13**. The new PID controller has much faster response. However, there is a significant steady-state error about 9%.

To eliminate the steady-state error, we increase the integral gain to \( K_i= 50.\) This yields the step response in **Figure 14**. Now, the steady-state error is eliminated.

To accelerate the settling time, increase the \( K_d = 6.\) The final step response is plotted in **Figure 15**.