Estoy teniendo problemas con el circuito que estoy estudiando, pero para modificar algunos valores, quiero sacar esta pregunta de mi mente.
Uso un bloque de función S para obtener esta onda "triangular", así que lo dejo aquí en caso de:
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, INHERITED_SAMPLE_TIME);
ssSetOffsetTime(S, 0, 0.0);
ssSetModelReferenceSampleTimeDefaultInheritance(S);
}
static void mdlOutputs(SimStruct *S, int_T tid)
int_T i;
// Corriente Snubber
InputRealPtrsType u0_Is = ssGetInputPortRealSignalPtrs(S, 0);
// Triangle Reference
InputRealPtrsType u1_Iref = ssGetInputPortRealSignalPtrs(S, 1);
// Voltaje THY - Lectura voltaje colector/emisor
InputRealPtrsType u2_Vce = ssGetInputPortRealSignalPtrs(S, 2);
real_T *IGBT = ssGetOutputPortRealSignal(S, 0);
real_T *THY = ssGetOutputPortRealSignal(S, 1);
int_T width = ssGetOutputPortWidth(S, 0);
int_T width1 = ssGetOutputPortWidth(S, 1);
for (i=0; i<width; i++){
if (*u0_Is[i] < *u1_Iref[i]){
*IGBT++ = 1;
if (*u2_Vce[i] >= 0.8 && (*u0_Is[i] < *u1_Iref[i]) ){
*THY++ = 1;
}
else {
*THY++ = 0;
}
}
else {
*IGBT++ = 0;
*THY++ = 0;
}
}