I have created a model of a DC Servo motor using electromechanical system modeling. I simulated the motor in Simulink (MATLAB) and compared the data with data obtained from a real motor having similar characteristics. Just to be sure, I also derived the equations and used laplace and ilaplace transforms to get the response in MATLAB. I obtained the following characteristics:

Result of comparison

As expected, the model from Simulink and that of MATLAB (Simulated) are virtually the same. But, I see that the real motor model has a different steady state response. I can see that it has very less transient error, but high steady state error. Any idea why is this happening and if my method of analysis is right at the first place?

I feel there are some non-linear components coming into play here.

The control system used is a PID Controller with filtered derivative (But, just for this example, I've used Kp = 1, Ki = 0, Kd = 0, N = 100, the same constants are even on the real motor). The motor is modeled as having a permanent magnet on rotor to produce a constant magetic field.

I used the following for Simulink Model

enter image description here

The PWM block looks like this:

enter image description here

Kp, Ki and Kd are for PID, N is for the bandwidth of low pass filter on derivative.

And the Motor block looks like this:

enter image description here

sQ(s) is the speed of motor, Ea is the applied EMF. Jm, Dm and Km are the loads acting on the shaft of the motor (not the gearbox output, the motor shaft internally). Nm/No is the gear ratio for getting the speed to the output shaft (output of the gearbox). Ra and La are the resistance and inductance of armature. Kt and Kb are touque and back emf constant of the motor.

  • $\begingroup$ Did you model all the wires and connections? $\endgroup$
    – Solar Mike
    Jun 18 '20 at 7:29
  • $\begingroup$ I did not use the simscape toolbox for this purpose. I used a transfer function block and a block I made to generate a PWM like signal. $\endgroup$ Jun 18 '20 at 7:52
  • $\begingroup$ If your model does not reflect the real device where you are measuring the real data then the results will not match. $\endgroup$
    – Solar Mike
    Jun 18 '20 at 7:54
  • $\begingroup$ Okay, I've added an edit for showing how I've added modeled the motor. Any suggestions? $\endgroup$ Jun 18 '20 at 8:01
  • 1
    $\begingroup$ Do one step a time. First verify if your model matches with the test-setup and how accurate it describes it. Secondly you're working with only a gain. Physical systems often have a dead-band, e.g. play or have to overcome friction, etc. If the controller output is to small, i.e. if the PWM value is smaller than a critical value, it may not deliver sufficient power to turn the motor. Therefore you should first verify your model and its accuracy. $\endgroup$ Jun 18 '20 at 10:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.