xsort

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

    Синтаксис

    Описание

    пример

    xsys = xsort(sys) сортирует x или q вектор, основанный на разбиении состояний. Основанные на сигналах связи и физические интерфейсы между компонентами модели вызывают модели дифференциального алгебраического уравнения (ДАУ), где некоторые внутренние сигналы и силы становятся дополнительными состояниями. The 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