Настройка графиков отклика из командной строки

Обзор пользовательских графиков из командной строки

Когда настроить графики из командной строки

Можно настроить любой график отклика из командной строки. Командная строка является наиболее эффективным способом настройки большого количества графиков. Например, если у вас есть пакетное задание, которое производит много графиков, можно автоматически изменить модули измерения оси X для всего графика с несколькими строками кода.

Как настроить графики из командной строки

Можно использовать интерфейс прикладной программы Control System Toolbox™ (API), чтобы настроить опции графического изображения для графиков отклика из командной строки.

Примечание

Этот раздел принимает некоторые очень основные знакомства с MATLAB® графические объекты. Для получения дополнительной информации см. раздел «Графические объекты».

Чтобы настроить графики из командной строки:

  1. Получите указатель на график, который является идентификатором для графика, используя синтаксис графического изображения API.

    Для примера,

    h = stepplot(sys)
    

    возвращает указатель на график h для графика шага.

    Для получения дополнительной информации о получении указателей на график см. Раздел «Получение указателей на график».

  2. Получите указатель опций графика, который является идентификатором для всех настраиваемых опций графика. Чтобы получить указатель на опции графика для заданного графика, введите

    p = getoptions(h);
    

    p - указатель на опции графика для указателя на график h.

    Дополнительные сведения о получении указателей опций графика см. в разделе Получение указателей опций графика.

  3. Использовать setoptions, наряду с указателем на график и указателем на опции графика, для доступа и изменения многих опций графика.

Примечание

Вы также можете использовать setoptions для настройки графиков с помощью пар свойство/значение вместо указателя на опции графика. Использование пар свойство/значение сокращает процедуру до одной строки кода.

Измените Диаграмму Боде Модулей из командной строки

В этом примере показано, как изменить модули диаграммы Боде с рад/с на Гц.

Создайте систему и сгенерируйте Диаграмма Боде отклика системы. График использует модули по умолчанию, рад/с.

sys = tf(4,[1 0.5 4]);
h = bodeplot(sys);

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys.

The bodeplot команда возвращает указатель на график, который можно использовать для изменения свойств графика.

Измените модули измерения на Гц.

p = getoptions(h);
p.FreqUnits = 'Hz';
setoptions(h,p)

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys.

Метка оси X обновляется, чтобы отразить изменение модуля.

Для получения дополнительных примеров настройки графиков из командной строки см. Примеры настройки графиков из командной строки.

Получение указателей на график

Чтобы программно взаимодействовать с графиком отклика, вам нужен указатель на график. Этот указатель является идентификатором объекта графика отклика. Поскольку команды графического изображения Control System Toolbox, bode, rlocus, и т.д., все используют указатель на график внутренне, этот API предоставляет набор команд, которые явным образом возвращают указатель на ваш график отклика. Все эти функции заканчиваются «графиком», что облегчает их идентификацию. В этой таблице перечислены функции.

Функции, которые возвращают указатель на график

Функция

График

bodeplot

Bode величины и фаза

hsvplot

Сингулярные значения Ханкеля

impulseplot

Импульсная характеристика

initialplot

Начальное условие

iopzplot

Карты полюс/ноль для пар вход/выход

lsimplot

Временная характеристика на произвольные входы

nicholsplot

График Николса

nyquistplot

Найквист

pzplot

Полюс/ноль

rlocusplot

Корневой годограф

sigmaplot

Сингулярные значения частотной характеристики

stepplot

Переходная характеристика

Чтобы получить указатель на график для любого графика отклика, используйте функции из таблицы. Для примера,

h = bodeplot(sys)

возвращает указатель на график h (он также отображает диаграмму Боде). Если у вас есть этот указатель, можно изменить свойства графика, используя setoptions и getoptions методы объекта график, в этом случае указатель диаграмма Боде.

Получение указателей опций графика

Обзор указателей опций графика

Если у вас есть указатель на график, вам нужен указатель на опции графика, который является идентификатором для всех настраиваемых свойств графика для данного графика отклика. Существует два способа создать указатель на опции графика:

  • Получение указателя - использование getoptions чтобы достать указатель.

  • Создание указателя - Использование <responseplot>options для создания экземпляра указателя. Полный список функций см. в разделе «Создание указателей опций графика».

Получение указателя

The getoptions функция извлекает указатель на опции графика из указателя на график.

p=getoptions(h) % Returns plot options handle p for plot handle h.

Если вы задаете имя свойства как входной параметр, getoptions возвращает значение свойства, связанное с именем свойства.

property_value=getoptions(h,PropertyName) % Returns a property 
                                          % value.

Создание указателя

Можно создать указатель опций графика по умолчанию с помощью функций в форме

<responseplot>options

Для примера,

p=bodeoptions;

Экземпляр указателя для диаграмм Боде. Список значений по умолчанию см. в ссылке на свойства и значения».

Если вы хотите задать значения по умолчанию для значений по умолчанию Control System Toolbox, передайте cstprefs в функцию. Для примера,

p = bodeoptions('cstprefs');

установите для пар «свойство/значение Диаграммы Боде» значения по умолчанию Control System Toolbox.

В этой таблице перечислены функции, которые создают указатель на опции графика.

Функции для создания указателей опций графика

Функция

Тип созданного указателя опций графика

bodeoptions

Величина Bode

hsvoptions

Сингулярные значения Ханкеля

nicholsoptions

График Николса

nyquistoptions

Годограф Найквиста

pzoptions

График полюса/ноль

sigmaoptions

График Сигмы (сингулярные значения)

timeoptions

Временная характеристика (импульс, шаг и т.д.)

Какие свойства можно изменить?

Использовать

help <responseplot>options

чтобы просмотреть список доступных пар значений свойств, которые можно изменить. Для примера,

help bodeoptions

Можно изменить любой из этих параметров, используя setoptions. В следующей теме приведены примеры изменения различных графиков отклика.

Полный список пар «свойства/значение» см. в ссылке «Свойства и значения» для графиков отклика.

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

Манипуляции с указателями опций графика

Существует два основных способа манипулирования указателями на опции графика:

  • Запись через точку - обрабатывайте указатель как структуру MATLAB.

  • Пары значений свойства - Задайте пары свойство/значение явным образом как входные параметры к setoptions.

Для некоторых примеров показаны подходы как к записи через точку, так и к парам свойство/значение. Для всех примеров используйте

sys = tf(1,[1 1]);

Изменение модулей графика

Измените модули частоты Диаграммы Боде с рад/с на Гц. Для этого извлеките опции p из указателя на график отредактируйте опции и присвойте их графику.

h = bodeplot(sys);
p = getoptions(h); 
p.FreqUnits = 'Hz'; 
setoptions(h,p)

Также вместо извлечения p, установите опции h непосредственно.

setoptions(h,'FreqUnits','Hz')

Создание графиков с использованием указателя на существующие опции графика

Можно использовать существующий указатель на опции графика, чтобы настроить второй график:

h1 = bodeplot(sys);
p1 = getoptions(h1);
h2 = bodeplot(sys,p1);

или

h1 = bodeplot(sys);
h2 = bodeplot(sys2);
setoptions(h2,getoptions(h1))

Создание указателя на опции графика по умолчанию

Создайте экземпляр указателя опций графика с этим кодом.

p = bodeoptions;

Измените модули измерения частоты и примените изменения к sys.

p.FreqUnits ='Hz';
h = bodeplot(sys,p);

Использование записи через точку подобно структуре

Вы всегда можете использовать запись через точку, чтобы присвоить значения свойствам и изменить сразу несколько свойств графика.

h1 = bodeplot(sys);
p1 = getoptions(h1);
p1.FreqUnits = 'Hz';
p1.Title.String  =  'My Title';
setoptions(h1,p1)

Установка пар свойств в настройках

Вместо использования записи через точку задайте модули как пары свойство/значение в setoptions.

h1 = bodeplot(sys)
setoptions(h1,'FreqUnits','Hz')

Проверьте, что модули изменились с рад/с на Гц.

getoptions(h1,'FreqUnits') % Returns frequency units for h1.
ans =

Hz

Ссылка на свойства и значения

Пары свойства/значения, общие для всех графиков отклика

В следующих таблицах обсуждаются пары свойство/значение, общие для всех графиков отклика.

Заголовок

СвойствоЗначение по умолчанию

Описание

Title.String

ничего

Заголовок графика, например 'My Response Plot'.

Title.FontSize

8

Double

Title.FontWeight

нормальный

[light | normal | demi]

Title.FontAngle

нормальный

[normal | italic | oblique]

Title.Color

[0 0 0]

1-by-3 RGB vector

Метка X

Свойство

Значение по умолчанию

Описание

XLabel.String

ничего

Метка оси X, такая как 'Input Frequency'.

Xlabel.FontSize

8

Double

Xlabel.FontWeight

нормальный

[light | normal | demi]

XLabel.FontAngle

нормальный

[normal | italic | oblique]

Xlabel.Color

[0 0 0]

1-by-3 RGB vector

Метка Y

СвойствоЗначение по умолчанию

Описание

YLabel.String

ничего

Метка оси Y, например 'Control Signal Magnitude'.

Ylabel.FontSize

8

Double

Ylabel.FontWeight

нормальный

[light | normal | demi]

YLabel.FontAngle

нормальный

[normal | italic | oblique]

Ylabel.Color

[0 0 0]

1-by-3 RGB vector

Такт

Свойство

Значение по умолчанию

Описание

TickLabel.FontSize

8

Double

TickLabel.FontWeight

нормальный

[light | normal | demi]

TickLabel.FontAngle

нормальный

[normal | italic | oblique]

Ticklabel.Color

[0 0 0]

1-by-3 RGB vector

Сетка и Пределы по осям

Свойство

Значение по умолчанию

Описание

grid

off

[on | off]

Xlim

{[]}

Массив ячеек 1 на 2 удваивается, что задает пределы оси X при XLimMode устанавливается в ручном режиме. Когда XLim скаляром, применяется скалярное расширение; в противном случае длина массива ячеек должна равняться количеству столбцов (т.е. количеству системных входов) для графика. Двойки 1 на 2 должны быть строго увеличивающейся парой [xmin, xmax].

XLimMode

{'auto'}

Массив ячеек, где каждая запись либо 'auto' или 'manual'. Эти значения определяют режим пределов по оси X соответствующей оси. Когда XLimMode устанавливается вручную, пределы устанавливаются на значения, указанные в XLim. Когда XLim скаляром, применяется скалярное расширение; в противном случае длина массива ячеек должна равняться количеству столбцов (т.е. количеству системных входов) для графика.

YLim

{[]}

Массив ячеек с двойным числом 1 на 2 задает пределы оси Y при YLimMode устанавливается в ручном режиме. Когда YLim скаляром, применяется скалярное расширение; в противном случае длина массива ячеек должна равняться количеству строк (т.е. количеству системных выходов) для графика. Двойки 1 на 2 должны быть строго увеличивающейся парой [ymin, ymax].

YLimMode

{'auto'}

Массив ячеек, где каждая запись либо 'auto' или 'manual'. Эти значения определяют режим пределов по оси Y соответствующей оси. Когда YLimMode устанавливается вручную, пределы устанавливаются на значения, указанные в YLim. Когда YLim скаляром, применяется скалярное расширение; в противном случае длина массива ячеек должна равняться количеству строк (т.е. количеству системных выходов) для графика.

Группировка ввода-вывода

Свойство

Значение по умолчанию

Описание

IOGrouping

ничего

[none | inputs | outputs | all]

Задает входные/выходные группы для ответов.

Входные метки

Свойство

Значение по умолчанию

Описание

InputLabels.FontSize

8

Double

InputLabels.FontWeight

нормальный

[light | normal | demi]

InputLabels.FontAngle

нормальный

[normal | italic | oblique]

InputLabels.Color

[0 0 0]

1-by-3 RGB vector

Выходные метки

Свойство

Значение по умолчанию

Описание

OutputLabel.FontSize

8

Double

OutputLabels.FontWeight

нормальный

[light | normal | demi]

OutputLabels.FontAngle

нормальный

[normal | italic | oblique]

OutputLabels.Color

[0 0 0]

1-by-3 RGB vector

Вход/выход виден

Свойство

Значение по умолчанию

Описание

InputVisible

{on}

[on | off]

Массив ячеек, который задает видимость каждого входного канала. Если значение скаляром, применяется скалярное расширение.

OutputVisible

{on}

[on | off]

Массив ячеек, который задает видимость каждого выходного канала. Если значение скаляром, применяется скалярное расширение.

Диаграммы Боде

Свойство

Значение по умолчанию

Описание

FreqUnits

rad/s

 Доступные опции

FreqScale

log

[linear | log]

MagUnits

dB

[db | abs]

MagScale

linear

[linear | log]

PhaseUnits

deg

[rad | deg]

PhaseWrapping

off

[on | off]

Когда вы задаете PhaseWrapping на 'on'график оборачивает накопленную фазу со значением, заданным PhaseWrappingBranch свойство.

PhaseWrappingBranch

–180

Double

Значение фазы, при котором график оборачивает накопленную фазу, когда PhaseWrapping установлено в 'on'

MagVisible

on

[on | off]

PhaseVisible

on

[on | off]

MagLowerLimMode

auto

[auto | manual]

Включает ручную спецификацию нижнего предела величины по MagLowerLim.

MagLowerLim

0

Double

Задает нижний предел величины, когда MagLowerLimMode установлено в manual.

PhaseMatching

off

[on | off]

Включает настройку эффектов фазы для фазового отклика.

PhaseMatchingFreq

0

Double

PhaseMatchingValue

0

Double

Сингулярные значения Ханкеля

Свойство

Значение по умолчанию

Описание

Yscale

linear

[linear | log]

AbsTol

0

Double

Посмотрите hsvd и stabsep для получения дополнительной информации.

RelTol

1*e-08

Double

Посмотрите hsvd и stabsep для получения дополнительной информации.

Offset

1*e-08

Double

Посмотрите hsvd и stabsep для получения дополнительной информации.

Графики Николса

Свойство

Значение по умолчанию

Описание

FreqUnits

rad/s

 Доступные опции

MagUnits

dB

[dB | abs]

PhaseUnits

deg

[rad | deg]

MagLowerLimMode

auto

[auto | manual]

MagLowerLim

0

дважды

PhaseWrapping

off

[on | off]

Когда вы задаете PhaseWrapping на 'on'график оборачивает накопленную фазу со значением, заданным PhaseWrappingBranch свойство.

PhaseWrappingBranch

–180

дважды

Значение фазы, при котором график оборачивает накопленную фазу, когда PhaseWrapping установлено в 'on'

PhaseMatching

прочь

[вкл. | выкл.]

PhaseMatchingFreq

0

дважды

PhaseMatchingValue

0

дважды

Диаграммы Нюквиста

Свойство

Значение по умолчанию

Описание

FreqUnits

rad/s

 Доступные опции

MagUnits

dB

[dB | abs]

PhaseUnits

deg

[rad | deg]

ShowFullContour

on

[on | off]

Карты полюса/нуля

Свойство

Значение по умолчанию

Описание

FreqUnits

rad/s

 Доступные опции

TimeUnitsseconds

 Доступные опции

Сигма- Графики

Свойство

Значение по умолчанию

Описание

FreqUnits

rad/s

 Доступные опции

FreqScale

log

[linear | log]

MagUnits

dB

[dB | abs]

MagScale

linear

[linear | log]

Временные Графики отклика

Свойство

Значение по умолчанию

Описание

Normalize

off

[on | off]

Нормализуйте шкалу Y всех откликов на графике.

SettleTimeThreshold

0.02

Double

Задает пороговое время урегулирования. 0.02 = 2%.

RiseTimeLimits

[0.1, 0.9]

1-by-2 double

Задает пределы, используемые для определения времени нарастания. [0.1, 0.9] составляет от 10% до 90%.

TimeUnits

seconds

 Доступные опции