25.10.2014 Views

Tesis Simulador Circuitos 3D.pdf - Maestría en Ciencias de la ...

Tesis Simulador Circuitos 3D.pdf - Maestría en Ciencias de la ...

Tesis Simulador Circuitos 3D.pdf - Maestría en Ciencias de la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

*");<br />

EL CIRCUITO",<br />

// -----------------------------------------------------------<br />

// Comprueba que no existan errores <strong>en</strong> <strong>la</strong> simu<strong>la</strong>cion<br />

// por <strong>la</strong>s sigui<strong>en</strong>tes condiciones:<br />

// -----------------------------------------------------------<br />

simu<strong>la</strong>cionValida = true;<br />

if (simu<strong>la</strong>dor_AC.validarSimu<strong>la</strong>cionAC()) {<br />

simu<strong>la</strong>cionValida = true;<br />

} else {<br />

simu<strong>la</strong>cionValida = false;<br />

trace(" ");<br />

trace("***************************************************");<br />

trace("* SE PRODUJO UN ERROR EN LA SIMULACION AC *");<br />

trace("* UN VALOR DE GANANCIA NO ES VALIDO *");<br />

trace("* --> REVISAR EL CIRCUITO<br />

}<br />

trace("***************************************************");<br />

muestraM<strong>en</strong>sajeEstado(" 03:: ERROR EN LA SIMULACION: REVISAR<br />

"naranja","alerta");<br />

}<br />

// --- Simu<strong>la</strong>cion exitosa ---<br />

if (simu<strong>la</strong>cionValida) {<br />

// --- Recupera valores <strong>de</strong> <strong>la</strong> simu<strong>la</strong>cion ---<br />

LD = simu<strong>la</strong>dor_AC.LD;<br />

// --- Craer nodos visuales ---<br />

crearNodosVisuales();<br />

// --- Asignar resultados <strong>de</strong> <strong>la</strong> simu<strong>la</strong>cion a cada compon<strong>en</strong>te ---<br />

asignarResultadosSimu<strong>la</strong>cionAC();<br />

}<br />

}<br />

// --- Simu<strong>la</strong>cion exitosa ---<br />

return simu<strong>la</strong>cionValida;<br />

public function crearNodosVisuales():void {<br />

// --------------------------------------------------------<br />

// G<strong>en</strong>eracion <strong>de</strong> "nodos visuales" que se agregan <strong>en</strong> <strong>la</strong><br />

// repres<strong>en</strong>tacion <strong>en</strong> <strong>3D</strong> como "puntos" (MovieClip's) <strong>en</strong><br />

// <strong>la</strong>s uniones <strong>de</strong> los elem<strong>en</strong>tos <strong>de</strong> circuito<br />

// --------------------------------------------------------<br />

nodosVisuales = new Array();<br />

var nodo:NodoAC;<br />

var magnitud:Number;<br />

var fase:Number;<br />

var x_n:Number, y_n:Number;<br />

var z_n:Array;<br />

var obj:Object;<br />

// --- Normalizar magnitud <strong>de</strong> voltajes nodales ---<br />

normalizarMagnitudVoltajesComplejos();<br />

for (i in red.nodosTerminales) {<br />

// Asignacion <strong>de</strong> <strong>la</strong>s coord<strong>en</strong>adas (x,y,z) para cada "nodo visual"<br />

x_n = parametros.puntosRejil<strong>la</strong>[red.nodosTerminales[i][0]].xg;<br />

y_n = parametros.puntosRejil<strong>la</strong>[red.nodosTerminales[i][0]].yg;<br />

// Se utiliza signo negativo por conv<strong>en</strong>cion <strong>de</strong> sistema <strong>de</strong> ejes x,y,z<br />

// --- V(t) = magnitud*Cos<strong>en</strong>o(wt + fase) ---<br />

magnitud = -voltajesNodalesComplejos[i].x;<br />

fase = -voltajesNodalesComplejos[i].y;<br />

if (voltajeMaximoMagnitud != 0) {<br />

magnitud = magnitud*esca<strong>la</strong><strong>3D</strong>_voltaje/voltajeMaximoMagnitud;<br />

}<br />

// -----------------------------------------------------------<br />

// G<strong>en</strong>era y asigna a cada nodo visual, una tab<strong>la</strong> con los<br />

// valores <strong>de</strong> voltaje nodal <strong>de</strong>fasados <strong>de</strong> acur=erdo a los<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!