Você está na página 1de 2

0001 // TRABALHO AVALIATIVO 1 - CONTROLE ÓTIMO

0002 // DESCRIÇÃO DO PROCESSO (FUNÇÃO DE TRANSFERÊNCIA)


0003 // IRAN SIMÕES NETO / 201706640026
0004 clear;clc;
0005
0006 s = poly(0,'s');
0007 k=0.9;
0008 wn = 2;
0009 csi = 0.3;
0010 Gs = syslin('c', k*wn^2, s^2+2*csi*wn*s+wn^2);
0011
0012 // ANÁLISE DAS RAÍZES
0013 root = roots(flipdim(coeff(Gs.den),2));
0014 disp(root);
0015 //estabilidade externa: sistema BIBO estável -> raízes no SPE
0016
0017 //parametros de discretização/amostragem
0018 ws = 40;
0019 fs = ws/(2*%pi);
0020 Ts = 1/fs;
0021
0022 Gz = dscr(tf2ss(Gs), Ts); //no Matlab: cd2 == dscr
0023 Gz = ss2tf(Gz); disp(Gz);
0024
0025 Bz = coeff(Gz.num); Bz = flipdim(Bz,2);
0026 b0 = Bz(1); b1 = Bz(2)
0027 Az = coeff(Gz.den); Az = flipdim(Az,2);
0028 a1 = Az(2); a2 = Az(3);
0029
0030 //sintonização IMC
0031 zeta = 0.6;
0032 tau = 1;
0033 tauMF = 1/wn;
0034 Kp=k*wn^2;
0035 Kc = 2*zeta*tau/(Kp*tauMF);
0036 Ki = Kc/(2*zeta*tau);
0037 Kd = tau*Kc/(2*zeta);
0038
0039 //Descrição do controlador(LEI DE CONTROLE) - PID (Kp = 3.6, Ki = 0.55, Kd
= 0.55)
0040 Kp = 1.23; Ki = 0.55; Kd = 0.55;
0041 s0 = Kp+Ki*Ts+Kd/Ts;
0042 s1 = -Kp-2*(Kd/Ts);
0043 s2 = Kd/Ts;
0044 t0 = Ki*Ts;
0045
0046 tfinal = 30;
0047 N = round(tfinal/Ts);
0048 t = 0:Ts:N*Ts-Ts;
0049 y(1:2)=0;
0050 u(1:2)=0;
0051 e(1:2)=0;
0052 yr(1:10)=0; yr(11:N)=1;
0053 ISE = 0;
0054 ISU = 0;
0055 for k=3:N
0056 y(k) = -a1*y(k-1) - a2*y(k-2) + b0*u(k-1) + b1*u(k-2);
0057 e(k) = yr(k)-y(k);
0058 u(k)=u(k-1)+s0*e(k)+s1*e(k-1)+s2*e(k-2);
0059 if u(k)>5
0060 u(k)=5;
0061 elseif u(k)<0
0062 u(k)=0;
0063 end
0064 ISE = ISE + e(k)^2;
0065 ISU = ISU + u(k)^2;
0066 end
0067 figure(1)
0068 subplot(211)
0069 plot(t,y,'r');
0070 plot(t,yr);
0071 subplot(212);
0072 plot(t,u);
0073
0074 //Descrição do controlador(LEI DE CONTROLE) - I-PD (Kp = 3.6, Ki = 0.55,
Kd = 0.55)
0075 tfinal = 30;
0076 N = round(tfinal/Ts);
0077 t = 0:Ts:N*Ts-Ts;
0078 y(1:2)=0;
0079 u(1:2)=0;
0080 e(1:2)=0;
0081 yr(1:10)=0; yr(11:N)=1;ISE2=0;ISU2=0;
0082 for k=3:N
0083 y(k) = -a1*y(k-1) - a2*y(k-2) + b0*u(k-1) + b1*u(k-2);
0084 e(k) = yr(k)-y(k);
0085 u(k) = u(k-1)+t0*yr(k)-s0*y(k)-s1*y(k-1)-s2*y(k-2);
0086 ISE2 = ISE2 + e(k)^2;
0087 ISU2 = ISU2 + u(k)^2;
0088 end
0089 IST2 = ISE2 + ISU2;
0090 IST = ISE + ISU;
0091 figure(2)
0092 subplot(211)
0093 plot(t,y,'r');
0094 plot(t,yr);
0095 subplot(212);
0096 plot(t,u);

Você também pode gostar