hsvd

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

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

Синтаксис

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

Описание

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

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

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

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

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

Примеры

свернуть все

Создайте систему с устойчивым полюсом очень близко к 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 Scale> Log. Для получения информации о программно изменяющихся свойствах 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
      ⋮

Советы

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

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

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

Не рекомендуемый запуск в R2021a

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

| | |

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