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, незаконно увеличение его порядка.

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

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

Ссылки

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

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

| | |

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