Matlab - Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

   
Vista:

Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

Publicado por Guillermo (15 intervenciones) el 26/07/2017 12:50:20
Estoy trabajando con una nueva toolbox de matlab para crear interfaces de usuario (app designer) que se puede utilizar a partir de la versión 2016b. La duda es que no se como representar la gráfica de un scope del modelo de simulink en la interfaz de usuario creada en app designer. Es la primerra vez que escribo en este foro pero lo he consultado varias veces y se me han resuelto diversas dudas que me han ido surgiendo. Espero que alguien pueda ayudarme.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

este proceso requiere de muchos pasos, uno de ellos es que obtengas el componente de simulink por código, no sé si ya has trabajado con esto antes, con la función get_param luego de esto debes llamar la función printToFigureCallback para que te lo grafique en el guide
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

Publicado por Guillermo (15 intervenciones) el 26/07/2017 18:31:49
No he trabajado antes con interfaces de ususario, es la primera vez que desarrollo una. He conseguido ejecutar el modelo de simulink desde la interfaz y modificar los parámetros de los bloques con la función set_param. Pero lo de exportar la gráfica a la interfaz mientras se ejecuta el simulink es lo que no consigo. No se si coconoces algún ejemplo o guia que pueda ayudarme a resolverlo.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

el appdesigner aún no tiene soporte para establecer conexiones completamente con la programación de las figuras de antes , el scope está dentro de una figure que las puedes presentar en un guide , una vez corras el modelo de simulink puedes ejecutar esto para mostrarlo en una figure y esa figure sí la puedes mostrar en una interfaz realizada mediante guide

1
2
3
4
5
sn = get_param(gcb,'Name');
             hs = findall(0,'Name',sn);
              hf = figure('Position',get(hs,'Position'));
             hp = findobj(hs.UserData.Parent,'Tag','VisualizationPanel');
             copyobj(hp,hf)


si tienes matlab R2016b entonces puedes guardar la figure como una imagen y luego visualizarla pero solo como una imagen en el app designer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar una gráfica (Scope de Simulink) a una interfaz de usuario

Publicado por Guillermo (15 intervenciones) el 27/07/2017 17:41:27
Antes de recibir el mensaje estuve probando a llevar los valores que toma la variable de abcisas("tout") y la de ordenadas("simout") mediante el bloque "to workspace" y luego llevarlos a la interfaz mediante la funcion evalin() para asi luego poder representarlos mediante un plot pero el problema es que cuando pongo el tiempo de simulación infinito la grafica toma muchos valores y entonces no se pude distinguir con claridad si reduzco dicho intervalo se ve la grafica perfectamnete. No se si puede solucionar esto, sino probare con la segunda opción que me ha comentado ya que en la primera aparecen las funciones get y UserData y por lo que he estado leyendo esas funciones ya no se utilizan en "app designer" (aunque no estoy muy seguro). Le escribo el código que he desarrollado para el boton switch.
Muchas gracias por su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% Value changed function: Switch
function SwitchValueChanged(app, event)
	value = app.Switch.Value;
	switch value
		case 'Stop'
			app.Running.Color='red';
			set_param(gcs,'SimulationCommand','Stop')
			plot(app.Up3grafica,0,0);
		case 'Run'
			app.Running.Color='green';% Modificar el color de la lámpara
			find_system('Name','prueba'); % Encuentra el modelo creado en Simulink
			set_param(gcs,'SimulationCommand','Start') % Ejecuta el modelo de Simulink
			x=evalin('base', 'tout');
			y=evalin('base', 'simout');
			plot(app.Up3grafica,x,y);
	end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar