Este artigo explora a aplicação do método de alocação de polos para melhorar a dinâmica de conversores Buck implementados no Simulink. O procedimento detalhado inclui modelagem no espaço de estados, síntese do controlador por realimentação de estados e análise de desempenho.
1. Formulação do Modelo no Espaço de Estados
Para o projeto do controlador, o conversor Buck é representado por um modelo de espaço de estados. As variáveis de estado escolhidas são a corrente no indutor (i_L) e a tensão no capacitor (v_C). O modelo em tempo contínuo assume operação em modo de condução contínua (CCM).
% Parâmetros do conversor Buck
Vi = 48; % Tensão de entrada [V]
Vout_nominal = 12; % Tensão de saída nominal [V]
L_ind = 50e-6; % Indutância [H]
C_cap = 470e-6; % Capacitância [F]
R_carga = 0.6; % Resistência de carga [Ohm] (20A)
D_s = Vout_nominal / Vi; % Razão cíclica estacionária
% Matrizes do modelo de espaço de estados (x = [i_L; v_C])
A = [0, -D_s/L_ind; D_s/C_cap, -1/(R_carga*C_cap)];
B = [Vi/L_ind; 0];
C_saida = [0, 1]; % Saída é a tensão v_C
D_saida = 0;
2. Projeto do Controlador por Alocação de Polos
O método de alocação de polos permite posicionar os polos de malha fechada em localizações desejadas no plano complexo. A escolha dos polos desejados define as características de desempenho transitório, como tempo de assentamento e sobressinal.
% Critério de desempenho: sobressinal máximo ~5% -> zeta=0.7
zeta_desejado = 0.7;
wn_desejado = 8000; % Frequência natural [rad/s]
% Polos desejados (par conjugado)
p1 = -zeta_desejado*wn_desejado + j*wn_desejado*sqrt(1 - zeta_desejado^2);
p2 = -zeta_desejado*wn_desejado - j*wn_desejado*sqrt(1 - zeta_desejado^2);
polos_desejados = [p1, p2];
% Verificação da controlabilidade
Matriz_ctrl = ctrb(A, B);
if rank(Matriz_ctrl) == size(A,1)
% Cálculo do ganho de realimentação K (u = -Kx)
K_ganho = place(A, B, polos_desejados);
else
error('Sistema não controlável');
end
3. Implementação no Simulink e Análise de Desempenho
No Simulink, o controlador é implementado como uma função MATLAB que calcula a razão cíclica com base na realimentação de estados. A estrutura do sistema inclui o modelo físico do conversor, sensores de corrente e tensão, e o controlador.
function razao_ciclica = controlador_polo(i_L, v_C, K, Vi)
% Calcula a ação de controle baseada na realimentação de estados
estados = [i_L; v_C];
sinal_controle = -K * estados;
% Mapeia o sinal de controle para a razão cíclica [0, 1]
razao_ciclica = sinal_controle / Vi;
razao_ciclica = max(0, min(1, razao_ciclica)); % Limitação
end
4. Resultados Comparativos de Simulação
Simulações foram conduzidas para avaliar o desempenho sob variações de carga e na tensão de entrada. Os resultados mostram uma melhoria significativa na dinâmica quando comparado a um cnotrolador PID convencional sintonizado heuristicamente.
| Cenário de Perturbação | Métrica de Desempenho | Controlador PID Convencional | Controlador por Alocação de Polos |
|---|---|---|---|
| Distúrbio de carga (10A → 20A) | Sobressinal de tensão | ~15% | <5% |
| Distúrbio de carga (10A → 20A) | Tempo de recuperação (banda de 2%) | ~25 ms | <10 ms |
| Distúrbio na tensão de entrada (48V → 43.2V) | Variação máxima de saída | ~6% | <1% |
5. Análise da Influência da Posição dos Polos
A localização dos polos desejados afeta diretamente as características da resposta. Polos com parte real mais negativa (mais afastados do eixo imaginário) resultam em respostas mais rápidas, mas podem levar a esforços de controle maiores e sensibilidade a ruído.
% Exemplo: Avaliação do sobressinal teórico para diferentes configurações
function sobressinal_teorico = calcular_sobressinal(zeta)
sobressinal_teorico = exp(-zeta*pi / sqrt(1 - zeta^2)) * 100;
end
% Para zeta = 0.5 -> sobressinal ≈ 16.3%
% Para zeta = 0.7 -> sobressinal ≈ 4.6%
% Para zeta = 1.0 -> sobressinal = 0% (resposta criticamente amortecida)
6. Considerações de Implementação Prática
A implementação em sistemas digitais requer a discretização do modelo e do controlador. Além disso, é necessário considerar limites operacionais como taxas de variação do sinal de controle e saturação da razão cíclica.
% Discretização usando transformação bilinear (Tustin)
Ts = 1e-5; % Período de amostragem [s] (100 kHz)
sys_cont = ss(A, B, C_saida, D_saida);
sys_disc = c2d(sys_cont, Ts, 'tustin');
A_d = sys_disc.A;
B_d = sys_disc.B;
% Projeto do ganho no domínio discreto
K_d = place(A_d, B_d, exp(polos_desejados * Ts)); % Mapeamento para o plano z
Este método fornece uma abordagem sistemática para o projeto de controladores de conversores CC-CC, permitindo especificações de desempenho definidas em termos de variáveis de projeto claras, como a localização dos polos.