Está en la página 1de 2

syms s zheta wn ts Kp Ki Ki Kd1 Kd2 Kd3

%% Ingresar planta
gp=4;
num=[-3.752*10e-13]

num = -3.7520e-12

den=[1 0 26.74 0 9.2*10e-14]

den = 1×5
1.0000 0 26.7400 0 0.0000

% Importante ingresar la planta aqui abajo


numP=-1.294e-13;
denP=s^4+26.74*s^2+ 9.2e-14;
%% Control PID2
numPD=[Kd3 Kd2 Kd1 Kp Ki];
numC=Kd3*s^4+Kd2*s^3+Kd1*s^2+Kp*s+Ki;
denPD=[1 0];
denC=s;
%% Polinomio deseado(INGRESAR EL GRADO)
gradoPD=5;%Ingresar grado del polinomio deseado
ts=10;%Ingresar tiempo de establecimiento
zheta=0.7;%Ingresar factor de amortiguamiento
wn=4.6/(zheta*ts);
u=[1 2*zheta*wn wn^2];
v=[1 5*zheta*wn];
vv=conv(v,v);
vvv=conv(vv,v);
pdesg2=u;%Polinomio deseado grado 2
pdesg3=conv(u,v);%Polinomio deseado grado 3
pdesg4=conv(u,vv);%Polinomio deseado grado 4
pdesg5=conv(u,vvv);%Polinomio deseado grado 5
pdesg6=conv(pdesg5,v);%Polinomio deseado grado 6

%Eleccion del grado del polinomio deseado


switch gradoPD
case 2
PDES=pdesg2;
case 3
PDES=pdesg3;
case 4
PDES=pdesg4;
case 5
PDES=pdesg5;
case 6
PDES=pdesg6;
otherwise
disp('Ingrese el grado del polinomio deseado')
end

%% Polinomio caracteristico (1+CP=0)


Pcar=denC*denP+numC*numP;
Pcar=expand(Pcar);

1
Pcar=simplify(Pcar);
Pcar=vpa(Pcar);
Pcar=coeffs(Pcar, s);
Pcar=flip(Pcar);
Pcar=Pcar/Pcar(1);

%% Solucionar sistema de ecuaciones


[Kd3, Kd2, Kd1, Kp, Ki]=solve(PDES==Pcar,Kd3,Kd2, Kd1, Kp, Ki);
disp('Constantes de control')

Constantes de control

Kd3=double(Kd3);
Kd2=double(Kd2);
Kd1=double(Kd1);
Kp=double(Kp);
Ki=double(Ki);
disp('Kd3 =');

Kd3 =

disp(Kd3);

-6.0433e+13

disp('Kd2 =');

Kd2 =

disp(Kd2);

3.1609e+13

disp('Kd1 =');

Kd1 =

disp(Kd1);

-2.2988e+14

disp('Kp =');

Kp =

disp(Kp)

-1.3947e+14

disp('Ki =');

Ki =

disp(Ki)

-4.0604e+13

También podría gustarte