Você está na página 1de 10

UNIVERSIDADE FEDERAL DO CEARÁ – UFC

CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
ANÁLISE E CONTROLE DE SISTEMAS NÃO LINEARES
SEMESTRE 2023.1

ESTABILIZAÇÃO EM TORNO DE PONTO DE EQUILÍBRIO NÃO NULO

EQUIPE:
GABRIEL FONSECA LEITE - 500955
JÉSSICA FEITOSA DE OLIVEIRA - 472961

PROFESSOR: DR. DIEGO DE SOUSA MADEIRA

26 DE MAIO DE 2023
1 PLANTA ESCOLHIDA

A planta abordada consiste em um conversor Buck DC-DC, normalmente


controlado por um PI, mas sua atuação só é válida apenas em torno um ponto operacional
e para obter uma vasta estabilidade de sinal, são usados métodos de controle não linear,
por exemplo, métodos de controle polinomial.

Junto com tecnologia eletrônica de rápido crescimento, conversores DC-DC são


extensivamente utilizados em provedores de energia DC e DC aplicações de acionamento
de motores. Na existência de carga de saída e flutuações de tensão de entrada, tensão de
saída do DC-DC conversores devem ser ajustados para um nível exigido.

Figura 01 –Circuito equivalente de um conversor Buck DC-DC

Conforme a Figura 01 onde 𝑅𝐿 e 𝑅𝐶 são resistências parasitas do indutor e


capacitor, respectivamente. A resistência do MOSFET é denotada por 𝑅𝑀 e 𝑉𝛾 é a tensão
direta do diodo de potência. Desta forma, o conversor DC-DC pode ser modulado pela
seguinte equação dinâmica:
A corrente de indutância e a tensão de capacidade são indicadas por 𝑖𝑡 e 𝑣𝑡 ,
respectivamente. A taxa de serviço 𝑢𝑡 do MOSFET deve estar entre 0 e 1. Como o vetor
de entrada é dependente do estado, então o sistema é um sistema não linear. Onde, pode
ser adotado o seguinte modelo de conversor DC-DC Buck:

Onde,

É evidente que o circuito do conversor DC-DC Buck é modelado como um


sistema polinomial uma vez que a matriz 𝐵(𝑥𝑡 ) é constante e é escolhido no intervalo de
[𝑖𝑚𝑖𝑛 , 𝑖𝑚𝑎𝑥 ], a representação do sistema será:

E nosso principal objetivo é projetar uma razão de trabalho entre 0 e 1 e


alcançando a referência de rastreamento 𝑦𝑟𝑒𝑓 .

2 SIMULAÇÃO GRÁFICA

Para a simulação utilizamos os dados da tabela abaixo, sendo realizada a


simulação da planta em malha aberta e em malha fechada como apresentado nos anexos
para que pudéssemos analisar as trajetórias do sistema como mostras as figuras abaixo.
Figura 02 – Análise de trajetória em malha aberta.

Figura 03 – Análise de trajetória em malha fechada controlada para a origem.


Figura 04 – Sistema controlado para fora da origem.

O sistema controlado para fora da origem quando a tensão(x2b) é igual a 3V e os


parâmetros ub = -0.1143 e a corrente(x1b) = 0.5 A

Da mesma forma foi simulado através dos códigos apresentados nos anexos a
dissipatividade global e local do sistema com os resultados apresentados abaixo:

1. Dissipatividade
Residual norm: 2.723e-06

iter: 14
feasratio: 1.0361
pinf: 0
dinf: 0
numerr: 1
r0: 2.4754e-07
timing: [0.1420 1.1530 0.0250]
wallsec: 1.3200
cpusec: 1.5156
Onde foi possível encontrar os valores de

V =

3.7046e-06*x1^4 - 5.7034e-06*x1^3*x2 + 7.0359e-06*x1^2*x2^2 -


4.358e-06 *x1*x2^3 + 1.096e-06*x2^4 - 2.5691e-05*x1^3 + 1.257e-
05*x1^2*x2 - 8.5183e-06*x1*x2^2 + 2.0429e-06*x2^3 + 0.0018357*x1^2 -
0.0010985*x1 *x2 + 0.00214*x2^2

T =

1.2548*x1^2 - 0.78522*x1*x2 + 1.5046*x2^2

Ch =

0.1577 0.9737

K =

11.4492

Dessa forma é possível, também obtemos a matriz QSR de dissipatividade:

Qvar =

20.4489

Svar =

-1.0758

Rvar =

0.0940
3 REFERÊNCIAS BIBLIOGRÁFICAS

1. I. Iben Ammar , H. Gassara , Ah. El Hajjaji, M. Chaabane, DC-DC Buck


Converter Polynomial Tracking Control Design With Saturation
Constraint, 60th IEEE Conference on Decision and Control, Austin,
Texas. Dec. 13-15, 2021
2. Diego de Sousa Madeira. Análise e Controle de Sistemas Não Lineares -
Notas de Aula. 2023.
% Inicialização
clear all
close all
clc

% Parâmetros
Res = 6;
Rl = 48.8e-3;
Rc = 0.162;
Rm = 0.27;
E = 30;
L = 98.58e-3;
Vd = 0.82;
C = 202.5e-6;

% Variáveis de Estado
syms x1 x2

Ch = [(Res*Rc)/(Res+Rc) Res/(Res + Rc)];

A = [-(Rl + (Res*Rc)/(Res+Rc))/L -(Res/(L*Res + L*Rc));


Res/(C*Res + C*Rc) -1/(C*Res + C*Rc)];

B = [(-Rm*x1 - E)/L;
0];

[x1, x2] = meshgrid(-10:0.1:10, -10:0.1:10);


dx1 = (-(Rl + (Res*Rc)/(Res*Rc))/L).*x1 -(Res/(L*Res + L*Rc)).*x2;
dx2 = x1.*Res/(C*Res + C*Rc) -x2./(C*Res + C*Rc);
figure (1)
streamslice(x1, x2, dx1, dx2,2)

%Inicialização do método iterativo


pvar x1 x2 x3 u
dpvar lamb r ub
vars =[x1;x2;u];

Ch = [(Res*Rc)/(Res+Rc) Res/(Res + Rc)];


dx1 = (-(Rl + (Res*Rc)/(Res+Rc))/L).*x1 -(Res/(L*Res + L*Rc)).*x2;
dx2 = x1.*Res/(C*Res + C*Rc) -x2./(C*Res + C*Rc);
g =[(-Rm*x1 - E)/L; 0];
h = Ch*[x1;x2];
f = [dx1; dx2];

prog = sosprogram(vars); %definir as condições

% declarar a funcao de lyapunov V(x)


[prog,V] = sospolyvar(prog,[monomials([x1,x2],[2,3,4])]);
[prog,T] = sospolyvar(prog,[monomials([x1,x2],[2])]);

[prog, Q] = sospolymatrixvar(prog, monomials(vars, 0), [length(h), length(h)],


'symmetric');
[prog, S] = sospolymatrixvar(prog, monomials(vars, 0), [length(h), length(u)]);
[prog, R] = sospolymatrixvar(prog, monomials(vars, 0), [length(u), length(u)],
'symmetric');

prog = sosdecvar(prog,[lamb r ub]);

i=0;
S0=zeros(length(h), length(u));
R0=eye(length(u), length(u));
imax=15;
lamb0=10;

Vx1 = diff(V,x1);
Vx2 = diff(V,x2);
GradV = [Vx1 Vx2];
HessV = [diff(Vx1, x1) diff(Vx1, x2);...
diff(Vx2, x1) diff(Vx2, x2)];

prog1 = prog

% Método Iterativo
while (i<imax)
Ls=[-inv(R0)*S0' -1]';
expr = -((GradV*(f+g*u)+ T) -h'*Q*h - 2*h'*S*u - u'*R*u);
prog = sosineq(prog1,expr);
expr2 = [Q S; S' R] + Ls*[S' R] + [S;R]*Ls' + lamb*[eye(length(h)) zeros(length
(h), 1); zeros(1, length(h)) zeros(1, 1)];
prog = sosineq(prog,-expr2);
expr3 = [x1; x2]'*(HessV*[x1; x2]) - r*[x1; x2]'*[x1; x2];
prog = sosineq(prog, expr3);
prog = sosineq(prog, r);
prog = sosineq(prog,V);
prog = sosineq(prog,-1-S);
prog = sosineq(prog,T - 1e-8*(x1^2 + x2^2));
prog = sosineq(prog,0.1-R);

prog = sosineq(prog,lamb0-lamb)

sol = sossolve(prog);

V = sosgetsol(sol, V)
T = sosgetsol(sol, T)
r = sosgetsol(sol, r)
lambvar = double(sosgetsol(sol, lamb))
Qvar = double(sosgetsol(sol, Q))
Svar = double(sosgetsol(sol, S))
Rvar = double(sosgetsol(sol, R))
if (lambvar<=0 || (Qvar - Svar*inv(Rvar)*Svar')<=0)
K = -inv(Rvar)*Svar;
break
end
i=i+1;
S0=Svar;
R0=Rvar;
lamb0=lambvar
clear prog;
end

% Matriz de Saída do Modelo


Ch = [(Res*Rc)/(Res+Rc) Res/(Res + Rc)]

% Estabilizando na orgiem
[x1, x2] = meshgrid(-10:0.1:10, -10:0.1:10);
h = (Res*Rc)/(Res+Rc)*x1 + (Res/(Res + Rc))*x2;
dx1 = (-(Rl + (Res*Rc)/(Res*Rc))/L).*x1 -(Res/(L*Res + L*Rc)).*x2 + ((-Rm.*x1 - E)
/L)*K.*h;
dx2 = x1.*Res/(C*Res + C*Rc) -x2./(C*Res + C*Rc);

figure (2)
streamslice(x1, x2, dx1, dx2,2)

% Solver para achar os valores de x1b e ub


syms ub x1
x2 = 3;
eq1 = 0 == (-(Rl + (Res*Rc)/(Res*Rc))/L).*x1 -(Res/(L*Res + L*Rc)).*x2 + ((-Rm.*x1
- E)/L).*ub;
eq2 = 0 == x1.*Res/(C*Res + C*Rc) -x2./(C*Res + C*Rc);
solve([eq1,eq2],[x1,ub]);

% Estabilizando fora da origem


[x1, x2] = meshgrid(-10:0.1:10, -10:0.1:10);
x1b = 0.5;
x2b = 3;
ub = -0.1143;
h = (Res*Rc)/(Res+Rc)*x1 + (Res/(Res + Rc))*x2;
h_b = (Res*Rc)/(Res+Rc)*x1b + (Res/(Res + Rc))*x2b;
u = K*(h-h_b)+ub;
dx1 = (-(Rl + (Res*Rc)/(Res*Rc))/L).*x1 -(Res/(L*Res + L*Rc)).*x2 + ((-Rm.*x1 - E)
/L).*u;
dx2 = x1.*Res/(C*Res + C*Rc) -x2./(C*Res + C*Rc);

figure (3)
streamslice(x1, x2, dx1, dx2,2)

Você também pode gostar