Tuning PID controller non-linear equation

6 views (last 30 days)
Afzal Ali
Afzal Ali on 26 Nov 2016
I am analysing the torque required to produce a desired angle for a robot finger link. The equation I have used to model the system is:
(I + mL^2)theta(t)''= mLgcos(theta) - cL(theta(t)') + applied torque
where, I is the mass moment of inertia of the link (2.35e-4 kg.m^4), m is the mass of the link (0.079 kg), L is the distance from the center of mass to the joint (0.041 m), g is gravitational acceleration, c is the damping coefficient (0.05 Nms/rad), theta(t) is the angular displacement of the link, theta(t)' is the angular velocity, theta(t)'' is the angular acceleration.
And my transfer function (theta/applied torque) in the frequency domain is:
(s^2+1)/(k1*s^4 + k2*s^3 + k1*s^2 + k2*s - k3)
where, k1 = I + mL^2, k2 = cL, k3 = mLg
I am using a PID controller to simulate the response of the link, however, I am having difficulty in tuning the PID. I have tried the automatic tuning functionality, however, the response I get from the model is different to that shown by the tuner.
The response shows massive overshoot and underdamping, regardless of the PID parameters used. I have attached my simulink file.

Answers (1)

Arkadiy Turevskiy
Arkadiy Turevskiy on 6 Dec 2016
I am able to get a much better response than you have in the attached model. When you launch PID Tuner, just increase the speed of the response and it will find a decent design.
Simulation results with your PID design:
Designing PID with PID Tuner:
Tuned gains:
Simulation results with tuned gains:
HTH

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!