Разреженная модель в пространстве состояний второго порядка
Используйте mechss представлять разреженные модели второго порядка с помощью матриц, полученных из пакета анализа конечных элементов (FEA). Такие разреженные модели являются результатом анализа конечных элементов (FEA) и полезны в полях как структурный анализ, поток жидкости, теплопередача и электромагнетизм. Результирующие матрицы от этого типа моделирования являются довольно большими с разреженным шаблоном. Следовательно, использование mechss эффективный путь состоит в том, чтобы представлять такие большие разреженные модели в пространстве состояний в MATLAB®, чтобы выполнить линейный анализ. Можно также использовать mechss преобразовывать sparss первого порядка объект модели или другие модели динамической системы к mechss объект.
Можно использовать mechss объекты модели, чтобы представлять SISO или модели в пространстве состояний MIMO в непрерывное время или дискретное время. В непрерывное время разреженная модель массового пружинного демпфера второго порядка представлена в следующей форме:
Здесь, полным вектором состояния дают где и смещение и векторы скорости. u и y представляйте вводы и выводы, соответственно. MC и K представляйте массу, затухание и матрицы жесткости, соответственно. B входная матрица в то время как F и G выходные матрицы для смещения и скорости, соответственно. D вход к выходной матрице.
Можно использовать mechss объект к:
Выполните временной интервал и анализ ответа частотного диапазона.
Задайте основанные на сигнале связи с другими моделями LTI.
Задайте физические интерфейсы между компонентами с помощью interface команда.
Для получения дополнительной информации смотрите Разреженные Основы Модели.
создает sys = mechss(M,C,K,B,F,G,D)mechss объект, представляющий это непрерывное время модель массового пружинного демпфера второго порядка:
Здесь, MC, и K представляйте массу, затухание и матрицы жесткости, соответственно. B матрица входа к состоянию в то время как F и G смещение к выходу и скорость к выходным матрицам, следующая из двух компонентов x состоянияD вход к выходной матрице. Можно установить M к [] когда большая матрица является единичной матрицей. Установите G и D к [] или не используйте их, когда они будут пусты.
M — Большая матрицаNq- Nq разреженная матрицаБольшая матрица в виде Nq- Nq разреженная матрица, где Nq количество узлов. Этот вход устанавливает значение свойства M.
C — Затухание матрицыNq- Nq разреженная матрицаЗатухание матрицы в виде Nq- Nq разреженная матрица, где Nq количество узлов. Можно также установить C=[] задавать нулевое затухание. Этот вход устанавливает значение свойства C.
K — Матрица жесткостиNq- Nq разреженная матрицаМатрица жесткости в виде Nq- Nq разреженная матрица, где Nq количество узлов. Этот вход устанавливает значение свойства K.
B — Матрица входа к состояниюNq- Nu разреженная матрицаМатрица входа к состоянию в виде Nq- Nu разреженная матрица, где Nq количество узлов и Nu количество входных параметров. Этот вход устанавливает значение свойства B.
F — Смещение к выходной матрицеNy- Nq разреженная матрицаСмещение к выходной матрице в виде Ny- Nq разреженная матрица, где Nq количество узлов и Ny количество выходных параметров. Этот вход устанавливает значение свойства F.
G — Скорость к выходной матрицеNy- Nq разреженная матрицаСкорость к выходной матрице в виде Ny- Nq разреженная матрица, где Nq количество узлов и Ny количество выходных параметров. Этот вход устанавливает значение свойства G.
D — Вход к выходной матрицеNy- Nu разреженная матрицаВход к выходной матрице в виде Ny- Nu разреженная матрица, где Ny количество выходных параметров и Nu количество входных параметров. Этот вход устанавливает значение свойства D.
ts Размер шагаШаг расчета в виде скаляра. Для получения дополнительной информации смотрите свойство Ts.
ltiSys — Динамическая система, чтобы преобразовать в разреженную форму пространства состояний второго порядкаДинамическая система, чтобы преобразовать в разреженное пространство состояний второго порядка формируется в виде SISO или модели динамической системы MIMO или массива моделей динамической системы. Динамические системы, которые можно преобразовать, включают:
sys — Выведите системную модельmechss объект моделиВыведите системную модель, возвращенную как mechss объект модели.
M — Большая матрицаNq- Nq разреженная матрицаБольшая матрица в виде Nq- Nq разреженная матрица, где, Nq количество узлов.
C — Затухание матрицыNq- Nq разреженная матрицаЗатухание матрицы в виде Nq- Nq разреженная матрица, где, Nq количество узлов.
K — Матрица жесткостиNq- Nq разреженная матрицаЗатухание матрицы в виде Nq- Nq разреженная матрица, где, Nq количество узлов.
B — Матрица входа к состояниюNq- Nu разреженная матрицаМатрица входа к состоянию в виде Nq- Nu разреженная матрица, где, Nq количество узлов и Nu количество входных параметров.
F — Смещение к выходной матрицеNy- Nq разреженная матрицаСмещение к выходной матрице в виде Ny- Nq разреженная матрица, где, Nq количество узлов и Ny количество выходных параметров.
G — Скорость к выходной матрицеNy- Nq разреженная матрицаСкорость к выходной матрице в виде Ny- Nq разреженная матрица, где, Nq количество узлов и Ny количество выходных параметров.
D — Вход к выходной матрицеNy- Nu разреженная матрицаВход к выходной матрице в виде Ny- Nu разреженная матрица, где, Ny количество выходных параметров и Nu количество входных параметров. D также называется статической матрицей усиления и представляет отношение выхода к входу в условии устойчивого состояния.
StateInfo — Информация о разделе состоянияИнформация о разделе состояния, содержащая компоненты вектора состояния, взаимодействует через интерфейс между компонентами и внутренними соединительными компонентами сигнала в виде массива структур со следующими полями:
Type — Тип включает компонент, или физический интерфейс сигнала
Name — Имя компонента, предупредите или физический интерфейс
Size — Количество состояний или узлов в разделе
Можно просмотреть информацию о разделе разреженного использования модели в пространстве состояний showStateInfo. Можно также отсортировать и заказать разделы в разреженном использовании модели xsort.
SolverOptions — Опции для анализа моделиОпции для анализа модели в виде структуры со следующими полями:
UseParallel — Установите эту опцию на true включить параллельные вычисления и false отключить его. Параллельные вычисления отключены по умолчанию. UseParallel опция требует лицензии Parallel Computing Toolbox™.
DAESolver — Используйте эту опцию, чтобы выбрать тип решателя дифференциального алгебраического уравнения (DAE). Следующие решатели ДАУ доступны:
Сокращение размера шага увеличивает точность и расширяет частотный диапазон, где числовое затухание незначительно. 'hht' является самым быстрым, но может столкнуться с трудностями с высоким начальным ускорением (например, импульсная характеристика с начальным толчком). 'trbdf2' требует о вдвое большем количестве расчетов как 'hht' и 'trbdf3' требует другого на 50% больше расчетов, чем 'trbdf2'.
Для примера смотрите Время и Частотную характеристику Разреженной Модели Второго порядка.
InternalDelay — Внутренние задержки моделиВнутренние задержки модели в виде вектора. Внутренние задержки возникают, например, когда заключительная обратная связь в системах с задержками, или при соединении задержанных систем последовательно или параллели. Для получения дополнительной информации о внутренних задержках, смотрите закрывающуюся Обратную связь с Задержками.
Для моделей непрерывного времени внутренние задержки описываются в единице измерения времени, заданной TimeUnit свойство модели. Для моделей дискретного времени внутренние задержки описываются как целочисленные множители шага расчета Ts. Например, InternalDelay = 3 означает задержку трех периодов выборки.
Можно изменить значения внутренних задержек с помощью свойства InternalDelay. Однако количество записей в sys.InternalDelay не может измениться, потому что это - структурное свойство модели.
InputDelay — Введите задержку (значение по умолчанию) | скаляр | Nu- 1 векторВведите задержку каждого входного канала в виде одного из следующего:
Скаляр — Задает входную задержку системы SISO или ту же задержку всех входных параметров мультивходной системы.
Nu- 1 вектор — Задают отдельные входные задержки входа мультивходной системы, где Nu количество входных параметров.
Для систем непрерывного времени задайте входные задержки единицы измерения времени, заданной TimeUnit свойство. Для систем дискретного времени задайте входные задержки целочисленных множителей шага расчета, Ts.
Для получения дополнительной информации смотрите Задержки Линейных систем.
OutputDelay — Выведите задержку (значение по умолчанию) | скаляр | Ny- 1 векторВыведите задержку каждого выходного канала в виде одного из следующего:
Скаляр — Задает выходную задержку системы SISO или ту же задержку всех выходных параметров мультивыходной системы.
Ny- 1 вектор — Задают отдельные выходные задержки выхода мультивыходной системы, где Ny количество выходных параметров.
Для систем непрерывного времени задайте выходные задержки единицы измерения времени, заданной TimeUnit свойство. Для систем дискретного времени задайте выходные задержки целочисленных множителей шага расчета, Ts.
Для получения дополнительной информации смотрите Задержки Линейных систем.
Ts Размер шага (значение по умолчанию) | положительная скалярная величина | -1Шаг расчета в виде:
0 для систем непрерывного времени.
Положительная скалярная величина, представляющая период выборки системы дискретного времени. Задайте Ts в единице измерения времени, заданной TimeUnit свойство.
-1 для системы дискретного времени с незаданным шагом расчета.
Изменение Ts не дискретизирует или передискретизирует модель. Чтобы преобразовать между представлениями непрерывного времени и дискретного времени, использовать c2d и d2c. Чтобы изменить шаг расчета системы дискретного времени, использовать d2d.
TimeUnit — Модули переменной Time'seconds' (значение по умолчанию) | 'nanoseconds' | 'microseconds' | 'milliseconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'years' | ...Модули переменной Time в виде одного из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit не оказывает влияния на другие свойства, но изменяет полное поведение системы. Использование chgTimeUnit преобразовывать между единицами измерения времени, не изменяя поведение системы.
InputName — Введите названия канала'' (значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВведите названия канала в виде одного из следующего:
Вектор символов, для моделей одно входа.
Массив ячеек из символьных векторов, для мультивходных моделей.
'', никакие имена не заданы ни для каких входных каналов.
В качестве альтернативы можно присвоить входные имена для мультивходных моделей с помощью автоматического векторного расширения. Например, если sys 2D входная модель, введите:
sys.InputName = 'controls';Входные имена автоматически расширяются до {'controls(1)';'controls(2)'}.
Можно использовать краткое обозначение u относиться к InputName свойство. Например, sys.u эквивалентно sys.InputName.
Используйте InputName к:
Идентифицируйте каналы на отображении модели и графиках.
Извлеките подсистемы систем MIMO.
Задайте точки контакта когда взаимосвязанные модели.
InputUnit — Введите модули канала'' (значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВведите модули канала в виде одного из следующего:
Вектор символов, для моделей одно входа.
Массив ячеек из символьных векторов, для мультивходных моделей.
'', никакие модули не заданы ни для каких входных каналов.
Используйте InputUnit задавать модули входного сигнала. InputUnit не оказывает влияния на поведение системы.
InputGroup — Введите группы каналаВведите группы канала в виде структуры. Используйте InputGroup присваивать входные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей InputGroup названия группы, и значения полей являются входными каналами каждой группы. Например:
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
создает входные группы под названием controls и noise это включает входные каналы 1 и 2, и 3 и 5, соответственно. Можно затем извлечь подсистему из controls входные параметры ко всему выходному использованию:
sys(:,'controls')По умолчанию, InputGroup структура без полей.
OutputName — Выведите названия канала'' (значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВыведите названия канала в виде одного из следующего:
Вектор символов, для моделей одно выхода.
Массив ячеек из символьных векторов, для мультивыходных моделей.
'', никакие имена не заданы ни для каких выходных каналов.
В качестве альтернативы можно присвоить выходные имена для мультивыходных моделей с помощью автоматического векторного расширения. Например, если sys 2D выходная модель, введите:
sys.OutputName = 'measurements';Выходные имена автоматически расширяются до {'measurements(1)';'measurements(2)'}.
Можно также использовать краткое обозначение y относиться к OutputName свойство. Например, sys.y эквивалентно sys.OutputName.
Используйте OutputName к:
Идентифицируйте каналы на отображении модели и графиках.
Извлеките подсистемы систем MIMO.
Задайте точки контакта когда взаимосвязанные модели.
OutputUnit — Выведите модули канала'' (значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВыведите модули канала в виде одного из следующего:
Вектор символов, для моделей одно выхода.
Массив ячеек из символьных векторов, для мультивыходных моделей.
'', никакие модули не заданы ни для каких выходных каналов.
Используйте OutputUnit задавать модули выходного сигнала. OutputUnit не оказывает влияния на поведение системы.
OutputGroup — Выведите группы каналаВыведите группы канала в виде структуры. Используйте OutputGroupприсваивать выходные каналы систем MIMO в группы и относиться к каждой группе по наименованию. Имена полей OutputGroup названия группы, и значения полей являются выходными каналами каждой группы. Например:
sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5];
создает выходные группы под названием temperature и measurement это включает выходные каналы 1, и 3 и 5, соответственно. Можно затем извлечь подсистему от всех входных параметров до measurement выходное использование:
sys('measurement',:)По умолчанию, OutputGroup структура без полей.
Notes — Заданный пользователями текст{} (значение по умолчанию) | вектор символов | массив ячеек из символьных векторовЗаданный пользователями текст, который вы хотите сопоставить с системой в виде вектора символов или массива ячеек из символьных векторов. Например, 'System is MIMO'.
UserData — Заданные пользователями данные[] (значение по умолчанию) | любой тип данных MATLABЗаданные пользователями данные, которые вы хотите сопоставить с системой в виде любого типа данных MATLAB.
Name — Имя системы'' (значение по умолчанию) | вектор символовИмя системы в виде вектора символов. Например, 'system_1'.
SamplingGrid — Выборка сетки для массивов моделейВыборка сетки для массивов моделей в виде массива структур.
Используйте SamplingGrid отслеживать значения переменных, сопоставленные с каждой моделью в массиве моделей.
Установите имена полей структуры к именам переменных выборки. Установите значения полей к произведенным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми скалярами, и все массивы произведенных значений должны совпадать с размерностями массива моделей.
Например, можно создать 11 1 массив линейных моделей, sysarr, путем взятия снимков состояния линейной изменяющейся во времени системы во времена t = 0:10. Следующий код хранит выборки времени линейными моделями.
sysarr.SamplingGrid = struct('time',0:10)Точно так же можно создать 6 9 массив моделей, M, путем независимой выборки двух переменных, zeta и w. Следующие кодированные карты (zeta,w) значения к M.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
По умолчанию, SamplingGrid структура без полей.
Следующие списки показывают функции, которые можно использовать с mechss объекты модели.
sparss | Разреженная модель в пространстве состояний первого порядка |
getx0 | Сопоставьте начальные условия от mechss возразите против sparss объект |
full | Преобразуйте разреженные модели в плотное устройство хранения данных |
imp2exp | Преобразуйте неявное линейное соотношение в явное отношение ввода - вывода |
inv | Инвертируйте модели |
getDelayModel | Представление пространства состояний внутренних задержек |
sparssdata | Доступ к разреженным данным модели в пространстве состояний первого порядка |
mechssdata | Доступ к разреженным данным модели в пространстве состояний второго порядка |
showStateInfo | Информация о разделе состояния |
spy | Визуализируйте шаблон разреженности sparss объект модели |
step | Переходный процесс динамической системы; данные о переходном процессе |
impulse | График импульсной характеристики динамической системы; данные об импульсной характеристике |
initial | Начальный ответ условия модели в пространстве состояний |
lsim | Постройте симулированный ответ времени динамической системы к произвольным входным параметрам; данные о симулированном отклике |
bode | Диаграмма Боде частотной характеристики, или величина и данные о фазе |
nyquist | Годограф Найквиста частотной характеристики |
nichols | График Николса частотной характеристики |
sigma | График сингулярных значений динамической системы |
passiveplot | Вычислите или постройте индекс пассивности как функцию частоты |
dcgain | Низкочастотный (DC) усиление системы LTI |
evalfr | Оцените частотную характеристику на данной частоте |
freqresp | Частотная характеристика по сетке |
interface | Задайте физические соединения между компонентами mechss модель |
xsort | Сортировка состояний на основе раздела состояния |
feedback | Cоединение обратной связи многих моделей |
parallel | Параллельная связь двух моделей |
append | Модели группы путем добавления их вводов и выводов |
connect | Соединения блок-схемы динамических систем |
lft | Обобщенное соединение обратной связи двух моделей (звездообразное произведение Редхеффера) |
series | Последовательная связь двух моделей |
В данном примере считайте разреженные матрицы для 3-D модели луча подвергнутыми импульсивной точечной нагрузке в ее совете в файле sparseBeam.mat.
Извлеките разреженные матрицы из sparseBeam.mat.
load('sparseBeam.mat','M','K','B','F','G','D');
Создайте mechss объект модели путем определения [] для матричного C, с тех пор нет никакого затухания.
sys = mechss(M,[],K,B,F,G,D)
Sparse continuous-time second-order model with 3 outputs, 1 inputs, and 3408 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 объект модели, содержащий массив 3 на 1 разреженных моделей с 3 408 узлами, 1 входом и 3 выходными параметрами.
Можно использовать spy команда, чтобы визуализировать разреженность mechss объект модели.
spy(sys)

В данном примере считайте разреженные матрицы дискретной системы в файле discreteSOSparse.mat.
Загрузите разреженные матрицы от discreteSOSparse.mat.
load('discreteSOSparse.mat','M','C','K','B','F','G','D','ts');
Создайте дискретное время mechss объект модели путем определения шага расчета ts.
sys = mechss(M,C,K,B,F,G,D,ts)
Sparse discrete-time second-order model with 1 outputs, 1 inputs, and 28408 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 объект модели с 28 408 узлами, 1 входом и 1 выходом.
Можно использовать spy команда, чтобы визуализировать шаблон разреженности mechss объект модели. Можно щелкнуть правой кнопкой по графику выбрать матрицы, которые будут отображены.
spy(sys)

В данном примере рассмотрите sparseSOArray.mat который содержит три набора разреженных матриц, которые задают несколько разреженных моделей в пространстве состояний второго порядка.
Извлеките данные из sparseSOArray.mat.
load('sparseSOArray.mat');Предварительно выделите массив 3 на 1 mechss модели.
sys = mechss(zeros(1,1,3));
Затем используйте индексированное присвоение, чтобы заполнить массив 3 на 1 с разреженными моделями второго порядка.
sys(:,:,1) = mechss(M1,[],K1,B1,F1,G1,[]); sys(:,:,2) = mechss(M2,[],K2,B2,F2,G2,[]); sys(:,:,3) = mechss(M3,[],K3,B3,F3,G3,[]); size(sys)
3x1 array of sparse second-order models. Each model has 1 outputs, 1 inputs, and between 385 and 738 nodes.
В качестве альтернативы можно также создать массив разреженных моделей второго порядка с помощью stack команда, когда у вас есть модели с теми же размерами ввода-вывода.
Copyright 2020 The MathWorks, Inc
Создайте статическое усиление MIMO разреженная модель в пространстве состояний второго порядка.
Рассмотрите следующий 2D вход, статическую матрицу усиления с тремя выходами:
Задайте матрицу усиления и создайте статическое усиление разреженная модель в пространстве состояний второго порядка.
D = [1,5;2,3;5,9]; sys = mechss(D); size(sys)
Sparse second-order model with 3 outputs, 2 inputs, and 0 nodes.
В данном примере рассмотрите sparseSOSignal.mat который содержит массу, жесткость и разреженные матрицы затухания.
Загрузите разреженные матрицы от sparseSOSignal.mat и создайте разреженный объект модели второго порядка.
load('sparseSOModel.mat','M','C','K'); sys = mechss(M,C,K);
mechss создает объект модели sys со следующими предположениями:
Единичные матрицы для B и F с тем же размером как большая матрица M.
Нулевые матрицы для G и D.
В данном примере рассмотрите sparssModel.mat это содержит sparss объект модели ltiSys.
Загрузите sparss объект модели от sparssModel.mat.
load('sparssModel.mat','ltiSys'); ltiSys
Sparse continuous-time state-space model with 1 outputs, 1 inputs, and 354 states.
Use "spy" and "showStateInfo" to inspect model structure.
Type "properties('sparss')" for a list of model properties.
Type "help sparssOptions" for available solver options for this model.
Используйте mechss команда, чтобы преобразовать в mechss представление объекта модели.
sys = mechss(ltiSys)
Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 354 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.
В данном примере рассмотрите tuningForkData.mat это содержит разреженную модель второго порядка камертона, поражаемого мягко, но быстро на одном из его зубцов. Система имеет вход того, давление, поданное на одном из его зубцов, который приводит к двум выходным параметрам - смещения в совете и основе камертона.
Загрузите разреженные матрицы от tuningForkData.mat в рабочую область и создают mechss объект модели.
load('tuningForkData.mat','M','K','B','F'); sys = mechss(M,[],K,B,F,'InputName','pressure','Outputname',{'y tip','x base'})
Затем установите опции решателя для модели путем установки UseParallel параметр к true и DAESolver использовать trbdf3. Используйте spy смотреть структуру модели. Включение параллельных вычислений требует лицензии Parallel Computing Toolbox™.
sys.SolverOptions.UseParallel = true;
sys.SolverOptions.DAESolver = 'trbdf3';
spy(sys)
Можно также использовать showStateInfo исследовать компоненты.
showStateInfo(sys)
Используйте step получить переходный процесс системы. Необходимо обеспечить временной вектор или итоговое время для разреженных моделей.
t = linspace(0,0.5,1000); step(sys,t)

Затем получите Диаграмму Боде исследовать частотную характеристику. Необходимо обеспечить вектор частоты для разреженных моделей.
w = logspace(1,5,1000); bode(sys,w), grid

В данном примере рассмотрите 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.
[1] Х. Хилбер, T. Hughes & R. Тейлор. "Улучшенное числовое рассеяние для алгоритмов интегрирования времени в структурной динамике". Землетрясение Техническая и Структурная Динамика, издание 5, № 3, стр 283-292, 1977.
[2] М. Осия и Л. Шемпин. "Анализ и реализация TR-BDF2". Прикладная Числовая Математика, издание 20, № 1-2, стр 21-37, 1996.
full | interface | mechssdata | showStateInfo | Sparse Second Order | sparss | spy | xsort
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.