I'd like to know if someone could help me to tune my PID controller. I'm new in the world of control systems and I'm stuck with the tuning.

I've been working in the next system of a DC motor that comes from the modeling of the system. I used real variables to get J B K.

Block Diagram

I've tried with Z-N tuning method, but it does not seem to work.

First of all, with this method I opened the loop and increased little by little the P gain. I expected the system to oscillate but it does not happen, it always behaves like a linear system.

This was the result:

enter image description here

This is the DC motor's TI that I'm using:

enter image description here

The variable J (inertia) is expressed in gcm2, K in mNm/A and the viscous friction B constant I calculated from the 2nd Newton L.

enter image description here

Does anyone have a tip for my system, or am I doing something wrong?

  • 1
    \$\begingroup\$ You have very little information in your question and an almost legible drawing. "I used real variables ..." What were they? "I've tried with Z-N tuning method, but it does not works." What did you expect and what did you get. A major edit is required with details of the motor and some characteristics along with all your variables. \$\endgroup\$
    – Transistor
    Sep 23, 2021 at 18:29
  • \$\begingroup\$ Since you are using Z-N, your teacher indicated that you are not paying attention to Tf settings in the simulator you are using. Tf wasn't in the Z-N, right? Tf is to reduce high frequency components gain on derivative term (Kd.S/(1+S.Tf). For a traditional Z-N, start with Tf=0. \$\endgroup\$
    – jay
    Sep 23, 2021 at 18:45

1 Answer 1


enter image description here

Here you have PID-DC motor model in xcos Scilab. Motor model starts from Kt, before it is PID. (If you would make it in Scilab, connect red outs to clk so you can have graphs).

\$K_t - engine\ gain \$

\$J - engine\ rotor\ inertia\$

\$t_i - simulation \ step\$ (Is it your TF?)

To calculate PID properly you need to watch out where your P regulator is placed. If it's in series you need to remember that K gain is applied before integral. Mine is in parallel.

For my model simple method for PID is:

\$K = 0.6 \cdot \frac{J}{K_t \cdot t_i}\$

\$T = \frac{4 \cdot t_i}{K}\$

P.S. I don't know what do you mean by JBK and TF, so I don't fully understand your question.

Edit: Your schematic is not a DC motor or PID model in my opinion. It is an integral with feedback with output to integral, so you get constant integrated after feedback loop, which gives you y=ax.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.