¿Por qué se 'limita' este capacitor de voltaje para aumentar aún más?

0

Simulación en PLECS del siguiente circuito.

La idea principal es abrir / cerrar ambos IGBT con la misma señal de puerta para rastrear una referencia (forma triangular) cargando y descargando el capacitor. La única condición es que antes de abrir ambos dispositivos, el voltaje a través del capacitor debe ser de cero voltios. Para lograr esto, he escrito el siguiente código dentro del bloque C-Script.

int track(double ref, double isb, double vcs) {
    int out;    

    if(isb > ref){
        if (vcs < 1){
        out = 0;
        }
        else{
            out = 1;
        }
    }
    else{
        out = 1;
    }
    return out;
}

Sin embargo, como puede ver en el siguiente gráfico, después del segundo 4.5932, el voltaje a través del capacitor no pasará de 900 aprox. y aunque la corriente de salida ya no está cruzando la referencia, esto es ISB < REF, el circuito sigue cambiando.

Contexto.Comoestesoftwaregestionalasseñaleseléctricas(vectores),nohaynecesidaddeusararitméticosdepunterosydeclarardelasiguientemaneraloharíaeltruco,dondetrack.ccontieneelcódigoescritoarribayInput()esunamacroC-Scriptparadeclararentradas.Además,entiendoqueestebloquefuncionacomoun'buclefor'yaqueseejecutacadatiempodemuestra(establecidopormí:1e-4).Solveresunpasofijodiscreto(1e-5).

#include<float.h>#include<math.h>#include<stdio.h>#include"track.h"
#include "track.c"


#define REF Input(0) // Reference Current
#define ISB Input(1) // Snubber Output Current
#define VCS Input(2) // Capacitor Voltage
#define IGBT Output(0) // IGBT Firing
    
pregunta Zrakk

0 respuestas

Lea otras preguntas en las etiquetas