Characterization of DC motor


Introduction

A DC motor can be mathematically modeled as an electrical system and a mechanical system, tied together by relationship between back-emf and speed, and relationship between current and torque. In this experiment, the electrical and mechanical parameters of the DC motor are determined. These values are necessary to design a proper control system to control motor speed, torque, or position as will be seen in later experiments.

Theoretical background

Motor model

The DC motor like all real-world systems, exhibits non-linear behavior. In the model shown below, a linearized DC motor model is considered for the sake of design simplicity. It will be verified in later experiments that the results from the simulated linearized model closely matches the real-world model thus validating this approximation.

Linearized DC motor electrical and mechanical model

In a permanent magnet DC motor, such as the one used in this experiment, the stator contains the permanent magnet and the rotor contains the armature winding. When current flows through the armature winding, it generates flux, which interacts with the magnetic field established by the permanent magnet, and this interaction generates an electromagnetic torque, Tem which rotates or stalls the motor. The torque Tem is proportional to the armature current Ia as given in Eqn. 1 where kT is the torque constant.

Tem = kt × Ia(1)

As the motor rotates, the armature winding cuts through the magnetic field which induces the back emf, Ea on the armature winding. When the motor rotates faster, the rate of change of magnetic flux dϕ/dt increases, proportional to the rotor speed. This is given by Eqn. 2 where ωm is the motor speed and ke is the back-emf constant.

Ea = ke × ωm(2)

The power needed to drive the motor is given by the Ea × Ia. The mechanical power needed to drive the motor is given by Tem × ωm. Since these two quantities are one and the same (in SI units), from Eqn. 1 and 2, kt = ke. Ra and La in the above model refers to the armature resistance and inductance respectively. The voltage applied at the terminal Va equals the sum of voltage across the passive elements - Ra and La, and the back-emf Ea. This represents the electrical model of the DC motor and is given in Eqn. 3, where Ea has been replaced with ke × ωm from Eqn. 2.

Va = RaIa + LadIadt + keωm(3)

The mechanical model of the DC motor is given in Eqn. 4. Under steady state, the torque generated by the motor Tem equals the sum of load torque Tl and the torque necessary to compensate the frictional losses, Tfric. In transient condition when Tem ≠ Tl + Tfric, the motor accelerates if the former is greater than the latter, storing the excess energy as inertial energy. It decelerates if the former is less than the latter, loosing previously stored inertial energy. The motor inertia is identified as J in Eqn. 4.

Tem = Tl + Tfric + Jmdt(4)

The frictional component is due to various factors and is always against the direction of rotation. Of the many causes, only Coulomb friction which is a constant and viscous friction which varies proportionately with rotational speed are considered, since these are the ones that have significant effect on the steady-state. The torque associated with Coulomb friction is given by Tc and that of viscous friction is given by B × ωm, where B is the coefficient of viscous friction. Substituting these into Eqn. 4 yields the final mechanical model as given in Eqn. 5.

Tem = Tl + Tc + Bωm + Jmdt(5)

Parameter estimation

In this experiment, the electrical model parameters, Ra, La, ke and, the mechanical model parameters, Tc, B and J, are determined for the DC motor as follows:

  1. Ra: Use a multimeter. Alternatively, lock the rotor such that it does not rotate and apply a constant voltage, Va of less than 2 V at the motor terminal and measure the steady-state motor current Ia. Divide Va by Ia to obtain the armature resistance Ra. Locking the rotor eliminates the back-emf component in Eqn. 3, and the steady-state current eliminates the drop across armature inductance La. Thus, all the applied terminal voltage is dropped solely across the armature resistance.

  2. La: Like before, the rotor is locked to prevent it from rotating to eliminate the back-emf component in Eqn. 2. The equation becomes:

    Va = RaIa + LadIadt(6)

    When a step voltage of magnitude V at time t = tstep, is applied to the motor terminals, the solution to above equation for current Ia is given in Eqn. 7. The value of differential of Eqn. 7 evaluated at t = tstep is given in Eqn. 8. Rearranging Eqn. 8, armature inductance can be obtained, as given in Eqn. 9.

    Ia = VaRa(1 - e-tRa/La)(7)

    dIadt(tstep) = Ia'(tstep) = Va(tstep)La(8)

    La = Va(tstep)Ia'(tstep)(9)

  3. ke = kt: There are two ways to identify ke, first using just a coupled motor-generator set, and the other using single motor. In the former, run the generator at constant speed while the motor terminals are left open. Measure the motor/generator speed ωm and the motor back-emf Ea which is same as the motor terminal voltage Vo since it is open. From these two measurements, ke can be determined by using Eqn. 2.

    Alternatively, if only a single motor is used, apply a constant voltage Vo at the motor terminal. Measure the motor current Ia and motor speed ωm at steady-state. Compute ke from Eqn. 10, which is obtained from Eqn. 3 where the drop across inductance La is zero under steady-state condition because Ia is a constant.

    ke = Va - RaIaωm(10)

    The second method is used in this experiment since the same method is used to estimate frictional components as well as highlighted in the next step.

  4. Tc and B: If the motor is not accelerating i.e. motor speed is a constant, and there is no load connected, the inertial torque component and load torque component in Eqn. 5 becomes zero, leading to the following equation:

    Tem = Tc + Bωm(11)

    Apply a constant voltage Vo, at the motor terminal. Measure the motor speed ωm, and current Ia. The electromagnetic torque Tem can be computed from the measured current Ia using Eqn. 1. Repeat the same for different voltages and plot the result, Tem (y-axis) vs. ωm (x-axis). The resulting plot will be linear. The slope of the plot equals the coefficient of viscous friction B and the y-axis intercept is the frictional torque Tc, due to Coulomb friction.

  5. J: Apply a constant voltage Vo, at the motor terminal. Once the speed settles down, measure the speed ωm, and motor current Ia. At steady state, the electromagnetic torque Tem (Eqn. 1), solely compensates for drag due to friction. Disable the inverter so that the motor current dies-down to zero rapidly. After this, there is no electromagnetic torque and all the frictional losses must be supplied from the inertial energy. This leads to the motor to stop gradually. This is summarized in Eqn. 12, which is obtained by equating Tem and load torque Tl in Eqn. 4 to zero.

    0 = Tfric + Jmdt(12)

    At the moment the inverter is disabled, time t = Tdis, the frictional torque component Tfric is same as, that of electromagnetic Tem just before disabling the inverter, which can be obtained from the steady-state current Ia before disabling the inverter using Eqn. 1. Substituting this into Eqn. 12 yields:

    J = ke×Ia(Tdis)mdt(Tdis)(13)

    Thus, the motor inertia can be obtained by dividing, the electromagnetic torque just before disabling the inverter, with the motor deceleration just after disabling the inverter.
    please noteNote

    Disabling the inverter is not the same as setting the output voltage to 0. In the former, the motor current extinguishes at a rate much faster than the slowdown of the motor speed. After this point, the inertial energy is not lost to the armature resistance or to the source. If the terminal voltage was set to zero, the inertial energy in addition to being lost in friction, will also be lost in the armature resistance because the back-emf will source the current due to the terminal being effectively shorted.

Real-time parameter estimation
  1. Ra: Measure across the motor terminal using a multimeter.

  2. La:

    1. Open Workbench and pin the Explorer and Properties dock.

    2. Navigate to and open the DCMotor project file in Experiment3 folder usually found in the following location: C:\Program Files (x86)\Sciamble\WorkBench v1\Examples\CUSPLab\BasicDrives.

    3. Expand the project and open the LsEstimate model file (double clicking on the model node). Open the model properties (double click anywhere in the blank space of the open model). Copy the value in the property labelled Name, which if previously unchanged will be LsEstimate.

    4. Since this project has more than one model file, the project must be notified as to which of these models should be run. To do this, open the project properties (double click on the project node in the Explorer dock) and paste the copied model name (LsEstimate) into the Start model/Function field.

    5. Shown below is the LsEstimate model:

      Ls estimate real-time model

      The GPO tool, in components highlighted in blue on the bottom right corner, is the Inverter 1 enable pin and is set to ON (True). The LED tool, in that same section, is the green LED on the side of the three inverter, right next to the red power LED. This is just an indicator that glows when the code begins to execute. The tools highlighted in green, represents the inverter PWM generation logic, as seen in the previous experiment. For estimating inductance, the rotor must not rotate. Since it is rather difficult to physically lock the rotor from rotating, we instead excite it for a brief period. The excitation pulse is applied at time t = 2 s, and has a magnitude of 40 V and time period of 1 ms. In this brief interval, the motor does not develop sufficient electromagnetic torque to counteract the static friction and hence the speed remains at zero, having the same effect as locking the rotor.

      As per above discussion, the terminal voltage Vo and the current differential I'a, at time t = 2 s i.e. right after exciting the armature winding, is needed for estimating La. The simulation model is run at a step time of 0.2 ms. Even though this update rate is good enough for observing I'a, the rate at which the data itself is logged is much slower. Data from each evaluation is not logged on to the computer due to limited data transfer bandwidth. Hence simply adding a scope to observe I'a will in most cases not capture the data at the exact instant needed. This limitation is overcome by the blocks shown in purple. These capture the I'a in the short time between 2.0004 and 2.0006 s, right after exciting the motor and holds on to it using a sample-and-hold block, which ensures that the sampled data is definitely logged to the scope.

      Finally, in the blocks highlighted in black, the ADC block represents the motor current feedback. Double click on it to observe its properties and make note of the property labelled Signal Scaling. The inverse of this value represents the factor by which the ADC output must be scaled to obtain the actual current. The Gain block following the ADC block does this scaling.

    6. Connect the motor (the one without the encoder) to Inverter 1 (color of the motor terminal must match that of the inverter's). Even though the generator (the one with encoder) is not used in this case, connect it to Inverter 2 instead of leaving the terminals open (once again the color of the motor terminal must match that of the inverter's).

      Connect the three-inverter module to the DC power supply. Connect the three-inverter to the computer via USB. Connect the generator speed feedback to the three-inverter's Encoder 1 DSUB connector in the back panel.

    7. Turn ON the DC power supply and set the voltage to 40 V.

    8. Ensure that Numerical simulation to Real-time mode transition button button on the top dock, to transition to real-time mode, is pressed. Click the run button.

    9. Open the scope (double click) named Scope1 to see the data log of Ia differential. After about 5 s, when a step change in the plot is observed, stop the data logging by clicking on Numerical simulation and real-time prototyping Stop button button. Auto-focus the scope result by clicking Model display scope autofocus time axis alone in the Scope's toolbar. The result should look like the waveform shown below:

      Motor current differential captured right after a voltage step

    10. Zoom in and make a note of the plot's peak which is, the Ia differential immediately after the application of voltage pulse to the motor.

      Repeat the previous 2 steps to get at least 5 different readings.

    11. Compute the value of La for each of the reading using Eqn. 9, where Va(tstep) = 40 V.

      Motor armature inductance La is the average of the above samples.

    12. Close the LsEstimate model.

  3. ke = kt, Tc and B:

    All the three parameters are estimated using the same method, in this step.

    1. Open the keEstimate model within the same project.

    2. Open the model properties (double click on the blank-space) and copy the property Name.

    3. Go to project properties (double click on project node) and set the Start model/Function to the copied value.

    4. The model is shown below. The motor is given a constant step voltage and the motor current and speed are measured.

      back-emf and frictional constant estimator model

    5. Open Step tool's properties and set the Final value property to 10.

    6. Ensure that the motor is connected as done while estimating La and that the DC power supply is turned ON with voltage of 40 V.

      Click Numerical simulation to Real-time mode transition button followed by Numerical simulation and real-time prototyping Run button to run the model in real-time.

    7. After about 5 s, when Scope1 has logged the data, click Numerical simulation and real-time prototyping Stop button to stop data logging.

      please noteNote

      The motor will continue to run since only data logging was halted.

    8. Make note of the results in a table of following layout:

      Va (V) Ia (A) ωm (rads/s) ke Tem (Nm)
              
              
              
              
              

      where, Va is the motor terminal voltage which can be obtained from the Final value property of Step block, Ia is the motor current logged in Scope, and ωm is the motor speed logged in Scope1. All these values must be measured after reaching steady-state after applying the desired voltage. The remaining table entries are computed based on these values and will be explained in the following steps.

    9. Repeat the previous three steps for different motor terminal voltages, from 10 V to 20 V, in steps of 2 V. The voltage can be changed by changing the Step tool's Final value property.

    10. Turn OFF the DC power supply and unplug the USB cable.

    11. From the above table, ke, which is equal to kt, is computed using Eqn. 10. The final ke is the average of all the computed values.

    12. Using the average kt, compute Tem for each Ia. Plot the result of Tem (y-axis) vs ωm (x-axis).

      Measure the slope of the get an estimate of coefficient of viscous friction B and the y-axis intercept to get the frictional torque due to Coulomb friction Tc.

    13. Close the keEstimate model.

  4. J:

    1. Open the JEstimate model within the same project.

    2. Open the model properties (double click on the blank-space) and copy the property Name.

    3. Go to project properties (double click on project node) and set the Start model/Function to the copied value.

    4. The model is shown below. The motor is given a step voltage of 25 V (Step's Final value property) at time t = 1 s. When the motor has reached its steady-state, the inverter is disabled at t = 3 s. This puts the inverter terminals at high-impedance so that, the inertial energy is lost only in the frictional component.

      back-emf and frictional constant estimator model

    5. Re-connect the USB and turn on the DC power supply.

    6. Ensure that Numerical simulation to Real-time mode transition button is pressed. Click Numerical simulation and real-time prototyping Run button to run the model in real-time.

    7. Open the scope Scope1 to observe the motor speed. When the data has been logged for 5 s, click the Numerical simulation and real-time prototyping Stop button to stop the data logging. The results in Scope and Scope1 will look like this:

      Inertia estimate speed plot

      Inertia estimate current plot

    8. Zoom in on the speed at t = 3s and determine the slope as shown below.

      Speed slope calculation

      In the current's plot, make note of the current's magnitude, before the inverter was disabled at t = 3 s.

    9. Calculate inertia J, using Eqn. 13.

  5. Turn OFF the DC power supply and disconnect all the connections including the USB.

This concludes the experiment on DC motor characterization. The parameters estimated in this experiment will be used in the following experiments, to tune a PI loop to control the motor speed.

Lab report and reading assignment
  1. Attach plot of I'o from La estimation.

  2. Attach plots of Io and ωm for different Vo from ke estimation.

  3. Attach plot of Io and ωm from J estimation.

  4. Attach the table from ke estimation.

  5. List the results of all final parameter values.