4 views (last 30 days)

Show older comments

How can I speicfy that I do not want a heavily underdamped response as seen in the image attached? The addition of the derivative term makes it difficult to implement in simulink enviroment.

--------------------------------------------------------------First script------------------------------------------------------------

clear all, close all, clc

dt = 0.000005; % this is 10^-6 0.000001

PopSize = 40;

MaxGenerations = 25;

s = tf('s');

G =(1.44e09)/((s*s)+5333*s+9.6e07)

options = optimoptions(@ga,'PopulationSize',PopSize,'MaxGenerations',MaxGenerations,'OutputFcn',@myfun);

[x,fval] = ga(@(K)pidtest(G,dt,K),2,-eye(2),zeros(2,1),[],[],[],[],[],options);

--------------------------------------------------------------Second script--------------------------------------------------------

function J = pidtest(G,dt,parms)

s = tf('s');

K = parms(1)+ parms(2)/s

Loop = series(K,G);

ClosedLoop = feedback(Loop,1);

t = 0:dt:0.005; % this indicates length of time to show

e = 1 - step(ClosedLoop,t);

J = sum(t'.*abs(e)*dt);

step(1*ClosedLoop,t)

h = findobj(gcf,'type','line');

set(h,'linewidth',1);

drawnow

---------------------------------------------------------------end of script------------------------------------------------------

Tesfaye Girma
on 5 Mar 2021

figure(3),plot(yt)

title('PID control result. V-Tiger is better than Ziegler-Nichols rule')

xlabel('sample number k (0.01k [sec])')

ylabel('step response')

gv

gi

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

Start Hunting!