DC Motors & Precise Speed Control

DC Motors & Precise Speed Control : PID Parameters Adjustment Of DC Motors Using Fuzzy Supervisor

Dc Motor HD Stock Images | Shutterstock

DC Motors & Precise Speed Control : PID Parameters Adjustment Of DC Motors Using Fuzzy Supervisor DC motors has long been used in applications where precise speed control is required. The speed control of DC motors is achieved with different schemes. The PID controllers are also used widely for this purpose.

Deep Learning God Yann LeCun

However, due to various nonlinearities in the structure of DC motors, it is arduous to find appropriate PID parameters using traditional methods. In this paper, however, a fuzzy logic supervisor is used for offline determination of PID parameters. Fuzzy logic has been introduced in recent decades and has well shown to be able to cope with nonlinear systems.

Fuzzy Logic : Application Of Fuzzy Logic In Adaptive Selection


PID controller parameters can be defined in various ways, using the transfer function of the system or its open-loop step response. The transfer function of the system, on the on hand, can be derived only if the intrinsic parameters of the system are specified through various examinations. In case of a DC motor, these parameters include the resistance and the inductance of windings, friction coefficient and the moment of inertia of motor and load. It is worth noting that all these parameters are subject to change due to conditions like temperature, magnetic saturation and so on. Hence the derived transfer function is only valid for a specific range of these conditions. On the other hand, to reach accurate results, the step response approach should be repeated for every single motor, which is not practical especially when a high level of accuracy is required. Additionally, similar to transfer function, the step response is also dependent to environmental conditions.

In contrast, this paper uses a fuzzy supervisor to define the PID controller parameters. Instead of dealing with exhaustive examinations and measurements, a fuzzy inference system uses the simple heuristic rules used by an expert operator. Suppose that an expert operator of a PID controlled DC motor attempts to set the PID controller parameters. Based on his experience, they start with some initial guess, and run the motor to measure the most important factors from the operational point of view. Then, according to these measurements and also their experience, they adjust the parameters and run the motor again. This procedure is continued until the desired results are obtained. Technically, the expert operator uses a series of learned rules, which define the PID parameter needed to change, and the range of change each time. The more accurate are these rules, the less time it takes to reach the desired point. A fuzzy supervisor uses a likewise approach. Similar to an expert user, the fuzzy supervisor requires a complete set of accurate rules to function properly. Generally, this set may be achieved using two ways: discussion with the expert operator or experimentation and simulation. The latter is opted in this paper.

The build-up of the fuzzy rule base

To define the fuzzy rule base, firstly, the practically important electrical and mechanical parameters of motor should be identified. In order to prevent damage to the motor, these parameters are desired to stay within some limits. Two most important parameters are the Settling Time of the Rotational speed (STR) and the Maximum Starting Current (MSC). The former shows the response speed and the regarding mechanical requirements, whereas the latter is a guide to the size of motor conductors. AS a rule of thumb, the less time it takes for motor to reach the pre-defined speed, the more starting current it demands. Therefore, a practical compromise should be achieved between these two factors.

Secondly, the influence of load on STR and MSC are studied for different values of PID parameters: Kp, Ki and Kd. Here, two different DC motors: 1hp and 3.7KW are selected. The range of PID parameter in these simulations is as follows:

  • Kp= 0.6 to 4.8
  • Ki= 15 to 110
  • Kd= 0.00083 to 0.09583

To cover all conditions, the motors are simulated in both no-load and full-load conditions. In other words, it is shown that the influence of PID parameters on STR and MSC are in a way that once PID parameters are selected according to each of the two conditions (no load or full load), they can be used in all other load conditions without causing STR and MSC to drift away from safe limitations. According to table 1 (1hp motor) and table 2 (3.7KW motor), which depict the simulation results based on best choices of PID parameters for no-load and full-load conditions, MSC does not experience noticeable change. As regards STR, however, in the worst case, the value surges by a rate of as high as 57.8% and 85% for 1hp motor and 3.7KW motor, respectively. Although, bearing in mind the fact that the values of STR keep well below 1s for 1hp motor and even lower (below 0.1s) for 3.7KW motor, it is conspicuous that a large number of practical speed control applications are able to accept this variation in speed settling time without their performance being meaningfully affected.

Table 1- influence of load on selection of PID parameters (1hp motor)

no loadfull load% of influence
STR [s]MSC [amp]STR [s]MSC [amp]STR [%]MSC [%]
KpKi=37, Kd=0.020832.70.328*9.90.4619.9+40.50
KiKp=2.25, Kd=0.02083300.413*9.90.5909.9+42.80
KdKp=2.25, Ki=370.000830.565*8.730.4188.75-26.0+0.2
*: best case

Table 2- influence of load on selection of PID parameters (3.7KW motor)

no loadfull load% of influence
STR [s]MSC [amp]STR [s]MSC [amp]STR [%]MSC [%]
KpKi=75, Kd=0.020831.950.0499*3140.0923314+85.00
KiKp=2.25, Kd=0.02083800.0448*3140.0513314+14.50
KdKp=2.25, Ki=750.015830.04162320.0447232+7.40
*: best case

Thirdly, fuzzy variables and their fuzzy values are defined. Two fuzzy values of “High” and “Acceptable” are defined for fuzzy variables MSC and STR. In addition, two fuzzy values of “High” and “Low” are defined for current values of PID parameters. On the other hand, fuzzy output parameters: ΔKp, ΔKi and ΔKd, which show the adjustment required for each PID parameter, are specified with five fuzzy values of “Positive Small” (PS), “Negative Small” (NS), “Zero” (0), “Positive Medium” (PM) and “Negative Medium” (NM). Next step is the selection of membership functions of each fuzzy value. For convenience, a simple triangular type is selected for all membership functions. It is, nonetheless, important to define the point at which each fuzzy value of different fuzzy variables is equal to logic 1. These points are summarized in table 3.

Table 3- The points of logic 1 for each fuzzy value of fuzzy variables


Finally, based on simulation results, the effect of each PID parameter on MSC and STR are analyzed and used as a basis for building a fuzzy rules base. Obviously, the Fuzzy Inference System (FIS) has five input fuzzy variables: Kp, Ki, Kd, MSC and STR, plus, three output fuzzy variables: ΔKp, ΔKi and ΔKd. In order to show this multi-dimensional space, for separate tables 4 to 7 are used below. Note that this fuzzy rules base is built based on simulation results of 1hp and 3.7KW motors, and consequently is valid only for motors with the power be within this range and a bit further. It is needless to mention that for motors with noticeable higher power, the simulations should be repeated.

Table 4- fuzzy rules base when MSC or STR are “High” and Kp is “High”

KiHighΔKp=ΔKi=ΔKd=NMΔKp=ΔKi=NM & ΔKd=0
LowΔKp=ΔKd=NM & ΔKi=PMΔKp=NM & ΔKi=PM & ΔKd=0

Table 5- fuzzy rules base when MSC or STR are “High” and Kp is “Low”

KiHighΔKp=PM & ΔKi=ΔKd=NMΔKp=PM & ΔKi=NM & ΔKd=0
LowΔKp=NM & ΔKi=ΔKd=PMΔKp=ΔKi=PM & ΔKd=0

Table 6- fuzzy rules base when MSC or STR are “Acceptable” and Kp is “High”

KiHighΔKp=ΔKi=ΔKd=NSΔKp=ΔKi=NS & ΔKd=0
LowΔKp= ΔKd=NS & ΔKi=PSΔKp=NS & ΔKi=PS & ΔKd=0

Table 7- fuzzy rules base when MSC or STR are “Acceptable” and Kp is “Low”

KiHighΔKp=PS & ΔKi=ΔKd=NSΔKp=PS & ΔKi=NS & ΔKd=0
LowΔKp=NS & ΔKd=ΔKi=PSΔKp=ΔKi=PS & ΔKd=0

Design and simulation of the fuzzy supervised PID controller

Figure 1 shows the block diagram of a shunt DC motor incorporated with the mechanical load and the PID controller along with the fuzzy supervisor. Simulation is undergone using MALAB coding. Preliminarily, the initial estimation of PID parameters is fed to the fuzzy supervisor by an operator. This estimation could be based on a rough knowledge about the nature of PID controllers and should be selected in normalized form between 0 and 1. The base for normalization of each PID parameter is as follows: KP=100, Ki=500, Kd=1.

The simulation is then run and STR and MSC are calculated and fed back to fuzzy supervisor. After that, new suggestion for PID parameters is derived from fuzzy supervisor to be fed into PID controller for another round of simulation. This process repeats until MSC reaches 1.75p.u. or STR reaches 3s.

Figure 1-block diagram of a DC motor with fuzzy supervised PID controller

A range of DC motors with different rotational speeds and various initial values for normalized PID parameters [NKp, NKi, NKd] are used in the simulations. Figure 2 shows how the armature current (Ia ) and the rotational speen (ωm) changes during startup of the 1hp motor with the supervised PID controller.

Figure 2- 1hp motor, rotational speed reference=300rpm, initial normalized PID parameters= [0.1, 0.9, 0.3], PID parameters suggested by fuzzy supervisor= [0.69, 0.21, 0.2], results: MSC=1.25p.u. STR=0.53s

The simulation results are summarized in table 5. It can be evinced that for all motors, the STR is completely within acceptable range (less than a second for most cases). This has, although, an exception on 2hp motor. Turning to MSC, in  1hp and 2hp motors, the MSC results are satisfactory, while for 10hp and 40hp motors MSC is high, which is mainly due to the fact that higher power motors demand higher starting currents. 

Table 5- summarized results of simulations

Power[hp]SpeedInitial PID suggestion[NKp   NKi   NKd]Fuzzy-supervised PID [NKp   NKi   NKd]MSCSTRNumber of iterations
1300[0.1    0.9    0.3][0.07    0.21     0.20]1.250.535
[0.6    0.2    0.8][0.07    0.08     0.19]0.910.899
500[0.1    0.9    0.3][0.05    0.07     0.20]1.220.9131
[0.6    0.2    0.8][0.06    0.08     0.21]1.680.717
2500[0.1    0.9    0.3][0.07    0.08     0.17]1.442.699
[0.6    0.2    0.8][0.06    0.08     0.23]1.110.799
102500[0.1    0.9    0.3][0.15    0.13     0.10]17.881.55101
[0.6    0.2    0.8][0.02    0.01     0.23]14.800.11101
40500[0.1    0.9    0.3][0.12    0.07     0.09]4.350.57100
[0.6    0.2    0.8][0.06    0.08     0.25]7.000.82100


In this paper, it is shown that a fuzzy supervisor is capable to be used to determine PID parameters. Being based on heuristic rules, it can be relied upon for handling the nonlinearities associated with DC motors. It is also shown that a fuzzy inference system which is built on the basis of data from a specific DC motor could be used for a wide range of DC motors with acceptable results.

Written by Hossein Osyani Khoozani


  1. A course in fuzzy systems and control, Li-Xin Wang, 1996, Pearson.

Solid-state DC motor drives, Alexander Kusko, 1969, MIT Press.

DC Motors : PID Parameters Adjustment Of DC Motors Using Fuzzy Supervisor