hsvd

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

Синтаксис

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 энергетическими вкладами в интервалах частоты и определенном времени. Смотрите hsvdOptions для деталей.

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

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)

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

По умолчанию hsvd использует линейную шкалу. Чтобы переключить график на логарифмическую шкалу, щелкните правой кнопкой по графику и выберите Y Scale> Log. Для получения информации о программно изменяющихся свойствах графиков HSV смотрите hsvplot.

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

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

load modeselect Gms
bodeplot(Gms)

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

opts = hsvdOptions('FreqInterval',[30 Inf]);
hsvd(Gms,opts)

Советы

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

Алгоритмы

AbsTol, RelTol и опции Offset hsvdOptions только используются для моделей с нестабильной или незначительно стабильной динамикой. Поскольку сингулярные значения Ганкеля только значимы для стабильной динамики, hsvd должен сначала разделить такие модели в сумму их стабильных и нестабильных частей:

   G = G_s + G_ns

Это разложение может быть хитрым, когда модель имеет режимы близко к контуру устойчивости (например, полюс в s=-1e-10), или кластеры режимов на контуре устойчивости (например, дважды или тройные интеграторы). В то время как hsvd может преодолеть эти трудности в большинстве случаев, он иногда приводит к неожиданным результатам такой как

  1. Большие сингулярные значения Ганкеля для стабильной части.

    Это происходит, когда стабильная часть G_s содержит некоторые полюса очень близко к контуру устойчивости. Чтобы обеспечить такие режимы в нестабильную группу, увеличьте опцию 'Offset', чтобы немного вырастить нестабильный регион.

  2. Слишком много режимов маркированы "нестабильными". Например, вы видите 5 красных панелей в графике HSV, когда ваша модель имела только 2 нестабильных полюса.

    Стабильный/нестабильный алгоритм разложения имеет встроенные проверки точности, которые отклоняют разложения, вызывающие значительную потерю точности в частотной характеристике. Такая потеря точности возникает, например, при попытке разделить кластер стабильных и нестабильных режимов около s=0. Поскольку такие кластеры численно эквивалентны полюсу кратного в s=0, на самом деле желательно обработать целый кластер как нестабильный. В некоторых случаях, однако, большие относительные погрешности в диапазонах частот низкого усиления могут сместиться проверки точности и привести к отклонению допустимых разложений. Дополнительные режимы затем поглощены в нестабильную часть G_ns, незаконно увеличив его порядок.

    Такие проблемы могут быть легко исправлены путем корректировки допусков RelTol и AbsTol. Установкой AbsTol к части самого маленького усиления интереса к вашей модели вы говорите алгоритму игнорировать ошибки ниже определенного порога усиления. Путем увеличения RelTol вы говорите алгоритму жертвовать некоторой относительной точностью модели в обмен на хранение большего количества режимов в стабильной части G_s.

Если вы используете TimeIntervals или опции FreqIntervals hsvdOptions, то hsvd основывает вычисление энергетических вкладов состояния на ограниченной временем или ограниченной частотой управляемости и наблюдаемости Gramians. Для получения информации о вычислении ограниченного временем и ограниченного частотой Gramians смотрите gram и [1].

Ссылки

[1] Гавронский, W. и Дж.Н. Джуэнг. “Снижение сложности модели в Интервалах Ограниченного времени и Частоты”. Международный журнал Системной Науки. Издание 21, Номер 2, 1990, стр 349–376.

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

| | |

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