balred

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

    Описание

    пример

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

    пример

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

    Примечание

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

    пример

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

    пример

    balred(sys) отображает сингулярные значения Ганкеля и ошибку приближения на графике. Использование hsvplot (Control System Toolbox), чтобы настроить этот график.

    Примеры

    свернуть все

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

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

    rng(0)
    sys = drss(40);

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

    balred(sys)

    Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 objects. Axes object 1 contains 2 objects of type line. These objects represent sys, rsys. Axes object 2 contains 2 objects of type line. These objects represent sys, rsys.

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

    Уменьшайте старшую модель с особым вниманием на динамике в конкретном частотном диапазоне.

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

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

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

    G модель 48-го порядка с несколькими большими пиковыми областями приблизительно 5,2 рад/с, 13,5 рад/с и 24,5 рад/с, и меньшим peaks, рассеянным через многие частоты. Предположим, что для вашего приложения вы только интересуетесь динамикой около второго большого пика между 10 рад/с и 22 рад/с. Фокусируйте снижение сложности модели на необходимой области, чтобы получить хорошее соответствие с аппроксимацией младшим порядком. Используйте balredOptions (Control System Toolbox), чтобы задать интервал частоты для 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 objects. Axes object 1 contains 3 objects of type line. These objects represent Original, Order 10, Order 18. Axes object 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 objects. Axes object 1 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states). Axes object 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-лицензию на детали.

    2. A.Varga, “На стохастической балансировке связал снижение сложности модели”, Продолжения 39-й Конференции по IEEE по Решению и Управлению (CAT. № 00CH37187), Сидней, Новый Южный Уэльс, 2000, стр 2385-2390 vol.3, doi: 10.1109/CDC.2000.914156.

    Входные параметры

    свернуть все

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

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

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

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

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

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

    Смотрите balredOptions (Control System Toolbox), чтобы создать и сконфигурировать опцию установил opts.

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

    свернуть все

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

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

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

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

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

    • Rr, Ro — Факторы Холецкого gramians.

    Алгоритмы

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

      G=Gs+Gu

    2. Когда вы задаете ErrorBound как absolute, balred использует сбалансированный метод усечения [1], чтобы уменьшать Gs. Это вычисляет Сингулярные значения Ганкеля (HSV) σj на основе управляемости и наблюдаемости gramians. Для порядка r, абсолютная погрешность GsGr ограничен 2j=r+1nσj. Здесь, n является количеством состояний в Gs.

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

      W'(s)W(s)=G(s)G'(s)

      Для порядка r, относительная погрешность Gs1(GsGr) ограничен:

      j=r+1H(1+σj1σj)12j=r+1nσj

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

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

    Задача Live Editor

    Уменьшайте порядок модели (Control System Toolbox)

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

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

    Поведение изменяется в R2017b

    Ссылки

    [1] Varga, A., "Алгоритм Квадратного корня без балансировок для Вычисления Сингулярных Приближений Возмущения", Proc. 30-го CDC IEEE, Брайтон, UK (1991), стр 1062-1065.

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

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

    Функции

    Приложения

    Задачи Live Editor

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