Primeiro experimento (VSI01MalhaAberta): montar as placas e ver o chaveamento no osciloscópio
Universidade Federal do Pará
2026-10-23
| Etapa | Montagem | O que se mede |
|---|---|---|
| A | só a LaunchPad, ligada na USB | os sinais de comando (0 a 3,3 V) |
| B | LaunchPad + inversor + fonte de 12 V + carga RL | as tensões das fases e as correntes |
Material: as duas placas, cabo USB, osciloscópio de dois canais (100 MHz ou mais), fonte CC com limite de corrente, carga RL trifásica (4,7 Ω e 1 mH por fase) e fita Kapton.
Num período de PWM (50 µs), a chave de cima fica ligada uma fração \(d\) do tempo, a razão cíclica. A fase fica em 12 V durante essa fração e em 0 V no resto. Em média:
\[ v_{\text{média}} = d \cdot V_{dc} \]
| Razão cíclica \(d\) | Chave de cima ligada | Tensão média da fase (12 V) |
|---|---|---|
| 25 % | 12,5 µs de cada 50 µs | 3 V |
| 50 % | 25 µs | 6 V |
| 75 % | 37,5 µs | 9 V |
Mudando \(d\) devagar, como uma senoide, a tensão média vira uma senoide: é assim que o inversor gera corrente alternada.
Um contador sobe de 0 a 2500 e desce de volta, sem parar. A saída A fica em nível alto enquanto o contador está abaixo do valor de comparação (CMPA); a saída B é o contrário.
| Grandeza | Valor | De onde vem |
|---|---|---|
| Relógio do PWM | 100 MHz | 200 MHz do processador ÷ 2: cada contagem dura 10 ns |
| Topo do contador | 2500 | 100 MHz ÷ (2 × 20 kHz) |
| Período do PWM | 50 µs | 2 × 2500 contagens × 10 ns |
| Razão cíclica | CMPA ÷ 2500 | CMPA = 1250 → 50 % |
| Tempo morto | 100 ns | 10 contagens |
No programa: FREQ_PWM, TOPO, TEMPO_MORTO e CONTAGENS_MORTO, no começo do main.c.
| Modo | Razão cíclica | Para que serve |
|---|---|---|
| 0 | 50 % nas três fases | primeiro teste: as três fases iguais, nenhuma tensão na carga |
| 1 | 25 % em A, 50 % em B, 75 % em C | reconhecer qual fio é qual fase |
| 2 | senoide de 60 Hz, 120° entre as fases | ver o inversor gerando corrente alternada |
| 3 | manual: razaoManual (A, B, C) |
escolher a razão cíclica de cada fase |
No modo 2, para cada fase,
\[ d = 0{,}5 + 0{,}5 \cdot \text{indice} \cdot \sin(\theta - \text{defasagem}), \quad \text{defasagem} = 0^\circ,\ 120^\circ,\ 240^\circ \]
com o índice de modulação entre 0 e 1 (0,5 no início).
As três razões cíclicas oscilam em torno de 50 %, deslocadas de um terço de ciclo (120°). Um ciclo completo dura 1/60 s ≈ 16,7 ms.
Em 5 ms/div os pulsos de 50 µs ficam muito juntos; o que se vê é uma faixa mais escura (pulsos largos) e mais clara (pulsos estreitos), repetindo a cada 16,7 ms.
main() roda uma vez
├─ ConfiguraPinos() habilitação desligada; GPIO0..5 viram saídas de PWM
├─ ConfiguraModuloPWM() ×3 contador, comparação, tempo morto, proteção na pausa
├─ ConfiguraADC() conversões disparadas pelo PWM da fase A
├─ liga a interrupção AtualizaPWM a cada 50 µs
└─ laço infinito copia "habilita" para o pino de habilitação
AtualizaPWM() a cada 50 µs (contador = 0)
├─ calcula razaoCiclica[3] de acordo com o modo
├─ EscreveRazao() razão → CMPA (limitada entre 5 % e 95 %)
└─ LeTensoes() lê as tensões e grava, se pedido
InversorTrifasico/Firmware/VSI01MalhaAberta/main.c: cerca de 300 linhas, com comentários em cada passo.
| Variável | Valores | Efeito |
|---|---|---|
modo |
0 a 3 | escolhe o teste |
habilita |
0 ou 1 | 1 liga o inversor (só na etapa B) |
indice |
0 a 1 | amplitude da senoide do modo 2 |
frequencia |
em Hz | frequência da senoide do modo 2 |
razaoManual |
0,05 a 0,95 (três valores) | razões das fases A, B, C no modo 3 |
grava |
1 | grava as tensões das fases |
No CCS, essas variáveis vão para a janela Watch. Para mudar um valor: pausar o programa (Suspend), digitar o valor novo e continuar (Resume).
| Variável | O que mostra |
|---|---|
razaoCiclica |
razões cíclicas aplicadas nas fases A, B, C |
tensaoBarramento |
tensão da fonte [V], medida pelo inversor |
grava |
2 enquanto grava, 0 quando terminou |
amostra |
quantas amostras já foram gravadas (até 2000) |
tensaoA, tensaoB, tensaoC |
os vetores gravados [V], para exportar em CSV |
habilita = 1;LAUNCHXL-F28379D (SPRUI77C, fig. 1). O inversor usa os conectores J1, J2, J3 e J4, na metade de cima, perto da USB, e não J5–J8.
Esquema fora de escala.
InversorTrifasico/Firmware (ou a pasta descompactada do .zip);VSI01MalhaAberta e compilar (ícone do martelo, Build);main;modo, habilita, indice, frequencia e razaoCiclica;Só a LaunchPad, alimentada pela USB. As pontas vão direto nos pinos de J4:
| Pino | Sinal | Fase |
|---|---|---|
| J4-40 | EPWM1A | A, chave de cima |
| J4-39 | EPWM1B | A, chave de baixo |
| J4-38 / J4-37 | EPWM2A / 2B | B |
| J4-36 / J4-35 | EPWM3A / 3B | C |
| J2-20 ou J3-22 | GND | terra das duas pontas |
Escala vertical de 1 V/div: os sinais vão de 0 a 3,3 V.
LaunchPad vista de cima, com a USB para cima: J4 é a coluna de dentro, à direita, com o pino 40 no alto; J2 é a de fora, com o GND (pino 20) ao lado do 40.
modo = 0, J4-40 e J4-39 em 10 µs/div: 20 kHz, 50 %, um sinal o inverso do outro;modo = 1: J4-40, J4-38 e J4-36 com 25 %, 50 % e 75 % (troque a ponta de pino);modo = 2, 5 ms/div: a largura do pulso varia como senoide; mudar indice (0,2 e 0,9) e frequencia (30 Hz e 60 Hz) e ver a diferença;O osciloscópio mostra pulsos; a senoide está na média deles. Um filtro passa-baixas de primeira ordem faz essa média:
| Componente | Valor | Por quê |
|---|---|---|
| Resistor | 10 kΩ, 1/4 W | limita a corrente: 0,33 mA na LaunchPad, 1,2 mA no inversor |
| Capacitor | 100 nF, 50 V (cerâmico ou poliéster) | com 10 kΩ, frequência de corte de 159 Hz |
| Frequência | O que acontece no filtro |
|---|---|
| 60 Hz (a senoide) | passa 94 %, com atraso de 21° (≈ 1 ms) |
| 20 kHz (o PWM) | cai 126 vezes: sobra uma ondulação pequena |
modo = 2, indice = 0,5, 60 Hz, 0,5 V/div e 5 ms/div: senoide de 1,65 ± 0,78 V (de 0,87 a 2,43 V), com 120° (5,6 ms) entre A e B. Mude indice e frequencia e veja a senoide acompanhar. No modo 1, o filtro mostra só tensões constantes: 0,83, 1,65 e 2,48 V.
habilita = 0 e modo = 0;habilita = 1.Para desligar, a ordem inversa: habilita = 0, fonte, USB.
Ponta em VA, terra no GND, 10 µs/div e 5 V/div:
| Modo | VA | VB | VC |
|---|---|---|---|
| 0 | 0 ↔︎ 12 V, 50 % | igual a VA | igual a VA |
| 1 | 0 ↔︎ 12 V, 25 % | 50 % | 75 % |
| 2 | largura variando a 60 Hz | 120° depois | 240° depois |
Com habilita = 0, as chaves ficam desligadas e o borne fica solto: o osciloscópio não mostra os pulsos.
Um RC em cada borne (VA, VB, VC), no lugar da carga RL; capacitores de 50 V. Com 12 V, modo = 2 e indice = 0,5: cada fase com 6 ± 2,8 V; a diferença A − B (função matemática do osciloscópio) com 4,9 V de pico, √3 vezes a amplitude de uma fase. A fonte quase não fornece corrente (alguns miliampères): um bom primeiro teste com carga, antes da RL.
O inversor mede a tensão de cada borne (dividida por 24,7 e filtrada em 1 kHz) e o programa lê esses sinais a cada 50 µs:
grava = 1 na Watch e dar Resume;grava voltar a 0 (2000 amostras = 100 ms, seis ciclos de 60 Hz);tensaoA, tensaoB e tensaoC na Watch e exportar para CSV (botão direito na janela Watch, Export);python3 analise/plota_tensoes.py arquivo.csv: monta o tempo, plota e grava um CSV com as colunas t_ms, vA, vB, vC.O filtro da placa já faz a média dos pulsos: no modo 2 aparece a senoide (com uma ondulação de alguns décimos de volt), sem filtro externo.
Desligar a fonte, ligar a carga RL nos bornes VA, VB, VC e religar (limite em 0,5 A).
\[ i_A = \frac{-3}{4{,}7} = -0{,}64\ \text{A}, \qquad i_B = 0, \qquad i_C = +0{,}64\ \text{A} \]
São correntes contínuas: os resistores esquentam (1,9 W em A e em C) e a fonte fornece ≈ 0,32 A.
Simulação (analise/figuras.py): 12 V, índice 0,5, 60 Hz.
Tensão de fase com 3 V de pico, corrente com 0,64 A de pico e 60 Hz, quase em fase com a tensão (a indutância de 1 mH pouco pesa a 60 Hz).
O próprio inversor mede a corrente e a tensão de cada fase e entrega os sinais nos pinos de J3 (acessíveis pela face de cima do inversor):
| Pino | Sinal | Conversão |
|---|---|---|
| J3-27 | corrente da fase A | \(v = 1{,}65 - 0{,}1\, i_A\) (V, A) |
| J3-24 | tensão de VA, filtrada | \(v = V_A / 24{,}7\) (filtro de 1 kHz) |
| Ensaio | Corrente de pico | J3-27 | Corrente da fonte |
|---|---|---|---|
| Modo 0 | 0 | 1,65 V | ≈ 0 |
| Modo 1 | −0,64 A (contínua) | 1,71 V | 0,32 A |
| Modo 2, índice 0,5 | 0,64 A | 1,59 a 1,71 V | 0,24 A |
| Modo 2, índice 0,8 | 1,02 A | 1,55 a 1,75 V | 0,61 A |
Para o índice 0,8, subir o limite da fonte para 1 A. Se a fonte entrar em limitação de corrente com valores bem menores, desligue e confira a montagem.
| Sintoma | Verificar |
|---|---|
| Nenhum pulso em J4 | o programa está rodando (Resume)? a ponta está no pino certo? |
| Pulsos em J4, nada em VA | habilita = 1? fonte ligada? (o inversor só funciona com ela) |
| LEDs 5V/3V3 apagados | fonte desligada ou invertida |
| Fonte limita a corrente | carga em curto, modo errado, índice alto demais |
| Saídas vão a 0 sozinhas | o programa foi pausado (proteção) |
VSI02ControleCorrente, apresentação Controle de Corrente do Inversor Trifásico;