В этом примере показано, как создать графический интерфейс пользователя для отображения графика ответа Toolbox™ системы управления, который изменяется в ответ на интерактивный ввод.
GUI в этом примере отображает ступенчатую характеристику динамической системы второго порядка фиксированной собственной частоты. Графический интерфейс пользователя содержит ползунок, задающий коэффициент демпфирования системы. Чтобы график отклика отражал настройки ползунка, необходимо определить обратный вызов ползунка. Этот обратный вызов использует updateSystem для обновления графика новыми системными данными в ответ на изменения в настройках ползунка.
Задайте начальные значения динамической системы второго порядка и создайте модель системы.
zeta = .5; % Damping Ratio wn = 2; % Natural Frequency sys = tf(wn^2,[1,2*zeta*wn,wn^2]);
Создайте рисунок для графического интерфейса пользователя и настройте оси для отображения ответа на шаг.
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]);
Добавьте ползунок и текст метки ползунка к рисунку.
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);

Установите обратный вызов, который обновляет график отклика шага при перемещении ползунка коэффициента демпфирования.
b.Callback = @(es,ed) updateSystem(h,tf(wn^2,[1,2*(es.Value)*wn,wn^2]));
Этот код задает обратный вызов для ползунка (идентифицируется как b) анонимной функции. Входные аргументы для этой анонимной функции, es и ed, автоматически передаются в обратный вызов при использовании ползунка. es является рукояткой uicontrol , которая представляет ползунок, и ed - структура данных события, которую ползунок автоматически передает в обратный вызов. Нет необходимости определять эти переменные в рабочей области или задавать их значения. (Дополнительные сведения о обратных вызовах пользовательского интерфейса см. в разделе Определение обратного вызова.)
Обратный вызов - это вызов updateSystem , которая заменяет построенные на графике данные ответа ответом, полученным из новой передаточной функции. Обратный вызов использует данные ползунка es.Value для определения системы второго порядка, коэффициент демпфирования которой является текущим значением ползуна.
После установки обратного вызова переместите ползунок. Отображаемый ответ шага изменяется, как и ожидалось.
