Está en la página 1de 4

Desarrollo de aplicación.

opción: es el menú emergente llamado


opción. Y 'value' se usa para obtener el
Una vez obtenidos los modelos
valor numérico del menú emergente
matemáticos de los sistemas se empezó a
dependiendo de la opción seleccionada
trabajar en la interfaz de usuario guide; se
optó por usar un menú emergente que op almacena el valor numérico del menú
contenga las 4 opciones de los modelos a emergente. Luego se usa un if para hacer
analizar. se procedió a utilizar la propiedad aparecer los textos estáticos y textos de
de la función set ‘invincible’,’on/off’ para edición correspondientes a cada sistema en
aparecer y desaparecer ya sea textos el menú emergente, asi:
estáticos o textos de edición dependiendo
if op==2
del sistema seleccionado:
figura=imread('a.jpg'); %Leer imagen
set(handles.fig,'visible','off'); axes(handles.fig); %Carga la imagen en
set(handles.ci1,'visible','off'); background
set(handles.ci2,'visible','off'); axis off;
set(handles.ci3,'visible','off'); imshow(figura); %Presenta la imagen
set(handles.ci4,'visible','off'); set(handles.text34,'visible','off');
set(handles.ci5,'visible','off'); set(handles.text35,'visible','off');
set(handles.ci6,'visible','off'); set(handles.text33,'visible','off');
set(handles.ci7,'visible','off'); set(handles.text29,'visible','off');
set(handles.ci8,'visible','off'); set(handles.text30,'visible','off');
set(handles.posicionq1b,'visible','off'); set(handles.text31,'visible','off');
set(handles.velocidadq1b,'visible','off'); set(handles.text32,'visible','off');
set(handles.posicionq2b,'visible','off'); set(handles.text26,'visible','on');
set(handles.velocidadq2b,'visible','off'); set(handles.text27,'visible','on');
set(handles.edit13,'visible','off'); set(handles.text28,'visible','on');
set(handles.text21,'visible','off'); set(handles.edit9,'visible','on');
set(handles.text22,'visible','off'); set(handles.edit10,'visible','on');
set(handles.text23,'visible','off'); set(handles.edit11,'visible','on');
set(handles.text24,'visible','off'); set(handles.edit12,'visible','off');
set(handles.text25,'visible','off'); set(handles.edit13,'visible','off');
set(handles.text26,'visible','off'); set(handles.text21,'visible','off');
set(handles.text27,'visible','off'); set(handles.text22,'visible','off');
set(handles.text28,'visible','off'); set(handles.text23,'visible','off');
set(handles.text29,'visible','off'); set(handles.text24,'visible','off');
set(handles.text30,'visible','off'); set(handles.text25,'visible','off');
set(handles.edit9,'visible','off'); set(handles.ci1,'visible','on');
set(handles.edit10,'visible','off'); set(handles.ci2,'visible','on');
set(handles.edit11,'visible','off'); set(handles.ci3,'visible','on');
set(handles.edit12,'visible','off'); set(handles.ci4,'visible','on');
set(handles.text33,'visible','off'); set(handles.ci5,'visible','on');
set(handles.text31,'visible','off'); set(handles.ci6,'visible','on');
set(handles.text32,'visible','off'); set(handles.ci7,'visible','on');
set(handles.text34,'visible','off'); set(handles.ci8,'visible','on');
set(handles.text35,'visible','off'); set(handles.posicionq1b,'visible','off');
set(handles.velocidadq1b,'visible','off')
De esta forma se “desaparecen” los textos ;
estáticos y los textos de edición. set(handles.posicionq2b,'visible','off');
set(handles.velocidadq2b,'visible','off')
Para hacerlos aparecer se usa la propiedad ;
de los menús emergentes la cual da un valor elseif op==3
numérico a cada salto de línea del menú: figura=imread('b.jpg'); %Leer imagen
axes(handles.fig); %Carga la imagen en
op=get(handles.opcion,'value'); background
axis off; set(handles.edit11,'visible','on');
imshow(figura); %Presenta la imagen set(handles.edit12,'visible','on');
set(handles.text34,'visible','off'); set(handles.edit13,'visible','off');
set(handles.text35,'visible','off'); set(handles.text21,'visible','off');
set(handles.text33,'visible','off'); set(handles.text22,'visible','off');
set(handles.text29,'visible','off'); set(handles.text23,'visible','off');
set(handles.text30,'visible','off'); set(handles.text24,'visible','off');
set(handles.text31,'visible','off'); set(handles.text25,'visible','off');
set(handles.text32,'visible','off'); set(handles.ci1,'visible','off');
set(handles.text26,'visible','off'); set(handles.ci2,'visible','off');
set(handles.text27,'visible','off'); set(handles.ci3,'visible','off');
set(handles.text28,'visible','off'); set(handles.ci4,'visible','off');
set(handles.edit9,'visible','on'); set(handles.ci5,'visible','off');
set(handles.edit10,'visible','on'); set(handles.ci6,'visible','off');
set(handles.edit11,'visible','on'); set(handles.ci7,'visible','off');
set(handles.edit12,'visible','on'); set(handles.ci8,'visible','off');
set(handles.edit13,'visible','on'); set(handles.posicionq1b,'visible','off');
set(handles.text21,'visible','on'); set(handles.velocidadq1b,'visible','off')
set(handles.text22,'visible','on'); ;
set(handles.text23,'visible','on'); set(handles.posicionq2b,'visible','off');
set(handles.text24,'visible','on'); set(handles.velocidadq2b,'visible','off')
set(handles.text25,'visible','on'); ;
set(handles.ci1,'visible','on'); set(handles.ci1,'visible','on');
set(handles.ci2,'visible','on'); set(handles.ci2,'visible','on');
set(handles.ci3,'visible','on'); set(handles.ci3,'visible','on');
set(handles.ci4,'visible','on'); set(handles.ci4,'visible','on');
set(handles.ci5,'visible','on'); set(handles.ci5,'visible','on');
set(handles.ci6,'visible','on'); set(handles.ci6,'visible','on');
set(handles.ci7,'visible','on'); set(handles.ci7,'visible','on');
set(handles.ci8,'visible','on'); set(handles.ci8,'visible','on');
set(handles.posicionq1b,'visible','off'); elseif op==5
set(handles.velocidadq1b,'visible','off') figura=imread('d.jpg'); %Leer imagen
; axes(handles.fig); %Carga la imagen en
set(handles.posicionq2b,'visible','off'); background
set(handles.velocidadq2b,'visible','off') axis off;
; imshow(figura); %Presenta la imagen
elseif op==4 set(handles.text34,'visible','off');
figura=imread('c.jpg'); %Leer imagen set(handles.text35,'visible','off');
axes(handles.fig); %Carga la imagen en set(handles.text33,'visible','on');
background set(handles.text29,'visible','on');
axis off; set(handles.text30,'visible','on');
imshow(figura); %Presenta la imagen set(handles.text31,'visible','on');
set(handles.text32,'visible','on');
set(handles.text34,'visible','on'); set(handles.text26,'visible','off');
set(handles.text35,'visible','on'); set(handles.text27,'visible','off');
set(handles.text33,'visible','off'); set(handles.text28,'visible','off');
set(handles.text29,'visible','off'); set(handles.edit9,'visible','on');
set(handles.text30,'visible','off'); set(handles.edit10,'visible','on');
set(handles.text31,'visible','on'); set(handles.edit11,'visible','on');
set(handles.text32,'visible','on'); set(handles.edit12,'visible','on');
set(handles.text26,'visible','off'); set(handles.edit13,'visible','on');
set(handles.text27,'visible','off'); set(handles.text21,'visible','off');
set(handles.text28,'visible','off'); set(handles.text22,'visible','off');
set(handles.edit9,'visible','on'); set(handles.text23,'visible','off');
set(handles.edit10,'visible','on'); set(handles.text24,'visible','off');
set(handles.text25,'visible','off'); datos de las ecuaciones dentro de la
set(handles.ci1,'visible','on'); interfaz.
set(handles.ci2,'visible','on');
set(handles.ci3,'visible','on'); Entonces se implemento dentro del
set(handles.ci4,'visible','on'); archivo.m que contenia la interfaz de
set(handles.ci5,'visible','on'); usuario de la siguiente manera
set(handles.ci6,'visible','on');
set(handles.ci7,'visible','on'); Un puntero llamado dx que contiene las
set(handles.ci8,'visible','on'); ecuaciones del sistema A, asi
set(handles.posicionq1b,'visible','off');
dx(1)= x(2);
set(handles.velocidadq1b,'visible','off')
; dx(2)= m2gsin(x(3));
set(handles.posicionq2b,'visible','off');
set(handles.velocidadq2b,'visible','off') dx(3)= x(4);
;
end dx(4)= -g*sin(x(3))/l;
este puntero se envía a la función ode45
La parte de código dentro de cada if que se que se usa para resolver ecuaciones
muestra a continuación es para mostrar la diferenciales enviándole condiciones
imagen del sistema que se está modelando. iniciales y un vector de tiempo
Esto para que el usuario tenga facilidad a la [t,x]=ode45(dx,rango_tiempo,ci);
hora de ingresar los datos que se requieren Ode45 retorna las respuestas al sistema en
para modelar una matriz x
figura=imread('d.jpg'); %Leer imagen Y los tiempos en un vector t.
axes(handles.fig); %Carga la imagen
axis off; El rango de tiempo para todos los sistemas
imshow(figura); %Presenta la imagen se definio asi:
la imagen se guarda en un axes llamado fig
rango_tiempo=[0:0.1:100];
y las condiciones iniciales se deben ingresar
Despues de esto se uso un botón llamado por el ususario asi:
simular para que una vez ingresados los cip1=get(handles.ci5,'string');
datos el usuario pueda observar la ci(1)=str2num(cip1);
animación del sistema y los valores de las ci1v=get(handles.ci6,'string');
coordenadas generalizadas ci(2)=str2num(ci1v);
cip2=get(handles.ci7,'string');
cla(handles.animacion,'reset'); ci(3)=str2num(cip2);
esta línea de código es usada para limpiar el ci2v=get(handles.ci8,'string');
axes “animación” cada vez que se pulse el ci(4)=str2num(ci2v);
botón “simular” si esta línea de código no generando un vector ci 1*4
estuviese las animaciones del sistema se
sobrescribirían una en la otra. La matriz x contiene las respuestas a los
movimientos y se procede a analizar los
Para el ingreso de las ecuaciones obtenidas movimientos de cada coordenada ya que
en el modelamiento matemático hecho para usar la función patch se deben ingresar
anteriormente se uso la siguiente linea de datos en x y datos en y del movimiento.para
código. los puntos B y D no fue necesario analizar
el movimiento ya que ambos sistemas solo
dx=@(t,x)[x(2);(m2*g*sin(x(3)))/m1;x(4); se movían en una coordenada (x o y), pero
(-g*sin(x(3))/l)]; los movimientos de A y C que contenían un
no se pudo usar un archivo .m aparte que movimiento angular se requerían la división
contuviera las ecuaciones de cada sistema de componentes en X y Y.
ya que era necesario modificar algunos

También podría gustarte