В этом примере показано, как создать графический интерфейс пользователя, чтобы отобразить график отклика Control System Toolbox™, который изменяется в ответ на интерактивный вход.
Графический интерфейс пользователя в этом примере отображает переходной процесс динамической системы второго порядка фиксированной собственной частоты. Графический интерфейс пользователя включает ползунок, который устанавливает коэффициент затухания системы. Чтобы заставить график отклика отражать установку ползунка, необходимо задать коллбэк для ползунка. Этот коллбэк использует 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
задавать систему второго порядка, коэффициент затухания которой является текущим значением ползунка.
Теперь, когда вы установили коллбэк, переместите ползунок. Отображенный переходной процесс изменяется как ожидалось.