AAG SIMUMNRY SimpowerSysiems = | tes
lel botn. Ademés, en la propiedad Tag se escribe el nombre del uicontrol al cual
se hace referencia cuando se crean las funciones asociadas. Para dar color a los dis-
tos ulcontrols se seeeciona el color en la propiedad BackgroundColor del ins |
pector de propiedades |
\
i
Asi, el interfaz desarrollado tiene el aspecto que se muestra en la Figu- |
TT om i VE I
ny r i I =
t te tN
| i]
| Fura 3.29 ]
Aspecto del intertaz
Finalmente, se asignan las acciones a realizar por cada botén. Si la accién se
puede deseribir mediante
na tinica sentencia, bastaria con introducir esta en la
propiedad Callback del inspector de propiedades. Como no es el caso del ejem-
plo presentado, se emplea el M-File Editor. Para su uso, resultan de gran utilidad
las siguientes funciones:
+ gcbo: retorna el identificador del objeto (uicontrol) seleccionado para el |
que se van a definir las acciones a realizar,
+ gebf: retorna el identificador de la figura seleccionada para la que se v
definir las acciones a realizar.
Para abrir el M-File Editor, primero hay que guardar el disefto del interfaz con
el nombre circuitoRLC fig. Automaticamente se genera un fichero .m llamado cir
cuitoRLC.m
| fichero .m creado contiene:
* Un cédigo de inicializacién no editable.
+ Un conjunto de funciones asociadas a los distintos objetos que han sido
introducidos en el interfaz.
n el ejemplo desarrollado, el fichero circuitoRLC.m contiene el siguiente codi-
go de inicializaciérus| Simulacién de sistemas Gea Tae
1 a =
ai ibac a
Tras este cédigo inicial aparecen todas las funciones generadas automética
mente a medida que se han introducido los diferentes objetos en el interfaz. Para
1 ejemplo desarrollado, se han creado las siguientes funciones:
Fu
don
Fun
delee MATLAB Simulink ySimPowersystems | us
Funciones de apertura del interfaz {
«+ function circuitoRLC_OpeningFen(hObject, eventdata, handles, varar: \
gin) {
Se cjccuta justo antes de que la ventana se haga visible y actualiza los han- i
des. En esta funci6n se pueden afiadir las Grdenes que se desea sean ejecu- {
tadas de forma previa a la visualizacién del interfaz, /
+ function varargout = circuitoRLC_OutputFen (hObject, eventdata, han.
dies)
Obtiene las salidas de los handles actualizados
Funciones asociadas a la creaci6n de los uicontrols del tipo Edit Text
+ function tension_CreateFen(hObject, eventdata, handles) 1
* function resistencia_CreateFen(hObject, eventdata, handles)
* function capacidad_CreateFen(hObject, eventdata, handles)
+ function inductancia_CreateFcn(hObject, eventdata, handles)
+ function fasetens_CreateFen(hObject, eventdata, handles)
+ function intensidad_CreateFcn(hObject, eventdata, handles)
+ function VR_CreateFen(hObject, eventdata, handles) i
+ function VC_CreateFen(hObject, eventdata, handles)
* function VL_CreateFen(hObject, eventdata, handles)
+ function faseintens_CreateFcn(hObject, eventdata, handles) |
+ function faseVR_CreateFen (hObject, eventdata, handles) {|
+ function faseVC_CreateFen (hObject, eventdata, handles)
+ function faseVL_CreateFen(hObject, eventdata, handles)
donde, por defecto, dichas ventanas tienen el fondo blanco.
Funciones en las que se deben escribir las acciones a realizar por cada uno
de los uicontrols
+ function tension_Callback(h, eventdata, handles)
+ function resistencia_Callback(h, eventdata, handles)
+ function capacidad_Callback(h, eventdata, handles)
+ function inductancia_Callback(h, eventdata, handles) |
+ function fasetens.Callback(h, eventdata, handles)
+ function calcular_Callback(hObject, eventdata, handles)
+ function intensidad_Callback(hObject, eventdata, handles)
+ function VR Callback(hObject, eventdata, handles)
+ function VC_Callback(hObject, eventdata, handles)
* function VL_Callback(hObject, eventdata, handles) |
+ function faseintens_Callback(hObject, eventdata, handles)
+ function faseVR_Callback(hObject, eventdata, handles)
+ function faseVC_Callback(hObject, eventdata, handles)
+ function faseVL_Callback(hObject, eventdata, handles)Como se desea que al pulsar el botén Calcular se realicen los célculos de las
magnitudes del circuito, es necesario introducir las oportunas sentencias dentro
de la funcion caleular_Callback asociada a dicho bot6n. Asi, con el M-File Editor
se introducen las siguientes sentencias:
ar_Callback (hObject data, handles
to be dine future v su
nana’ with nd user da F ot
. EL VALOR NUMERI: Los DATOS INTRODUC Mi
SE CONVIERTE A qu
adouble (get (hand el
rad (handles. faaetens, string} m
X-omega*L-1/(omega*C
ba (2
gle (2) *180/pi
angl= 2 vangulo de riente en grados ;
casi
8 SE MUFSTRAN LOS VALORES CALCULADOS. PARA ELLO non
ie ‘Tag
pon
ungate (2) unt
andles.VR, ‘string’ ,mumaetr (VR) ) ; inteMATLAB, Simulink y SimPowerSystems a7
Para completar el ejemplo, se afiade a la barra de mentis existente en la parte
superior, un ment que permita seleccionar distintas graficas con los resultados y
otro con la opcién de salir del programa
¢ el editor de mentis y se pincha con el raton en la opcién New
Menu, escribiéndose en la casilla correspondiente a Label el nombre de! ment
que se quiere que aparezca en la cabecera (en este caso Grificas), en la casilla Tag,
el nombre identificador del objeto y en la casilla Callback se escribe automética-
mente la funci6n de llamada, tal y como se muestra en la Figura 3.30.
mars |
Figura 3.30
reacion dl ment
\ continuacién, teniendo seleccionado el uimenu creado, se pincha en la
casilla New Menu Item para crear los subments. Se escribe en la casilla Label el
nombre que se quiere que aparezca en cada submenti (Intensidad) y en la casilla
Tag, el nombre de la funcién de llamada (menu_intensidad). Se repite el proceso
poniendo los labels VR,VC y VL para el resto de subments. Finalmente se aftade
un nuevo meng llamado Salir, tal como se muestra en la Figura 3.31
Al crear los meniis anteriores, se modifica el fichero circuitoRLC.m asociado al
interfaz, aftadiéndose las siguientes funciones, una para cada uno:ue | simula de sal ERO ; ze
mn seat etm
Pa
Fiquea sy | sees [Same
reacion del mer =) Ce
* function menu_graficas_Callback(hObject, eventdata, handles)
* function menu_intensidad_Callback(hObject, eventdata, handles)
+ function menu_VR Callback(hObject, eventdata, handles)
* function menu_VC_Callback(hObject, eventdata, handles)
* func enu_VL_Callback(hObject, eventdata, handles)
* function menu_salir_Callback(hObject, eventdata, handles)
En cada una de las funciones anteriores se escriben los comandos que se quie-
ren ejecutar al seleccionar cada opcién. En el ejemplo desarrollado:
Para el subment Grdficas=sIntensidad
function menu_Antensidad_Caliback entdata, handles)
2 ure with handles and user data (see GUID
Para49Para el submenét Gréificas>VL
no sc
el int
fu
8 grados
De
\ ieee ‘creado
"i
Yo
tambié
ment,
Para el ment SiHAUARSIMMIMRYSimPowersysiems = | 151
Por tiltimo, como se quiere que el meni Graficas esté deshabilitado mientras
no se pulse el botn Calcular, se afiade el siguiente c6digo en la funcién que abre
el interfaz:
function circuitoRLC_Openii
Fen (hObject, eventdata, handles, varargin)
handles.menu_graficas,
Yen la funcién del botén Calcular se afiade este otro c6digo:
function calcular_Callback(hObject, eventdata, handles)
handles.menu_graficas, ‘Enable’, 0
De este modo, mientras no se pulse el botén Calcular, el aspecto del interfaz
creado es el indicado en la Figura 3.32
Y cuando se pulse el botén Calcular, se obtienen los resultados numéricos y
también los resultados graficos, en funcién de la grafica que se seleccione en el
ment, como se muestra para el caso de la intensidad en la Figura 3.33.Figura 3.32
Aspeco de interaz
ejecutindose
Deus. aanse Oe eo
2 1 vires
Figura 335 r
Ejecucin del intefax -
my
7 Descripcién del entorno de trabajo de Simulink
Para comenzar a trabajar con Simulink se debe ejecutar previamente MATLAB,
Asi, si se teclea la orden simulink desde el prompt de MATLAB aparece la venta-
na del navegador de librerias de Simulink, mostrada en la Figura 3.34, mediante
la cual se puede acceder a las librerias de los bloques de las diferentes blocksets
de Simulink