Controlador por Atraso de Fase (Lag)

Aula de 17/10/2019

Recuperando dados da seção de trabalho anterior:

>> load planta

Considerações iniciais:

controlador_lag_1.jpg

controlador_lag_2.jpg

Analisando nosso caso: \[ BoG(z)=\dfrac{0.00012224 (z+2.747) (z+0.1903)}{(z-0.9048) (z-0.8187) (z-0.3679)} \]

Testando opções de controladores Lag:

Usando matlab:

Ingressando controladores

>> C_Lag1=tf([1 -0.86],[1 -0.95],T)

C_Lag1 =
 
  z - 0.86
  --------
  z - 0.95
 
Sample time: 0.1 seconds
Discrete-time transfer function.

>> C_Lag2=tf([1 -0.91],[1 -0.95],T)

C_Lag2 =
 
  z - 0.91
  --------
  z - 0.95
 
Sample time: 0.1 seconds
Discrete-time transfer function.

>> 

Determinar as \(FTMA(z)\):

>> ftma_C_Lag1=C_Lag1*BoG;
>> ftma_C_Lag2=C_Lag2*BoG;

Levantando o RL do Lag opção 1:

>> rlocus(ftma_C_Lag1)
>> hold on; zgrid(zeta, 0);
>> [K_C_Lag1,poloMF_C_Lag1]=rlocfind(ftma_C_Lag1)
Select a point in the graphics window
selected_point =
   0.9160 + 0.0994i
K_C_Lag1 =
   14.3512
poloMF_C_Lag1 =
   0.9171 + 0.0995i
   0.9171 - 0.0995i
   0.8476 + 0.0000i
   0.3578 + 0.0000i
>> % raio do pólo dominante complexo de C_Lag1
>> r_C_Lag1=sqrt(0.9610^2+0.0994^2)
r_C_Lag1 =
    0.9661
>> 

Gráfico do RL para ftma_C_Lag1:

RL_C_LAag1.jpg

Repetindo o mesmo procedimento para C_Lag2:

>> % projeto de C_Lag2
>> figure; rlocus(ftma_C_Lag2)
>> hold on; zgrid(zeta, 0);
>> [K_C_Lag2,poloMF_C_Lag2]=rlocfind(ftma_C_Lag2)
Select a point in the graphics window
selected_point =
   0.8897 + 0.1269i
K_C_Lag2 =
   22.5588
poloMF_C_Lag2 =
   0.9111 + 0.0000i
   0.8882 + 0.1271i
   0.8882 - 0.1271i
   0.3512 + 0.0000i
>> % calculando raio do pólo dominante de C_Lag2
>> r_C_Lag2=sqrt(0.8897^2+0.1269^2)
r_C_Lag2 =
    0.8987
>> 

RL para ftma_C_Lag2:

RL_C_LAag2.jpg

Fechando as malhas:

>> % Fechando malha para C_Lag1:
>> ftmf_C_Lag1=feedback(K_C_Lag1*ftma_C_Lag1, 1);
>> figure; step(ftmf_C_Lag1)
>> % calculando erro...
>> erro_C_Lag1=(1-dcgain(ftmf_C_Lag1))/1*100
erro_C_Lag1 =
   33.2318
>> % fechando malha para C_Lag2
>> ftmf_C_Lag2=feedback(K_C_Lag2*ftma_C_Lag2, 1);
>> figure; step(ftmf_C_Lag2)
>> erro_C_Lag2=(1-dcgain(ftmf_C_Lag2))/1*100
erro_C_Lag2 =
   33.0001
>> figure; step(ftmf_C_Lag1, ftmf_C_Lag2)
>> figure; step(ftmf_C_Lag1, ftmf_C_Lag2, ftmf_PI) 

Resposta ao degrau do C_Lag1:

step_C_Lag1.jpg

Resposta ao degrau do C_Lag2:

step_C_Lag2.jpg

Comparando os 2 controladores:

step_C_Lag1_C_Lag2.jpg

Comparando os Controladores de Atraso com o PI:

step_C_Lag1_C_Lag2_PI.jpg

Encerrando seção de trabalho no Matlab:

>> save planta