xsort

Сортировка состояний на основе раздела состояния

    Синтаксис

    Описание

    пример

    xsys = xsort(sys) сортирует x или q вектор на основе раздела состояния. Основанные на сигнале связи и физические интерфейсы между компонентами модели дают начало моделям дифференциального алгебраического уравнения (DAE), где некоторые внутренние сигналы и обеспечивают, становятся дополнительными состояниями. StateInfo свойство sparss и mechss объекты модели отслеживают раздел состояния в субкомпоненты, интерфейсные переменные и переменные сигнала.

    Примеры

    свернуть все

    В данном примере рассмотрите sparseSOSignal.mat это содержит разреженную модель второго порядка. Задайте привод, датчик и контроллер и соедините их вместе с объектом в обратной связи.

    Загрузите разреженные матрицы и создайте mechss объект.

    load sparseSOSignal.mat
    plant = mechss(M,C,K,B,F,[],[],'Name','Plant');

    Затем создайте привод и датчик с помощью передаточных функций.

    act = tf(1,[1 0.5 3],'Name','Actuator');
    sen = tf(1,[0.02 7],'Name','Sensor');

    Создайте объект ПИД-регулятора для объекта.

    con = pid(1,1,0.1,0.01,'Name','Controller');

    Используйте feedback команда, чтобы соединить объект, датчик, привод и контроллер в обратной связи.

    sys = feedback(sen*plant*act*con,1)
    Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 7111 nodes.
    
    Use "spy" and "showStateInfo" to inspect model structure. 
    Type "properties('mechss')" for a list of model properties. 
    Type "help mechssOptions" for available solver options for this model.
    

    Результирующая система sys mechss объект начиная с mechss объекты более приоритетны по сравнению со всеми другими типами объекта модели.

    Используйте showStateInfo просмотреть группы сигнала и компонента.

    showStateInfo(sys)
    The state groups are:
    
        Type          Name       Size
      -------------------------------
      Component      Sensor         1
      Component      Plant       7102
      Signal                        1
      Component     Actuator        2
      Signal                        1
      Component    Controller       2
      Signal                        1
      Signal                        1
    

    Используйте xsort отсортировать компоненты и сигналы, и затем просмотреть группы сигнала и компонента.

    sysSort = xsort(sys);
    showStateInfo(sysSort)
    The state groups are:
    
        Type          Name       Size
      -------------------------------
      Component      Sensor         1
      Component      Plant       7102
      Component     Actuator        2
      Component    Controller       2
      Signal                        4
    

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

    Можно также визуализировать шаблон разреженности результирующей системы с помощью spy.

    spy(sysSort)

    Figure contains an axes. The axes with title nnz: M=170134, C=5, K=340360, B=3, F=1. contains 17 objects of type line. These objects represent K, B, F, D.

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

    Загрузите матрицы модели конечного элемента, содержавшиеся в platePillarModel.mat и создайте разреженную модель второго порядка, представляющую вышеупомянутую систему.

    load('platePillarModel.mat')
    sys = ...
       mechss(M1,[],K1,B1,F1,'Name','Plate1') + ...
       mechss(M2,[],K2,B2,F2,'Name','Plate2') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar3') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar4') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar5') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar6');

    Используйте showStateInfo исследовать компоненты mechss объект модели.

    showStateInfo(sys)
    The state groups are:
    
        Type        Name      Size
      ----------------------------
      Component    Plate1     2646
      Component    Plate2     2646
      Component    Pillar3     132
      Component    Pillar4     132
      Component    Pillar5     132
      Component    Pillar6     132
    

    Теперь загрузите данные об индексе узла, с которыми соединяют интерфейсом, из nodeData.mat и используйте interface создать физические соединения между этими двумя пластинами и этими четырьмя столбами. nodes 6x7 массив ячеек, где первые две строки содержат данные об индексе узла для первых и вторых пластин, в то время как остающиеся четыре строки содержат данные об индексе для этих четырех столбов.

    load('nodeData.mat','nodes')
    for i=3:6
       sys = interface(sys,"Plate1",nodes{1,i},"Pillar"+i,nodes{i,1});
       sys = interface(sys,"Plate2",nodes{2,i},"Pillar"+i,nodes{i,2});
    end

    Задайте связь между подопочным щитком и землей.

    sysCon = interface(sys,"Plate2",nodes{2,7});

    Используйте showStateInfo подтвердить физические интерфейсы.

    showStateInfo(sysCon)
    The state groups are:
    
        Type            Name         Size
      -----------------------------------
      Component        Plate1        2646
      Component        Plate2        2646
      Component       Pillar3         132
      Component       Pillar4         132
      Component       Pillar5         132
      Component       Pillar6         132
      Interface    Plate1-Pillar3      12
      Interface    Plate2-Pillar3      12
      Interface    Plate1-Pillar4      12
      Interface    Plate2-Pillar4      12
      Interface    Plate1-Pillar5      12
      Interface    Plate2-Pillar5      12
      Interface    Plate1-Pillar6      12
      Interface    Plate2-Pillar6      12
      Interface    Plate2-Ground        6
    

    Можно использовать spy визуализировать разреженные матрицы в итоговой модели.

    spy(sysCon)

    Figure contains an axes. The axes with title nnz: M=95256, K=249052, B=1, F=1. contains 37 objects of type line. These objects represent K, B, F, D.

    Набор данных для этого примера был обеспечен Виктором Долком от ASML.

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

    свернуть все

    Разреженная модель в пространстве состояний в виде a sparss или mechss объект модели.

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

    свернуть все

    Разреженная модель в пространстве состояний с отсортированными компонентами, возвращенными как a sparss или mechss объект модели. В отсортированном xsys, все компоненты появляются первыми, сопровождаемые интерфейсами, и затем сопровождаемые одной группой всех внутренних сигналов. Матрицы sEA и s2+s+K имейте следующую структуру фигурной стрелки:

    Здесь, каждый диагональный блок является субкомпонентом sys. Последняя строка и столбец комбинирует Interface и Signal группы, чтобы получить все связи и связи между компонентами.

    Введенный в R2020b