Sie sind auf Seite 1von 7

Simulao do Projeto em Malha Aberta e Malha

Fechada com PWM e ADC


Caique Miranda, Eric B. Dilger, Lucas Ferreira
Universidade Tecnolgica Federal do Paran - ZIP 85503-390, Pato Branco PR

cai.que.93@hotmail.com, ericdilger@gmail.com, lucasferreira@utfpr.edu.br


Resumo Este documento aborda um experimento
didtico relacionado ao controle de sistemas em tempo discreto.
Para controlar a tenso de sada de um conversor buck,
inicialmente determinam-se os valores dos componentes da planta.
Em seguida, projetado um sistema condicionador de sinal que
permita que aquisio de dados seja feita por um
microcontrolador. Realizando a simulao do sistema em malha
aberta e em malha fechada, projeta-se um conversor PID para que
a planta aprensente uma resposta satisfatria.
Palavras-Chave

buck, controlador PID, simulao,

discrete.

I.

INTRODUO

Este trabalho prope o desenvolvimento de um sistema


de controle para um conversor buck. Deseja-se que a tenso de
sada do buck da Figura 1, seja igual a referncia. Devido
distrbios, interferncias, perdas e limitaes dos dispositivos,
no possvel obter essa exatido. Porm, o uso de filtros
elimina rudos e um controlador PID permite ajustar a reposta
em malha fechada. Portanto, possvel se obter um sinal
satisfatrio e prximo o suficiente do sinal de referncia
desejado.
CIRCUITO DE POTNCIA

II.

MODELAGEM

Inicialmente necessrio modelar o sistema a partir do


sinal de referncia e dos parmetros desejados em relao ao
controle da planta. Na Figura 2 pode-se observar o sinal de
referncia utilizado, enquanto a Tabela I apresenta os valores
iniciais da planta e os parmetros do sistema.

VIN

no microcontrolador gera uma ao de controle para a chave do


conversor buck, representada por um sinal PWM (Pulse-Width
Modulation). Uma vez que o circuito de instrumentao reduz
a amplitude do sinal para fins de processamento de dados, o
sinal de PWM gerado precisa ser amplificado para voltar ao
circuito de potncia e atuar na chave do conversor buck. Para
tal usado um driver, que alm de amplificar o sinal, fornece
isolao entre o circuito de potncia e o circuito de controle.

Figura 2 Sinal de referncia.


Instrumentao

PWM

AD

AD

Driver

C(Z)

DSP
CIRCUITO DE CONTROLE E INSTRUMENTAO DE SINAL

Figura 1 Diagrama de blocos do sistema.

O sinal de sada do conversor pode ser medido por um


sensor e enviado um microcontrolador para que seja
determinada uma ao de controle. Para que isso seja possvel,
necessrio que o sinal proveniente do circuito de potncia seja
filtrado e adequado dentro da faixa de operao do
microcontrolador, tais requisitos so cumpridos pelo circuito de
instrumentao. O microcontrolador recebe amostras atravs do
conversor AD (Analgico-Digital). Aps o processamento
dessas amostras, o controle implementado em tempo discreto

Parmetros
Frequncia de amostragem
Frequncia fundamental
Tenso de entrada do conversor
Tenso de sada do conversor
Potncia de sada

Valor
15 KHz
50 Hz
24 V
12 V
10 W

Tabela I Parmetros do sistema.

A. Projeto do Conversor Buck


O circuito do conversor buck est representado na
Figura 3. Pode-se determinar o valor do resistor R sabendo-se
a potncia e a tenso na sada do conversor, como representa a
Equao 1.
=

(I)

+
Vin

V1

IL

Is

B. Condicionamento de Sinais

Iout
Ic
C

Controle

Vout

ID

Para modelar o filtro passa-baixas, pode-se adotar a


topologia Sallen and Key, como mostra a Figura 5, e utilizar a
aproximao para resposta do tipo Butterworth.

Figura 3 Circuito do conversor buck.

O sistema pode ser modelado do ponto de vista do


controle contnuo. Com o auxlio da Figura 4, as frequncias
podem ser planejadas, para assim determinar valores para os
demais componentes, da planta e do filtro passa-baixas,
utilizando as Equaes (II) e (III).
() =
() =

(II)

2
2 +2 +

Figura 5 Circuito Sallen and Key


Fonte: Apostila Texas Instruments (2008)

(III)

2
2 +2 +

Os valores dos componentes deste circuito, podem ser


determinados fixando-se R1 = R 2 e comparando a Equao
(III) com a equao (IX).
(s) =

A0

(IX)

2
1+WPB C1 (R1 +R2 )s + W2
PB R1 R2 C1 C2 s

O condicionamento de sinais, alm de filtrar o sinal,


tambm responsvel por adequar o sinal dentro de uma
amplitude de tenso para o microcontrolador, o que pode ser
representado por um ganho K.
Figura 4 Resposta em frequncia do sistema.

Onde () e () so as funes de transferncia da planta


e do filtro, na forma geral de segunda ordem. O fator de
amortecimento pode ser escolhido para as equaes
anteriores, porm o fator de amortecimento da planta
necessrio para determinar os valores de L e C na equao (IV).
De outra forma, a frequncia angular pode ser calculada
atravs das Equaes (V) e (VI).
= 2 =
= 2

(V)
(VI)

As frequncias e tambm podem ser determinadas


utilizando as Equaes (VII) e (VIII), onde 1 representa a
frequncia fundamental do sinal de referncia e representa a
frequncia de amostragem.
=

1
2

(IV)

C. Controlador PID
Para controle do sistema pode-se adotar um
controlador do tipo PID. A Funo de transferncia () do
controlador est apresentada na Equao (X).
() = (1 +

+ )

(X)

Pela regra da sintonia de Ziegler-Nichols, possvel determinar


os valores de , .

III.

RESULTADOS

Neste trabalho deseja-se simular o comportamento do


sistema em malha aberta e em malha fechada. Para desenvolver
tal simulaes utiliza-se auxlio de um software de simulao.
Os valores dos componentes e o comportamento do sistema
programado em um script, anexado ao fim deste documento.

= 1 .

(VII)

A. Simulao em Malha Aberta

= 0,7 .

(VIII)

Para simulao em malha aberta, so feitas trs


simulaes, as quais so apresentadas nas Figuras 6, 7 e 8.

Figura 6 Sinal de referncia vs PWM.

Figura 8 Ao de controle vs PWM e Sinal medido vs Sada em malha


fechada.

Figura 7 Condicionamento de sinais: Entrada vs Sada.


Figura 6 Sinal de referncia vs Sada em malha fechada e Sinal de referncia
vs Erro.

IV.

CONCLUSES

Com o estudo proposto, possvel analisar, modelar e


implementar um controlador e um sistema condicionador de
sinais para o buck proposto. As simulaes validam o modelo
para que o mesmo possa ser implementado.

V.

Figura 7 Tenso de referncia vs Tenso de sada.

B. Simulao em Malha Fechada


Para a simulao em malha fechada so feitas outras
quatro simulaes, que so apresentadas nas Figuras 8 e 9.

REFERNCIAS

[1] Active Filters Design Techniques. Texas Instruments


Corporated, 2008.
[2] SOUSA, K. M; MARANGONI, F.; MORENO, J. K;
CARATI, E. G; MARTINS; STEIN, C. M. O; SILVA, J. C. C;
A Power Electronics and Digital Control Experiment
Applied to Teaching Interdisciplinary in Electrical
Engineering. Universidade Tecnolgica Federal do Paran,
2011.

%% SIMULAO EM MALHA FECHADA


ANEXOS
%% Sinal de referncia
function ref_trapezoidal =
sinal_ref(fs,f1,nCiclos)
fs=15000;
% Frequencia de
chaveamento 15kHz
f1=50;
% Frequencia
Fundamental
Ts=1/fs;
% Periodo de
amostragem
nCiclos=4;
% Numero de ciclos
do sinal de referencia
nAmostras=fs/f1;
% Numero de amostras
em um ciclo do sinal de referencia = 300
N=nCiclos*nAmostras; % Numero total de
amostras = 1200
ct=0;
Ns=nAmostras/20;
% nAmostras/ms
ref_trapeiodal=zeros(1,nAmostras);
t=0;
aux=0;
for k= 1:N
t(k) = (k)*Ts;
ct = ct+1;
ref_trapezoidal(1)=6;
if ct < Ns
ref_trapezoidal(k) = 6 +
(12/15)*ct;
else
ref_trapezoidal(k) = 18;
end
if ct <(nAmostras/2)+Ns && ct>
(nAmostras/2)
aux = aux+1;
ref_trapezoidal(k) = 18 (12/15)*aux;
end
if ct >= (nAmostras/2)+Ns
ref_trapezoidal(k) = 6;
end
if ct == nAmostras
ct=0;
aux = 0;
end
end
ref_trapezoidal;
%plot (t, ref_trapezoidal)
hold on
%stem(t,ref_trapezoidal)
end

close all;
clear all;
clc;
%

DEFINE VALOR DO RESISTOR

Vo=12; P=10;
R=Vo^2/P;
%

PARAMETROS DO PROJETO

fs=15000;
chaveamento 15kHz
f1=50;
Fundamental
Ts=1/fs;
amostragem
T1=1/f1;
fundamental
Vin = 24;
no conversor buck

% Frequencia de
% Frequencia
% Periodo de
% Periodo
% Tensao de entrada

flc=sqrt(f1*fs);
% Frequencia de
filtro LC
fpb=0.7*sqrt(flc*fs); % Frequencia de
corte filtro PB
nCiclos=4;
%
do sinal de referencia
nAmostras=fs/f1;
%
amostras em um ciclo do
referencia = 300
N=nCiclos*nAmostras; %
amostras = 1200
Ns=nAmostras/20;
%

Numero de ciclos
Numero de
sinal de
Numero total de
nAmostras/ms

ref_trapeiodal=zeros(1,N);
L=R*sqrt(1.44)/(2*pi*flc);
C=L/(1.44*R^2);
zetalc=0.6;
- 0.8
zetapb=0.3;
- 0.4
wlc=2*pi*flc;
wpb=2*pi*fpb;

% Indutor
% Capacitor
% philc = 0.5
% phipb = 0.2
% Wn LC
% Wn Filtro

%% FUCAO DE TRANSFERENCIA PLANTA CONTINUA


% Gs = wlc^2 / (s^2 + 2*zetalc*wlc*s +
wlc^2);
n=[0 0 wlc^2];
d=[1 2*zetalc*wlc wlc^2];
Gs=tf(n,d);

figure(1)
step(Gs)
title('Resposta ao degrau de G(s)');
%% FUNCAO DE TRANSFERENCIA FILTRO PB CONTINUA
% G = wpb^2 / (s^2 + 2*zetapb*wpb*s +
wpb^2);

a1=dd(2);
a0=dd(3);
figure;
step(Gs,Gz,Gsp);
title('Resposta ao degrau unitario de
G(s), G(z) e Gsp(z)');
legend('G(s)','G(z)','Gsp(z)');
%% SUPERDISCRETIZACAO DO FILTRO PB

npb=[0 0 wpb^2];
dpb=[1 2*zetapb*wpb wpb^2];
Gpb=tf(npb, dpb);

Gpbsp = c2d(Gpb,Ts/bitsPWM); %Gpb


discretizado

%% FUNCAO DE TRANSFERENCIA LC - DISCRETA


- C2D
Gz=c2d(Gs,Ts);
figure;
step(Gs,Gz);
title('Resposta ao degrau unitario de
G(s) e G(z)');
legend('G(s)', 'G(z)');
%% SIMULACAO
N=nCiclos*round(T1/Ts);
% Numeros de
amostras na simulacao
A=6;
% Amplitude da
referencia x(t)
off=12;
% Offset sinal
de referencia x(t)
dutycicle=50;
% ton/toff
E=Vin;
% Amplitude do
PWM
bitsPWM=2^8;
% Numero de
bits do PWM;
x=zeros(1,N);
% Tempo
discreto
x=sinal_ref(fs,f1,nCiclos) % Referencia
figure
plot(x);
title('Sinal de Referencia');
%% SUPERDISCRETIZACAO DA PLANTA
% G(s) superdiscretizado
Gsp=c2d(Gs,Ts/bitsPWM);
Discretizacao c2d
[nd,dd] = tfdata(Gsp,'v');
diferenca
b2=nd(1);
b1=nd(2);
b0=nd(3);
a2=dd(1);

%
% Equacao

% Equacao diferenca
[ndf,ddf] = tfdata(Gpbsp,'v'); % Retorna
vetor
b2f = ndf(1);
b1f = ndf(2);
b0f = ndf(3);
a2f = ddf(1);
a1f = ddf(2);
a0f = ddf(3);
%figure;
%step(Gpb,Gpbz_sup);
%title('Resposta ao degrau unitario de
Gpb(s) e Gpb_sup(z)');
%legend('Gpb()s', 'Gpb_sup(z)');
%%

DECLARACAO DE VARIAVEIS GERAIS

e=zeros(1,N);
% erro
u=zeros(1,N);
% controle
up=zeros(1,N);
%
proporcional
ui=zeros(1,N);
% integral
ud=zeros(1,N);
% derivativo
upid=zeros(1,N);
% acao de
controle
pwm=zeros(1,N);
% largura do
pwm
ym=zeros(1,N);
% tempo
discreto quantizado
ynsT=zeros(1,N);
% saida
amostrador
ynsR=zeros(1,N);
% sinal de
retencao
ynsT=zeros(1,N);
% sinal
amostrado pelo ADC
yns=zeros(1, N*bitsPWM);
% Saida
condicionamento de sinais - apos offset
y=zeros(1,N*bitsPWM);
% saida
yng=zeros(1,N*bitsPWM);
% tempo
continuo
yf=zeros(1,N*bitsPWM);
% sinal apos
o filtro passa baixa

maxAmp=3;
maxima
offset=maxAmp/2;
K=maxAmp/E;
Q=2^16;
%%

% amplitude
% offset

GANHOS CONTROLADOR PID

kp = 0.1;
ki = 0.07;
kd = 1.2 ;

% Ganho proporcional
% Ganho integral
% Ganho derivativo

%% CONTROLE
for k = 2:N
Numero de ciclos por simulacao
t(k) = k*Ts;
Tempo entre uma amostra e outra
e(k) = x(k) - ym(k);
Erro do sistema
up(k) = kp*e(k);
Controlador proporcional
ui(k) = ki*e(k) + ui(k-1);
Controlador integral
ud(k) = kd*(e(k) - e(k-1));
Controlador derivativo
upid(k) = up(k)+ui(k)+ud(k);
acao de contole PID
u(k) = upid(k);
Acao de controle

%
%
%
%
%
%
%
%

% Converter u(k) em pwm(k)


pwm(k) = abs(u(k))*bitsPWM/E;
%
lagura do sinal pwm
su = sign(u(k));
%
retorna 1 se u(k) > 0 e 0 se u(k) < 0 e 1 se =0
if(su == -1)
su = 0;
end
% Laco da superdiscretizacao (PWM)
for cc = 1:bitsPWM % laco variando de
1 ao perido
kc = k*bitsPWM+cc;
t_sup(kc) = kc*(Ts/bitsPWM);
% Definicao do PWm(kc) a partir
de pwm(k)
if cc <= pwm(k)
PWM(kc)= su*E; % sinal fisico
continuo kc tempo continuo
end
if cc> pwm(k)
PWM(kc) =0;
end
% Equacao diferenca para o
sistema superdiscretizado (Ts/P)

y(kc+1) = -a1*y(kc) - a0*y(kc1)+b1*PWM(kc)+b0*PWM(kc-1); % tempo


continuo
yng(kc+1) = K*y(kc+1); % sinal
y(kc +1) ajustado para amplitude de
tensao maxima
% Equacao diferenca filtro Gpb
yf(kc+1) = -a1f*yf(kc)-a0f*yf(kc1)+b1f*yng(kc) + b0f*yng(kc-1);
% Ajuste de offset
yns(kc+1) = yf(kc+1) +offset;
end
% Amostragem e retencao
ynsT(k+1)= yns(kc+1);
% Quantizacao
ym(k+1) =
round(ynsT(k+1)*Q/maxAmp)/Q*maxAmp;
%Ajuste para valor medida
ym(k+1) = (ym(k+1)- offset)/K;
end
t_sup(1:2*bitsPWM) =
(Ts/bitsPWM)*(1:2*bitsPWM);
figure;
subplot(2,1,1)
plot(t, sinal_ref)
hold on
plot(t_sup,y(1:kc))
legend('Sinal Ref','Saida em malha
fechada')
hold off
subplot(2,1,2)
plot(t,e(1:k), 'r')
hold on
plot(t, sinal_ref)
legend('Erro', 'Sinal de referncia')
hold off
figure
subplot(2,1,1)
plot(t_sup,PWM(1:kc), 'r')
hold on
plot(t, u(1:k))
legend('PWM','Acao de controle')
hold off
subplot(2,1,2)
plot(t_sup,yng(1:kc))
hold on
plot(t_sup,y(1:kc))
legend('Sinal medido','Saida em malha
fechada')

%% SIMULAO EM MALHA ABERTA


for k = 2:N
Numero de ciclos por simulacao
t(k) = k*Ts;
Tempo entre uma amostra e outra

%
%

% Converter u(k) em pwm(k)


pwm(k) = abs(x(k))*bitsPWM/E;
%
lagura do sinal pwm
su = sign(x(k));
%
retorna 1 se u(k) > 0 e 0 se u(k) < 0 e 1 se =0
if(su == -1)
su = 0;
end
% Laco da superdiscretizacao (PWM)
for cc = 1:bitsPWM % laco variando de
1 ao perido
kc = k*bitsPWM+cc;
t_sup(kc) = kc*(Ts/bitsPWM);
if cc <= pwm(k)
PWM(kc)= su*E;
end
if cc> pwm(k)
PWM(kc) =0;
end

if k> 3
y(kc+1)=1.998*y(kc)-0.9983*y(kc1)+1.006*10^-6*PWM(kc)+1.006*10^6*PWM(kc-1);
yf(kc+1) = -a1f*yf(kc)-a0f*yf(kc1)+b1f*yng(kc) + b0f*yng(kc-1);
yng(kc+1) = y(kc+1)*30+9;
yn(kc+1)=yng(kc+1)+ruido;
yns(kc+1)=1.998*yns(kc)0.9957*yns(kc-1)+8.514*10^6*yn(kc)+8.507*10^-6*yn(kc-1)+offset;
yff(kc+1)=yf(kc+1)-6;
end
end

end
t_sup(1:2*bitsPWM) =
(Ts/bitsPWM)*(1:2*bitsPWM);
figure;
subplot(2,1,1)
plot(sinal_ref)
%
legend('Tenso de referncia')

% subplot(2,1,2)
hold on
plot(yng)
%plot(t,r(1:N), 'r','linewidth',2)
legend('Tenso na sada')
figure;
%subplot(2,1,1)
plot(yn)
hold on
plot(yff)
legend('Entrada Condicionamento de
Sinais', 'Saida Filtro PB')
figure;
subplot(2,1,1)
plot(sinal_ref)
legend('Sinal de referncia')
subplot(2,1,2)
plot(t_sup,PWM(1:kc), 'r')
legend('PWM')