exponenta event banner

в тюках

Сокращение заказа модели

    Описание

    пример

    [rsys,info] = balred(sys,order) вычисляет аппроксимацию с уменьшенным порядком rsys модели LTI sys. Требуемый порядок (количество состояний) определяется order. Вы можете попробовать сразу несколько заказов, установив order к вектору целых чисел, в этом случае rsys представляет собой массив уменьшенных моделей. balred также возвращает структуру info с дополнительной информацией, такой как сингулярные значения Ханкеля (HSV), ограничение ошибок, уровень регуляризации и факторы Холески грамматиков.

    пример

    [~,info] = balred(sys) возвращает структуру info без вычисления модели уменьшенного порядка. Эту информацию можно использовать для выбора сокращенного заказа. order основываясь на вашей желаемой верности.

    Примечание

    Если речь идет о производительности, избегайте двойного вычисления сингулярных значений Ханкеля, используя информацию, полученную из приведенного выше синтаксиса, для выбора требуемого порядка модели, а затем используйте rsys = balred(sys,order,info) для вычисления модели уменьшенного порядка.

    пример

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

    пример

    balred(sys) отображает сингулярные значения Hankel и ошибку аппроксимации на графике. Использовать hsvplot(Панель инструментов системы управления) для настройки этого графика.

    Примеры

    свернуть все

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

    Для этого случая создайте случайную дискретно-временную модель состояния-пространства с 40 состояниями.

    rng(0)
    sys = drss(40);

    Постройте график сингулярных значений Ханкеля с помощью balred.

    balred(sys)

    Figure contains an axes. The axes with title Hankel Singular Values and Approximation Error contains 3 objects of type bar, line. These objects represent Unstable modes, Stable modes, Absolute error bound.

    В этом примере выберите порядок 16 поскольку это первый порядок с абсолютной ошибкой менее 1e-4. Как правило, порядок выбирается на основе требуемой абсолютной или относительной точности. Затем вычислите модель уменьшенного порядка.

    rsys = balred(sys,16);

    Проверьте абсолютную ошибку, выведя на график отклик сингулярного значения с помощью sigma.

    sigma(sys,sys-rsys)

    Figure contains an axes. The axes contains 2 objects of type line. These objects represent sys, untitled1.

    На графике видно, что ошибка, представленная красной кривой, находится ниже -80 dB (1e-4).

    В этом примере рассмотрим случайную модель состояния-пространства непрерывного времени с 65 состояниями.

    rng(0)
    sys = rss(65);
    size(sys)
    State-space model with 1 outputs, 1 inputs, and 65 states.
    

    Визуализируйте сингулярные значения Ханкеля на графике.

    balred(sys)

    Figure contains an axes. The axes with title Hankel Singular Values and Approximation Error contains 3 objects of type bar, line. These objects represent Unstable modes, Stable modes, Absolute error bound.

    В этом случае вычислите модели уменьшенного порядка с 25, 30 и 35 состояниями.

    order = [25,30,35];
    rsys = balred(sys,order);
    size(rsys)
    3x1 array of state-space models.
    Each model has 1 outputs, 1 inputs, and between 25 and 35 states.
    

    Вычислите аппроксимацию системы с уменьшенным порядком, заданную следующим образом:

    G (s) = (s + 0,5) (s + 1,1) (s + 2,9) (s + 10-6) (s + 1) (s + 2) (s + 3).

    Создайте модель.

    sys = zpk([-0.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);

    Исключить полюс при s = 10-6 из стабильного члена стабильного/нестабильного разложения. Для этого установите Offset вариант balredOptions до значения, большего, чем значение полюса, которое требуется исключить.

    opts = balredOptions('Offset',0.001,'StateProjection','Truncate');

    Визуализируйте сингулярные значения Ханкеля (HSV) и аппроксимационную ошибку.

    balred(sys,opts)

    Figure contains an axes. The axes with title Hankel Singular Values and Approximation Error contains 3 objects of type bar, line. These objects represent Unstable modes, Stable modes, Absolute error bound.

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

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

    [rsys,info] = balred(sys,2,opts);
    rsys
    rsys =
     
      0.99113 (s+0.5235)
      -------------------
      (s+1e-06) (s+1.952)
     
    Continuous-time zero/pole/gain model.
    

    Обратите внимание, что столб на -1e-6 отображается без изменений в уменьшенной модели rsys.

    Сравните отклики исходной модели и модели с уменьшенным порядком.

    bodeplot(sys,rsys,'r--')

    Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent sys, rsys. Axes 2 contains 2 objects of type line. These objects represent sys, rsys.

    Обратите внимание, что реакция bode исходной модели и модели с уменьшенным порядком почти совпадают.

    Уменьшите модель высокого порядка с акцентом на динамику в определенном диапазоне частот.

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

    load('highOrderModel.mat','G')
    bodeplot(G)

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

    G модель 48-го порядка с несколькими большими пиковыми областями около 5,2 рад/с, 13,5 рад/с и 24,5 рад/с и меньшими пиками, рассеянными по многим частотам. Предположим, что для вашего приложения вас интересует только динамика вблизи второго большого пика, между 10 рад/с и 22 рад/с. Сосредоточьте сокращение модели на интересующей области, чтобы получить хорошее совпадение с приближением низкого порядка. Использовать balredOptions(Панель инструментов системы управления), чтобы задать интервал частот для balred.

    bopt = balredOptions('StateProjection','Truncate','FreqIntervals',[10,22]);
    GLim10 = balred(G,10,bopt);
    GLim18 = balred(G,18,bopt);

    Проверьте частотные характеристики моделей с уменьшенным порядком. Также изучите разницу между этими ответами и исходным ответом (абсолютная ошибка).

    subplot(2,1,1);
    bodemag(G,GLim10,GLim18,logspace(0.5,1.5,100));
    title('Bode Magnitude Plot')
    legend('Original','Order 10','Order 18');
    subplot(2,1,2);
    bodemag(G-GLim10,G-GLim18,logspace(0.5,1.5,100));
    title('Absolute Error Plot')
    legend('Order 10','Order 18');

    Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Original, Order 10, Order 18. Axes 2 contains 2 objects of type line. These objects represent Order 10, Order 18.

    При вычислении энергии с ограниченной частотой даже аппроксимация 10-го порядка достаточно хороша в интересующей области.

    В этом примере рассмотрим модель состояния-пространства SISO cdrom со 120 состояниями. Можно использовать абсолютное или относительное управление ошибками при аппроксимации моделей с помощью balred. В этом примере сравниваются два подхода при применении к 120-государственной модели портативного устройства проигрывателя компакт-дисков. crdom [1,2].

    Загрузить модель проигрывателя компакт-дисков cdrom.

    load cdromData.mat cdrom
    size(cdrom)
    State-space model with 1 outputs, 1 inputs, and 120 states.
    

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

    opt_abs = balredOptions('ErrorBound','absolute','StateProjection','truncate');
    opt_rel = balredOptions('ErrorBound','relative','StateProjection','truncate');

    Вычислите модели с уменьшенным порядком порядка 15 с обоими подходами.

    rsys_abs = balred(cdrom,15,opt_abs);
    rsys_rel = balred(cdrom,15,opt_rel);
    size(rsys_abs)
    State-space model with 1 outputs, 1 inputs, and 15 states.
    
    size(rsys_rel)
    State-space model with 1 outputs, 1 inputs, and 15 states.
    

    Постройте график реакции Боде исходной модели вместе с моделями с абсолютной и относительной погрешностью.

    bo = bodeoptions; 
    bo.PhaseMatching = 'on';
    bodeplot(cdrom,'b.',rsys_abs,'r',rsys_rel,'g',bo)
    legend('Original (120 states)','Absolute Error (15 states)','Relative Error (15 states)')

    Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states). Axes 2 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states).

    Обратите внимание, что реакция Боде:

    • Модель с уменьшенной относительной ошибкой rsys_rel почти соответствует отклику исходной модели sys по всему диапазону частот.

    • Модель с уменьшенной абсолютной ошибкой rsys_abs соответствует отклику исходной модели sys только в районах с наибольшим выигрышем.

    Ссылки

    1. Сравнительные примеры сокращения моделей, библиотека подпрограмм в теории систем и управления (SLICOT). Набор данных CDROM воспроизводится с разрешением, для получения более подробной информации см. BSD3-license.

    2. А.Варга, «О сокращении модели, связанной со стохастическим балансом», Материалы 39-й Конференции IEEE по решению и контролю (Cat. No 2000 CH37187), Сидней, НЮУ, 2385-2390, стр. 10 vol.3, doi: № 1109/CDC.2000.914156.

    Входные аргументы

    свернуть все

    Динамическая система, заданная как динамическая модель системы SISO или MIMO (панель инструментов системы управления). Динамические системы, которые можно использовать, могут быть непрерывными или дискретными числовыми моделями LTI, такими как tf, zpk(Панель инструментов системы управления), или ss(Панель инструментов системы управления).

    Когда sys имеет неустойчивые полюса, balred разлагается sys к его стабильной и нестабильной частям и аппроксимируется только стабильная часть. Использовать balredOptions(Панель инструментов системы управления), чтобы указать дополнительные параметры для стабильного/нестабильного разложения.

    balred не поддерживает модели данных частотного отклика, неопределенные и обобщенные модели пространства состояний, модели PID или разреженные объекты модели.

    Требуемое число состояний, указанное как целое число или вектор целых чисел. Вы можете попробовать сразу несколько заказов, установив order к вектору целых чисел, в этом случае rys возвращается в виде массива уменьшенных моделей.

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

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

    Посмотрите balredOptions(Панель инструментов системы управления) для создания и настройки набора опций opts.

    Выходные аргументы

    свернуть все

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

    Дополнительная информация о модели LTI, возвращенная в виде структуры со следующими полями:

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

    • ErrorBound - Ограничение по абсолютной или относительной аппроксимационной ошибке. info.ErrorBound(J+1) ограничивает ошибку для заказа J.

    • Regularization - Уровень регуляризации ⍴ (только для относительной ошибки). Здесь, sys заменяется на [sys,⍴*I] или [sys;⍴*I] что обеспечивает четкую относительную ошибку на всех частотах.

    • Rr, Ro - Холеские факторы грамиев.

    Алгоритмы

    1. balred сначала разлагает G на его устойчивую и неустойчивую части:

      G = Gs + Gu

    2. При указании ErrorBound как absolute, balred использует метод сбалансированного усечения [1] для уменьшения Gs. Это вычисляет сингулярные значения Ханкеля (HSV), основанные на грамматиках управляемости и наблюдаемости. Для порядка r абсолютная ошибка Gs−Gr‖∞ ограничена 2∑j=r+1nσj. Здесь n - число состояний в Gs.

    3. При указании ErrorBound как relative, balred использует метод сбалансированного стохастического усечения [2] для уменьшения Gs. Для квадратного Gs это вычисляет HSV startj фазовой матрицы F = (W ') − 1G, где W (s) - стабильный, минимально-фазовый спектральный коэффициент GG ":

      W '(ы) W (ы) = G (ы) G' (ы)

      Для порядка r относительная погрешность Gs 1 (Gs Gr) ‖ ∞ ограничена:

      ∏j=r+1H (1 +σj1−σj) −1≈2∑j=r+1nσj

      когда, 2∑j=r+1nσj≪1.

    Альтернативная функциональность

    Приложение

    Редуктор модели (панель инструментов системы управления)

    Задача интерактивного редактора

    Уменьшение порядка модели (панель инструментов системы управления)

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

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

    В R2017b изменилось поведение

    Ссылки

    [1] Варга, А., «Алгоритм балансировки без квадратного корня для вычисления аппроксимаций сингулярных возмущений», Proc. of 30th IEEE CDC, Брайтон, Великобритания (1991), pp. 1062-1065.

    [2] Зеленый, М., «Относительная ошибка, связанная с сбалансированным стохастическим усечением», транзакции IEEE по автоматическому управлению, том 33, № 10, 1988

    См. также

    Функции

    • (Панель инструментов системы управления)

    Приложения

    Задачи интерактивного редактора

    Темы

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