Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução
2. Controladores
3. Projeto do Controlador com MatLab/PSIM
4. Modelo do Conversor Elevador (Boost)
5. Projeto de Controladores Digitais MatLab/PSIM
6. Implementação em Arduino UNO
Introdução
Atmega 328P
• Algumas arquiteturas para microcontroladores
são:
– CISC (Complex Instruction Set Computer)
– RISC (Reduced Instruction Set Computer)
– VLIW (Very-Long Instruction Word)
Tamanho típico
das instruções,
• Configurar o Atmelstudio
No menu Tools,
Escolher External Tools
Atmega 328P
• Configurar o Atmelstudio
Clicar em Add;
Definir um nome (Arduino Programmer);
Definir Command >> C:\avrdude\avrdude.exe
Definir Arguments >> -C "C:\avrdude\avrdude.conf"
-p atmega328p -c arduino -P COM5 -b 115200 -U
flash:w:"$(TargetDir)$(TargetName).hex":i
Exercício 1
Atmega 328P:
PWM
• Programando o PWM:
Exercício 2
Introdução
Conversores Estáticos
Básicos
Conversores não Isolados
• Há 3 topologias básicas de conversores CC-CC
não isolados:
• VE>VS ou VE<VS
• Elevação da tensão ou redução da tensão de
saída.
Introdução
Variável de Controle
Modificação da Razão Cíclica
1 Ton
Ts D
Fs Ts
Modificação da Razão Cíclica
1
Ts 1 T T
Fs Vo Vi dt 0dt
on s
Ts 0 T
on
Ton VT
D Vo i on Vi D
Ts Ts
O Que é Controle?
Vc Vpv R (1 D) Lbs
(s) G(s)
2
D 2 2 2
Projeto de Controlador
• Usando os valores abaixo para:
0.00188s 220.9
G( s )
4.7 07 s 2 0.0001s 11.75
• Abrindo o sisotool:
Projeto de Controlador
Projeto de Controlador
Projeto de Controlador
Projeto de Controlador
Projeto de Controlador
Projeto de Controlador
• Com o Sisotool do Matlab pode-se projetar o
Controlador adequado, escolheu-se um PI e
um PID:
1.4737
CPI (s) =
s
• Encontra Cpi(s) na forma polinomial, no
Matlab:
Projeto de Controlador
• Resulta nos coeficientes:
a 0 1.47369936668462
b 1 0
• Revendo:
Projeto do controlador por Laplace;
Conceitos de Margem de Ganho e Fase;
Lugar das raízes;
Função de transferência de fase mínima.
• Falta:
– De onde vem a Função de Transferência usada?
Conversor Boost
Variáveis de Estado
• Relações do Indutor e do Capacitor:
d IL ( t )
v Lb (t ) Lb
dt
i (t ) C dvC (t )
Cb b
dt
Variáveis de Estado
• Etapa 1
v Lb
Variáveis de Estado
• Etapa 1
v pv (t ) v Lb (t ) 0
iCb (t ) iRo (t )
Variáveis de Estado
v pv (t ) v Lb (t ) 0
d IL ( t )
Lb v pv (t ) (1)
dt
iCb (t ) i Ro (t )
d v C (t ) vC
Cb (2)
dt Ro
Variáveis de Estado
Kx Ax Bu
x iL vC
T
u v pv
0 0 1
A1 1 B1 Lb
0
RoCb 0
Variáveis de Estado
Kx Ax Bu
0 0
Lb 0 i Lb i 1
0 C 0 1 Vpv
Lb
bvCb
vCb 0
Ro u
K x x B1
A1
Variáveis de Estado
• Etapa 2
Variáveis de Estado
• Etapa 2
v pv (t ) v Lb (t ) v C (t ) 0
i Lb (t ) iCb (t ) i Ro (t )
Variáveis de Estado
v pv ( t ) v Lb ( t ) v C ( t ) 0
d IL ( t )
Lb v pv (t ) v C (t ) (3)
dt
iCb (t ) i Lb (t ) i Ro (t )
d vC (t ) v C (t )
Cb i Lb ( t ) (4)
dt Ro
Variáveis de Estado
Kx Ax Bu
0 1
Lb 0 Lb
i i Lb 1
0 C 1 1 V pv
b v Cb v Cb 0
C b
R o u
K x x B2
A2
Variáveis de Estado
E ta p a 1
0 0 i 1
Lb 0 Lb
i Lb
0 C 1 L b V p v
b v C b 0 v C b
R o C b 0 u
K x x
A1 B1
E ta p a 2
1
0 1
Lb
0 Lb i Lb i
0 C
Lb
L b V p v
b
v C b 1 1 v C b
0 u
?
K x C
b R oC b x
B2
A2
Variáveis de Estado
y (t ) C1x(t ) (4)
• Etapa 2 (DTs-Ts)
dx (t )
K A2 x (t ) B2u(t ) (5)
dt
Onde:
y ( t ) C2 x ( t ) (6) A 2 , B 2 , C2
São matrizes constantes.
Variáveis de Estado
• Etapa 1 (0-DTs)
K 1 A1x B1u
K
dx (t )
A1x (t ) B1u(t ) dx
dt
dt
dx K 1 A1x B1u dt
Aproximação de pequenas ondulações
K 1 A1x B1u dt
DTs DTs
aproximação de
pequenas ondulações: dx
0 0
x x, u u
x (DTs ) x (0) K 1 A1x B1u dt
DTs
K 1 A2 x B2u dt
Ts Ts
dx
DTs DTs
DTs
• Usando Euler
dx x (Ts ) x (0)
dt Ts
Variáveis de Estado
• O modelo médio que descreve a dinâmica do
sistema é:
K dt DA1 1 D A2 x DB1 1 D B2 u
dx
y DC1 1 D C 2 x DE1 1 D E 2 u
K dx
dt
y DC1 1 D C 2 x DE 1 1 D E 2 u
C E
Variáveis de Estado
• Onde:
A DA1 (1 D ) A2
B DB1 (1 D )B 2
C DC1 (1 D )C 2
E DE 1 (1 D )E 2
Variáveis de Estado
• Ponto de Operação
X A1BU
Y CA B E U
1
Variáveis de Estado
• Ponto de Operação para o conversor boost:
Y
U
CA B E
1 0
A DA1 (1 D ) A2
Y
CA1B B DB1 (1 D )B2
U
0 0 0 1
1
Y 1 0 1 1
D 1 (1 D) 1 D (1 D)
U
0 1 0 R 1 0 0
Ro
o
Variáveis de Estado
• Ponto de Operação
Y
CA1B
U
0 0 0 (1 D)
1
0 (1 D)
1
Y 1 0 1
1
U
0 1 (1 D) R 0
o
Variáveis de Estado
• Ponto de Operação
Y
C A 1B
U
1 1
Y 1 0 R o ( D 1) (1 D ) 1
2
U 0 1 1 0
0
( D 1)
1
i Lb R ( D 1) 2
V pv
o
v C b 1
(1 D )
Variáveis de Estado
• Ponto de Operação
1
i Lb V pv
R o ( D 1) 2
1
v Cb V pv
(1 D )
V pv V pv Vc Io
i Lb
R o ( D 1) 2
R o (1 D )( D 1) R o (1 D ) (1 D )
1
v Cb V pv
(1 D )
Variáveis de Estado
• Que resultam nas equações dos ganhos
estáticos por exemplo (9) e (10).
Vpv
Vc (9)
(1 D )
VC
ILb (10)
(1 D )Ro
Variáveis de Estado
• Perturbação e Linearização
^
y Y y
^
Y y
u U u Onde:
^ ^
U u
x X x
^ ^
X x
D D d
^
^
D d
K x Ax Bu
.
K x A1D A2 1 D x B1D B2 1 D u
.
K x A1 D d A2 1 D d x ...
. ^ ^
K x A1D A1 d A2 A2D A2 d x ...
. ^ ^
K x A1 A2 d A1D A2 1 D x ...
.
^
Variáveis de Estado
• Perturbando os estados:
x Xx
^
K x A1 A2 d A1D A2 1 D x ...
.
^
A
K x A1 A2 X d AX A1 A2 d x A x ...
.
^ ^ ^ ^ ^
K x AX A x A1 A2 X d ...
.
^ ^ ^
Variáveis de Estado
• Para o segundo termo (perturbando “d” e “u”):
D Dd
^
K x ... B1D B 2 1 D u
.
^
u U u
^
K x ... B1D B 2 1 D ) B1 B 2 dˆ u
.
^
EM2
B
K x ... B U uˆ ( B1 B 2 )dˆ U uˆ
.
^
DC
AC
Slide 81
EM2 melhorar
Everson Mattos, 2/13/2017
Variáveis de Estado
• Resultando em:
K x A X A xˆ A1 A 2 Xdˆ B U B uˆ ( B1 B 2 )U dˆ
.
^
U A xˆ B uˆ A1 A 2 X ( B1 B 2 )U dˆ
.
K x X B
^
A
DC
AC
K x A X BU A xˆ B uˆ A1 A 2 X ( B1 B 2 )U dˆ
.
^
Variáveis de Estado
• A equação do modelo pode ser escrita:
U A xˆ B uˆ A1 A2 X ( B1 B 2 )U dˆ
.
K x X B
^
A
DC
xˆ A p xˆ B p uˆ
.
• Onde:
A p K 1 ( DA1 (1 D ) A 2 )
B p K 1 B K 1 A1 A 2 X ( B1 B 2 )U
Variáveis de Estado
• A equação do modelo pode ser escrita:
yˆ CX U Cxˆ E uˆ C 1 C 2 X ( E 1 E 2 )U dˆ
E
DC
yˆ C p xˆ E p uˆ
• Onde:
C p ( D C 1 (1 D )C 2 )
E p B C 1 C 2 X ( E 1 E 2 )U
Variáveis de Estado
• O modelo AC de pequenas sinais é:
ˆ.
x Ap xˆ Bpuˆ
.
yˆ C xˆ E uˆ
p p
yˆ Cp sI Ap Bpuˆ E puˆ
1
yˆ Cp sI Ap Bp E p uˆ
1
(s ) Cp sI Ap Bp E p
yˆ 1
uˆ
Variáveis de Estado
• Aplicando a Transformada de Laplace:
(s ) Cp sI Ap Bp E p
yˆ 1
uˆ
• Onde:
A p K 1 ( DA1 (1 D ) A 2 )
B p K 1 B K 1 A1 A 2 X ( B1 B 2 )U
C p ( DC 1 (1 D )C 2 )
E p B C 1 C 2 X ( E 1 E 2 )U
Variáveis de Estado
E ta p a 1
0 0
Lb
0 Lb i i Lb 1
0 C 1 V p v
b v C b 0 v C b 0
R o u
K x x B1
A1
E ta p a 2
1
0
Lb 0 i Lb i Lb 1
0 1 V p v
C b v C b 1 v C b 0
R o u
K x x B2
A2
Variáveis de Estado
• Função de transferência:
Vpv Ro (1 D )2 Lb s
G(Vo,D ) (s )
(D 1)2 Cb Lb Ro s 2 Lb s Ro (1 D )2
Variáveis de Estado
• No Matlab abrir o Simulink
• Usar as matrizes Ap, Bp, Cp, Ep e a saída Y
para gera um modelo em espaço de estados;
• A saída do modelo será comparada com a
resposta do circuito simulado (boost).
Variáveis de Estado:
Validação do Modelo
• A reposta deve ser similar (Simulink):
Variáveis de Estado:
Validação do Modelo
• A reposta deve ser similar (PSIM):
Projeto de Controlador
• Verificando:
Modelo matemático linearizado;
Validação do modelo;
Função de transferência;
Projeto do controlador;
Validação do projeto do controlador;
• Falta:
– Projeto do controlador discreto;
– Validação do projeto do controlador discreto;
– Implementação e teste.
Projeto de Controlador
• Discretizar a planta, no Matlab digitar:
• Logo:
0.01646z 0.0634
G(Vo ,D ) ( z ) 2
z 1.995z 0.9979
• Falta:
– Implementar em C o projeto do controlador discreto;
– Validar a implementação em C do projeto do
controlador discreto;
– Implementação e teste.
Projeto de Controlador
( z 1 ) u uz 1 Ae Aez 1
Projeto de Controlador
• Expansão em frações parciais:
• Falta:
– Implementação e teste.
Projeto de Controlador
• Dicas:
– Use todas as casas decimais fornecidas pelo matlab no formato longo;
– Cuidado com a definição das variáveis, pode haver problemas de tipos;
– Use a interrupção do timer1/counter para calcular a ação de controle;
– Use o código do PSIM como base, pois deve ser praticamente igual;
Projeto do Controlador:
Exemplo de Implementação
Projeto de Controlador
• Verificando (Para um PI):
Projeto do controlador analógico;
Validação do controlador analógico;
Projeto do controlador discreto;
Validação do projeto discreto;
Teste no PSIM usando Bloco C;
Implementação no Arduino.
• Falta:
– Se PI não for suficiente?
Projeto de Controlador
CPID (z) =
z 2 1.271z 0.2714
Embarcar o Sistema de Controle
t(s)
Embarcar o Sistema de Controle
• Com o controlador projetado e validado em z,
faz-se a expansão em frações parciais
A B
CPID (z) = k
z a z b
Embarcar o Sistema de Controle
• Encontrando A:
A z 1 B z 1
k z 1
0.066426 (z-0.9941) (z-0.9729) (z-1)
z 0.2714
=
(z-1) (z-0.4922) z 1 z 1 z 1
=A
( z 1) (1-0.4922) z 1 z 0.2714 z1
A 2.0915 -05
Embarcar o Sistema de Controle
• Encontrando B:
0.066426 (z-0.9941) (z-0.9729) z 0.4922 A z 0.4922 B z 0.4922
k z 1
z 1
=
(z-1)(z-0.4922)
z0.4922
z 0.4922 z0.4922
B -0.03156
Embarcar o Sistema de Controle
• Substituindo A e B tem-se:
0.066426(z-0.9941)(z-0.9729) 2.0915e-05 z 0.4922 -0.03156 z 1 +(z-1)(z-0.4922)k
(z-1)(z-0.4922) (z-1)(z-0.4922)
• Igualando os polinômios
0.066426z2 +... kz2 +...
k 0.066426
Embarcar o Sistema de Controle
ke = u
uk
Ck (z) = k e k = uk 1
ek
k k
uk (n ) 0.066426 ek (n)
Embarcar o Sistema de Controle
• A parcela integral (PI) fica:
uPI z 1 AePI
u PI A uPI
ĈPI (z) = =
ePI z 1 ePI
• Que resulta em:
PI PI
u z u AePI
z 1
Multiplicando por z1
uPI uPI z1 AePI z1
1 uPI uPI z1 AePI z1 Aplicando a tranformada 1
Embarcar o Sistema de Controle
• A equação em diferenças discretas para
• um PI genérico é:
uPI (n ) uPI (n 1) AePI (n 1)
uPD z b BePD
uPD B uPD
CPD (z) = =
ePD zb ePD
• Que resulta em:
PD
u z buPD
BePD
z 1
Multiplicando por z1
uPD buPD z1 BePD z1
1 uPD buPD z1 BePD z1 Aplicando a tranformada 1
Embarcar o Sistema de Controle
• A equação em diferenças discretas para
• um PD genérico é:
uPD (n ) buPD (n 1) BePD (n 1)
#include <avr/io.h>
#include <avr/interrupt.h>
unsigned long duty1,duty2; // Duty Cycle in terms of a percentage.
unsigned long plus; // Value read from A1, in case plus mode is activated
float x; // Float numbers to calculate duty for PWM 1 and PWM 2
float y;
unsigned long pwm1; // Value read from A0 and A2 to give PWM duty cycle
output in terms // of 0-5V
unsigned long pwm2;
void setup(){
ATmega 328 – setup{}
cli(); // disable global interrupts
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
void loop(){
}
ATmega 328 – loop{}
ISR(TIMER1_OVF_vect)
{
cli(); // disable global interrupts
x = float(pwm2); // Turn read values from the POTs to float for mathematical
y = float(pwm1); // adjustment.
x = x*ICR1; // Multiply with ICR1 and divide by 1023 to give required
percentage
y = y*ICR1;
x = x / 1023;
y = y / 1023;
OCR1B = int(x); //Assign values to OCR Registers, which output the PWM duty
cycle.
OCR1A = int(y);
sei(); // enable global interrupts
}
Objetivos