exponenta event banner

hsvd

(Не рекомендуется) Сингулярные значения Hankel динамической системы

hsvd не рекомендуется. Использовать balred вместо этого. Дополнительные сведения см. в разделе Вопросы совместимости.

Синтаксис

hsv = hsvd(sys)
hsv = hsvd(sys,opts)
[hsv,baldata] = hsvd(___)
hsvd(___)

Описание

hsv = hsvd(sys) вычисляет сингулярные значения Ханкеля hsv динамической системы sys. В координатах состояния, которые выравнивают передачу энергии «вход-состояние» и «состояние-выход», сингулярные значения Ханкеля измеряют вклад каждого состояния в поведение «вход-выход». Сингулярные значения Hankel предназначены для моделирования порядка, в котором сингулярные значения относятся к рангу матрицы. В частности, малые сингулярные значения Ханкеля сигнализируют о состояниях, которые могут быть отброшены для упрощения модели (см. balred).

Для моделей с неустойчивыми полюсами hsvd вычисляет только сингулярные значения Ханкеля стабильной части и записей hsv соответствующие нестабильным режимам устанавливаются в Inf.

hsv = hsvd(sys,opts) вычисляет сингулярные значения Ханкеля с помощью опций, заданных с помощью hsvdOptions. Опции включают опции смещения и допуска для вычисления стабильно-нестабильных разложений. Опции также позволяют ограничить вычисления HSV вкладом энергии в пределах определенных временных и частотных интервалов. Посмотрите balredOptions для получения подробной информации.

[hsv,baldata] = hsvd(___) возвращает дополнительные данные для ускорения сокращения заказа модели. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.

hsvd(___) отображает график сингулярных значений Hankel.

Примеры

свернуть все

Создайте систему со стабильным полюсом, очень близким к 0, и отобразите сингулярные значения Ханкеля.

sys = zpk([1 2],[-1 -2 -3 -10 -1e-7],1);
hsv = hsvd(sys)
hsv = 5×1
105 ×

    1.6667
    0.0000
    0.0000
    0.0000
    0.0000

Обратите внимание на доминирующее сингулярное значение Ханкеля с величиной 105, которая настолько больше, что значащие цифры других режимов не отображаются. Это значение обусловлено близким к нестабильному режимом при s = 10-7. Используйте 'Offset' для обработки этого режима как нестабильного.

opts = hsvdOptions('Offset',1e-7);
hsvu = hsvd(sys,opts)
hsvu = 5×1

       Inf
    0.0688
    0.0138
    0.0024
    0.0001

Сингулярное значение Ханкеля для нестабильных или нестабильных режимов возвращается как Inf. Создайте график сингулярного значения Ханкеля, рассматривая этот режим как нестабильный.

hsvd(sys,opts)
ans = 5×1

       Inf
    0.0688
    0.0138
    0.0024
    0.0001

Нестабильный режим показан красным цветом на графике.

По умолчанию hsvd использует линейный масштаб. Чтобы переключить график на масштаб журнала, щелкните его правой кнопкой мыши и выберите «Масштаб Y» > «Журнал». Сведения о программном изменении свойств графиков HSV см. в разделе hsvplot.

Вычислите сингулярные значения Ханкеля модели с низкочастотной и высокочастотной динамикой. Фокусируйте расчет на высокочастотных режимах.

Загрузите модель и проверьте ее частотную характеристику.

load modeselect Gms
bodeplot(Gms)

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

Gms имеет два набора резонансов, один на относительно низкой частоте, а другой на относительно высокой частоте. Вычислите сингулярные значения Ханкеля высокочастотных режимов, исключая вклад энергии в низкочастотную динамику. Для этого используйте hsvdOptions для задания интервала частот выше 30 рад/с.

opts = hsvdOptions('FreqInterval',[30 Inf]);
hsvd(Gms,opts)
ans = 18×1
10-4 ×

    0.6237
    0.4558
    0.3183
    0.2468
    0.0895
    0.0847
    0.0243
    0.0028
    0.0000
    0.0000
      ⋮

Совет

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

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2021a

См. также

| | |

Представлен до R2006a