Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Crear interfaces gráficas con actualizaciones de gráficas de respuesta interactivas

Este ejemplo muestra cómo crear una interfaz gráfica para visualizar una gráfica de respuesta de Control System Toolbox™ que cambie en respuesta a entradas interactivas.

La interfaz gráfica de este ejemplo muestra la respuesta al escalón de un sistema dinámico de segundo orden de frecuencia natural fija. La interfaz gráfica incluye un control deslizante para establecer el coeficiente de amortiguamiento del sistema. Para que la gráfica de respuesta refleje la configuración del control deslizante, debe definir un callback para el control deslizante. Este callback utiliza el comando updateSystem para actualizar la gráfica con los nuevos datos del sistema, en respuesta a los cambios en la configuración del control deslizante.

Establezca los valores iniciales del sistema dinámico de segundo orden y cree el modelo del sistema.

zeta = .5;                           % Damping Ratio
wn = 2;                              % Natural Frequency
sys = tf(wn^2,[1,2*zeta*wn,wn^2]); 

Cree una figura para la interfaz gráfica y configure los ejes para visualizar la respuesta al escalón.

f = figure;
ax = axes('Parent',f,'position',[0.13 0.39  0.77 0.54]);
h = stepplot(ax,sys);
setoptions(h,'XLim',[0,10],'YLim',[0,2]);

Añada el control deslizante y el texto de la etiqueta del control deslizante a la figura.

b = uicontrol('Parent',f,'Style','slider','Position',[81,54,419,23],...
              'value',zeta, 'min',0, 'max',1);
bgcolor = f.Color;
bl1 = uicontrol('Parent',f,'Style','text','Position',[50,54,23,23],...
                'String','0','BackgroundColor',bgcolor);
bl2 = uicontrol('Parent',f,'Style','text','Position',[500,54,23,23],...
                'String','1','BackgroundColor',bgcolor);
bl3 = uicontrol('Parent',f,'Style','text','Position',[240,25,100,23],...
                'String','Damping Ratio','BackgroundColor',bgcolor);

Configure el callback para que actualice la gráfica de respuesta al escalón, a medida que se mueve el control deslizante del coeficiente de amortiguamiento.

b.Callback = @(es,ed) updateSystem(h,tf(wn^2,[1,2*(es.Value)*wn,wn^2])); 

Este código establece el callback del control deslizante (identificado como b) en una función anónima. Los argumentos de entrada a esta función anónima, es y ed, se pasan automáticamente al callback cuando se usa el control deslizante. es es el identificador de uicontrol que representa el control deslizante, y ed es la estructura de datos de eventos que el control deslizante pasa automáticamente al callback. No es necesario definir estas variables o establecer sus valores en el área de trabajo. (Para obtener más información sobre callbacks de interfaces de usuario, consulte Create Callbacks for Graphics Objects).

El callback es una llamada a la función updateSystem, que reemplaza los datos de respuesta representados por una respuesta derivada de una nueva función de transferencia. El callback utiliza los datos del control deslizante es.Value para definir un sistema de segundo orden cuyo coeficiente de amortiguamiento es el valor actual del control deslizante.

Ahora que ha configurado el callback, mueva el control deslizante. La respuesta al escalón cambia, como se esperaba.

Consulte también

|

Temas relacionados