Создайте графический интерфейс пользователя с интерактивными обновлениями графика ответа

Этот пример показывает, как создать графический интерфейс пользователя, чтобы отобразить график ответа 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 является структурой данных о событиях, которую ползунок автоматически передает коллбэку. Вы не должны задавать эти переменные в рабочей области или устанавливать их значения. (Для получения дополнительной информации о коллбэках пользовательского интерфейса, см. Определение Коллбэка (MATLAB).)

Коллбэк является вызовом функции updateSystem, которая заменяет отображенные на графике данные об ответе на ответ, выведенный от новой передаточной функции. Коллбэк использует данные о ползунке es.Value, чтобы задать систему второго порядка, затухание которой отношения является текущим значением ползунка.

Теперь, когда вы установили коллбэк, переместите ползунок. Отображенный переходной процесс изменяется как ожидалось.

Смотрите также

|

Похожие темы