LAUNCHXL-F28379D + BOOSTXL-3PHGANINV com carga RL: hardware, medidas, proteção e o projeto VSI02ControleCorrente
Universidade Federal do Pará
2026-10-19
BOOSTXL-3PHGANINV (SLUUBP1A, fig. 4). Bornes: +48V/GND (barramento) e VA, VB, VC (carga).
| Grandeza | Valor |
|---|---|
| \(\tau = L/R\) | 213 µs |
| Pico com 12 V | ≈ 1,4 A |
| Pico com 24 V | ≈ 2,9 A |
SLUUBP1A, fig. 3.
Num referencial que gira a \(\omega\) (ângulo \(\theta = \omega t\), gerado na placa):
\[ v_d = R\,i_d + L\frac{di_d}{dt} - \omega L\, i_q, \qquad v_q = R\,i_q + L\frac{di_q}{dt} + \omega L\, i_d \]
SPRUI77C, tabela 5. A coluna J3 recebe os sinais analógicos do BoosterPack.
| Sinal | Periférico | GPIO | Pino |
|---|---|---|---|
| Fase A (alto / baixo) | EPWM1A / 1B | 0 / 1 | J4-40 / 39 |
| Fase B | EPWM2A / 2B | 2 / 3 | J4-38 / 37 |
| Fase C | EPWM3A / 3B | 4 / 5 | J4-36 / 35 |
| /PWM enable (ativo baixo) | GPIO | 124 | J2-13 |
| /PCB OT alert (ativo baixo) | GPIO, INPUTXBAR1 | 24 | J4-34 |
| UART pela USB | SCIA | 42 / 43 | — |
TIDA-00909 (TIDUCE7B), fig. 10: fase A. O BOOSTXL repete o circuito nas três fases.
Na placa, o sensor dá
\[ v_{ADC} = 1{,}65 - 0{,}1\,i \quad [\text{V}] \]
A LaunchPad usa uma referência de 3,0 V (REF5030, SPRUI77) e um ADC de 12 bits:
\[ \begin{aligned} i &= -k\,(N - N_0) \\ k &= \frac{3{,}0}{4096 \cdot 0{,}1} = 7{,}32\ \text{mA} \end{aligned} \]
\(N_0 \approx 2253\) é medido na inicialização, com o PWM desabilitado.
Divisor de 100 kΩ / 4,22 kΩ com 33 nF (TIDA-00909, fig. 10 e 11):
\[ V = 24{,}7\, v_{ADC}, \qquad V_{\max} = 24{,}7 \cdot 3{,}0 = 74{,}1\ \text{V} \]
com 18,1 mV por contagem. O SDK usa os mesmos 74,1 V.
iA → CMPSS6 ┐
iB → CMPSS3 ├─ H ou L ─→ XBAR TRIP4 → DCAEVT1 → OST nos EPWM1, 2, 3
iC → CMPSS1 ┘ ↑
GPIO24 (sobretemperatura)
O SDK calcula o DAC do CMPSS como \(2048 \pm 2048\,I_{lim}/13{,}5\):
\[ N_{DAC} = \frac{4096}{3{,}3}\left(\frac{3{,}0\,N_0}{4096} \pm 0{,}1\,I_{lim}\right) \]
\[ \Delta v \approx V_{dc}\, t_m\, f_{PWM} = 12 \cdot 0{,}5\,\mu\text{s} \cdot 20\ \text{kHz} = 0{,}12\ \text{V} \]
| Arquivo | Conteúdo |
|---|---|
main.c |
parâmetros (struct), inicialização, laço de controle, supervisor |
hal.c/h |
EPWM com tempo morto, ADC sincronizado, habilitação, CMPSS + trip, SCI |
controle.c/h |
Clarke/Park e inversas, ângulo de frequência fixa, PI, SVPWM, excitações |
tarefas.c/h |
registro dos dados (4 canais × 2000 amostras) e comandos pela UART |
nControle = 1 → 50 µs);zero do contador ─→ SOCA ─→ ADC (7 canais) ─→ ADCA INT1 ─→ LacoControle():
HAL_Le correntes, tensões e barramento em A e V
proteção trip, |i| > Ilim, barramento fora da faixa → desabilita
Controle_Passo nível 1..4 → razões cíclicas
HAL_AplicaRazoes CMPA com sombra: vale no próximo zero
Tarefas_Registra gravação síncrona
sup.tLaco [µs], medida pelo contador do EPWM1.| Nível | Tensão aplicada | O que observar |
|---|---|---|
| 1 | razão cíclica de 50 % nas três fases | PWM complementar, tempo morto, offsets |
| 2 | \(v_d = V\), \(v_q = 0\), ângulo em rampa | \(i_{abc}\) senoidais; \(i_{dq}\) constantes |
| 3 | PI em dq com desacoplamento | degrau de \(i_d^*\), \(i_q^*\) |
| 4 | ponto de operação + excitação | \(v_{dq}\), \(i_{dq}\) gravados juntos |
No nível 1 as três fases ficam com a mesma tensão: não há corrente na carga (a menos do tempo morto). A modulação é SVPWM (até \(V_{dc}/\sqrt{3}\)) ou senoidal (até \(V_{dc}/2\)), escolhida por #define.
Cancelamento do polo da carga, para cada eixo:
\[ C(s) = k_p + \frac{k_i}{s} = \omega_c\,\frac{Ls + R}{s} \quad\Rightarrow\quad \frac{i}{i^*} = \frac{1}{s/\omega_c + 1} \]
| Parâmetro | Valor |
|---|---|
| Banda \(f_c\) | 500 Hz |
| \(k_p = 2\pi f_c L\) | 3,14 Ω |
| \(k_i = 2\pi f_c R\) | 14 765 V/(A·s) |
| Saturação | \(\lvert v_{dq} \rvert \le \min(v_{\max},\ V_{dc}/\sqrt{3})\) |
O integrador é limitado à mesma tensão (anti-windup simples).
| Excitação | Configuração | Faixa útil |
|---|---|---|
| PRBS | 9 bits, \(x^9 + x^5 + 1\), 4 amostras por bit (\(T_b\) = 200 µs) | até ≈ 2 kHz |
| Degrau | onda quadrada, 10 ms em cada nível | regime e transitório |
| Multisseno | 100 harmônicas de 20 Hz, fases de Schroeder | 20 Hz a 2 kHz |
G zera a excitação e começa a gravação na mesma amostra.| Comando | Ação |
|---|---|
S |
estado: nível, habilitado, falhas, Vdc, \(i_{dq}\), \(i_{abc}\), offsets, duração do laço |
H / D |
habilita / desabilita o PWM |
L / C |
limpa as falhas / calibra os offsets |
N n |
nível 1 a 4 (só com o PWM desabilitado) |
I i |
limite de corrente da proteção [A] |
115200 bit/s, 8N1, um comando por linha, resposta OK ou ERRO. Depois de H, conferir com S se o PWM habilitou.
| Comando | Ação |
|---|---|
F f / V v |
frequência do ângulo [Hz] / amplitude no nível 2 [V] |
R id iq |
referências de corrente no nível 3 [A] |
P vd0 vq0 |
ponto de operação no nível 4 [V] |
E t a e |
excitação (0 PRBS, 1 degrau, 2 multisseno), amplitude [V], eixo (0 d, 1 q, 2 dq) |
M m dec |
registro: 0 → \((v_d, v_q, i_d, i_q)\), 1 → \((i_a, i_b, i_c, \theta)\); decimação |
G / B |
inicia a gravação / baixa o registro em texto (uma linha por amostra) |
L (limpa a falha registrada sem o barramento) e C (calibra os offsets);N 1, H: PWM de 50 %; conferir no osciloscópio;D, N 2, V 1, H: correntes pequenas; conferir o sinal;O PWM só habilita sem falhas, com offsets válidos (1,65 ± 0,15 V) e com o barramento entre 10 e 30 V.
| Item | Como conferir |
|---|---|
| Revisão da LaunchPad | na revisão 1.1, ADCINA2 (iC) está em curto com VREFHIB (SPRUI77) |
| Sinal da corrente | nível 2: \(v_A > 0 \Rightarrow i_A > 0\) em regime |
| Par de PWM da fase A | osciloscópio em J4-40/39 no nível 1 |
| Jumper J6 do BoosterPack | retirar quando a LaunchPad é alimentada pela USB |
| Onde atua o TLV3201 | esquemático do BoosterPack (pacote SLUC631) |
| Escala de \(V_{dc}\) | comparar S com um multímetro |
Os PDFs ficam em Notas/ControleCorrenteVSI/docs/ (fora do repositório).