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:
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
The PWM block looks like this:
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:
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.