Сортировка состояний на основе разбиения состояний
сортирует 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)
В данном примере рассмотрим структурную модель, которая состоит из двух квадратных пластин, соединенных столбами в каждой вершине, как показано на рисунке ниже. Нижняя пластина жестко прикреплена к земле, а стойки жестко прикреплены к каждой вершине квадратной пластины.
Загрузите матрицы модели конечного элемента, содержащиеся в 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)
Набор данных для этого примера был предоставлен Виктором Долком из ASML.
xsys
- Разреженная модель пространства состояний с отсортированными компонентамиsparss
объект модели | mechss
объект моделиРазреженная модель пространства состояний с отсортированными компонентами, возвращенная как a sparss
или mechss
объект модели. В отсортированном xsys
сначала появляются все компоненты, далее указываются интерфейсы, а затем одна группа всех внутренних сигналов. Матрицы и иметь следующую структуру со стрелой:
Здесь каждый диагональный блок является подкомпонентом sys
. Последняя строка и столбец объединяют Interface
и Signal
группы для захвата всех муфт и соединений между компонентами.
interface
| mechss
| showStateInfo
| sparss
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.