Разреженная модель пространства состояний второго порядка
Использование mechss представлять разреженные модели второго порядка с помощью матриц, полученных из вашего пакета анализа конечных элементов (FEA). Такие разреженные модели возникают из анализа конечных элементов (FEA) и применяются в таких областях, как структурный анализ, поток жидкости, теплопередача и электромагнитные функции. Получившиеся матрицы из этого типа моделирования довольно большие с разреженным шаблоном. Следовательно, использование mechss является эффективным способом представления таких больших разреженных моделей пространства состояний в MATLAB® для выполнения линейного анализа. Можно также использовать mechss для преобразования sparss первого порядка Объект модели или другие модели динамической системы к mechss объект.
Можно использовать mechss моделирует объекты, чтобы представлять модели SISO или MIMO в пространстве состояний за непрерывное время или дискретное время. За непрерывное время модель разреженная масса второго порядка-пружина-демпфер представлена в следующей форме:
Здесь, полный вектор состояния задается как где и являются векторами перемещений и скоростей. u и y представляют входы и выходы, соответственно. M, C и K представляют матрицы массы, демпфирования и жесткости, соответственно. B - матрица входа во время F и G являются выходными матрицами для перемещения и скорости, соответственно. D - матрица ввода-вывода.
Можно использовать mechss объект для:
Выполните анализ характеристик во временной и частотной областях.
Задайте основанные на сигнале соединения с другими моделями LTI.
Задайте физические интерфейсы между компонентами, используя interface команда.
Для получения дополнительной информации см. «Разреженные основы модели».
создает sys = mechss(M,C,K,B,F,G,D)mechss объект, представляющий модель демпфера массы второго порядка в непрерывном времени:
Здесь, M, C, и K представляют матрицы массы, демпфирования и жесткости, соответственно. B - матрица «вход-состояние» в то время как F и G являются матрицами «перемещение на выход» и «скорость на выход», полученными из двух компонентов состояния x. D - матрица ввода-вывода. Можно задать M на [] когда большая матрица является матрицей тождеств. Задайте G и D на [] или опускать их, когда они пусты.
M - Матрица массNq-by- Nq разреженная матрицаБольшая матрица, заданная как Nq-by- Nq разреженная матрица, где Nq является число узлов. Этот вход устанавливает значение свойства M.
C - Матрица демпфированияNq-by- Nq разреженная матрицаМатрица демпфирования, заданная как Nq-by- Nq разреженная матрица, где Nq является число узлов. Можно также задать C=[] чтобы задать нулевое демпфирование. Этот вход устанавливает значение свойства C.
K - Матрица жесткостиNq-by- Nq разреженная матрицаМатрица жесткости, заданная как Nq-by- Nq разреженная матрица, где Nq является число узлов. Этот вход устанавливает значение свойства K.
B - Матрица ввода в состояниеNq-by- Nu разреженная матрицаМатрица ввода в состояние, заданная как Nq-by- Nu разреженная матрица, где Nq является число узлов и Nu - количество входов. Этот вход устанавливает значение свойства B.
F - Матрица переключения на выходNy-by- Nq разреженная матрицаМатрица переноса на выход, заданная как Ny-by- Nq разреженная матрица, где Nq является число узлов и Ny - количество выходов. Этот вход устанавливает значение свойства F.
G - матрица скорость-выходNy-by- Nq разреженная матрицаМатрица скорость-выход, заданная как Ny-by- Nq разреженная матрица, где Nq является число узлов и Ny - количество выходов. Этот вход устанавливает значение свойства G.
D - Матрица ввода-выводаNy-by- Nu разреженная матрицаМатрица ввода-вывода, заданная как Ny-by- Nu разреженная матрица, где Ny количество выходов и Nu - количество входов. Этот вход устанавливает значение свойства D.
ts - Шаг расчетаШаг расчета, заданный как скаляр. Для получения дополнительной информации см. свойство Ts.
ltiSys - Динамическая система для преобразования в форму разреженного пространства состояний второго порядкаДинамическая система для преобразования в форму разреженного пространства состояний второго порядка, заданную как динамическая модель системы SISO или MIMO или массив динамических моделей системы. Динамические системы, которые можно преобразовать, включают:
sys - Модель выходной системыmechss объект моделиВыход системной модели, возвращается как mechss объект модели.
M - Матрица массNq-by- Nq разреженная матрицаБольшая матрица, заданная как Nq-by- Nq разреженная матрица, где, Nq является число узлов.
C - Матрица демпфированияNq-by- Nq разреженная матрицаМатрица демпфирования, заданная как Nq-by- Nq разреженная матрица, где, Nq является число узлов.
K - Матрица жесткостиNq-by- Nq разреженная матрицаМатрица демпфирования, заданная как Nq-by- Nq разреженная матрица, где, Nq является число узлов.
B - Матрица ввода в состояниеNq-by- Nu разреженная матрицаМатрица ввода в состояние, заданная как Nq-by- Nu разреженная матрица, где, Nq является число узлов и Nu - количество входов.
F - Матрица переключения на выходNy-by- Nq разреженная матрицаМатрица переноса на выход, заданная как Ny-by- Nq разреженная матрица, где, Nq является число узлов и Ny - количество выходов.
G - матрица скорость-выходNy-by- Nq разреженная матрицаМатрица скорость-выход, заданная как Ny-by- Nq разреженная матрица, где, Nq является число узлов и Ny - количество выходов.
D - Матрица ввода-выводаNy-by- Nu разреженная матрицаМатрица ввода-вывода, заданная как Ny-by- Nu разреженная матрица, где, Ny количество выходов и Nu - количество входов. D также называется статической матрицей усиления и представляет отношение выхода к входу в установившемся условии.
StateInfo - Информация о разделе состоянияИнформация о разделе состояния, содержащая компоненты вектора состояния, интерфейсы между компонентами и компоненты, соединяющие внутренний сигнал, заданная как массив структур со следующими полями:
Type - Тип включает компонент, сигнал или физический интерфейс
Name - Имя компонента, сигнала или физического интерфейса
Size - Количество состояний или узлов в разделе
Можно просмотреть информацию о разбиении разреженной модели пространства состояний с помощью showStateInfo. Можно также отсортировать и упорядочить разделы в разреженной модели, используя xsort.
SolverOptions - Опции для анализа моделиОпции для анализа модели, заданные как структура со следующими полями:
UseParallel - Установите эту опцию равной true чтобы включить параллельные вычисления и false чтобы отключить его. Параллельные вычисления по умолчанию отключены. The UseParallel опция требуется лицензия Parallel Computing Toolbox™.
DAESolver - Используйте эту опцию, чтобы выбрать тип дифференциального алгебраического уравнения (ДАУ) решателя. Доступны следующие решатели ДАУ:
'trbdf2' - Решатель с фиксированным шагом с точностью до o(h^2), где h размер шага. [2] Это решатель по умолчанию для mechss объект модели.
'trbdf3' - Решатель с фиксированным шагом с точностью до o(h^3), где h - размер шага.
'hht' - Решатель с фиксированным шагом с точностью до o(h^2), где h - размер шага. [1]
Уменьшение размера шага увеличивает точность и расширяет частотную область значений, где численное демпфирование незначительно. 'hht' является самым быстрым, но может столкнуться с трудностями с высоким начальным ускорением (для примера, импульсная характеристика с начальным рывком). 'trbdf2' требуется примерно в два раза больше расчеты, чем 'hht' и 'trbdf3' требуется еще на 50% больше расчеты, чем 'trbdf2'.
Для получения примера смотрите Время и Частотную Характеристику Разреженной Модели Второго Порядка.
InternalDelay - Внутренние задержки в моделиВнутренние задержки в модели, заданные как вектор. Внутренние задержки возникают, например, при закрытии циклов обратной связи в системах с задержками или при соединении запаздывающих систем последовательно или параллельно. Дополнительные сведения о внутренних задержках см. в разделе Закрытие циклов обратной связи с временными задержками.
Для моделей в непрерывном времени внутренние задержки выражаются в модуле времени, заданной TimeUnit свойство модели. Для моделей в дискретном времени внутренние задержки выражаются в виде целого числа, кратного шага расчета Ts. Для примера, InternalDelay = 3 означает задержку на три периода дискретизации.
Значения внутренних задержек можно изменить с помощью свойства InternalDelay. Однако количество записей в sys.InternalDelay не может измениться, потому что это структурное свойство модели.
InputDelay - Входная задержка0 (по умолчанию) | скалярный | Nu-by-1 векторВходная задержка для каждого входного канала, заданная как одно из следующего:
Скаляр - Задает входную задержку для системы SISO или ту же задержку для всех входов мультивхода.
Nu-by-1 вектор - Задайте отдельные задержки входных параметров для входа мультивхода, где Nu - количество входов.
Для систем непрерывного времени задайте входные задержки в модуле времени, заданной TimeUnit свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета, Ts.
Для получения дополнительной информации см. раздел Задержки в линейных системах.
OutputDelay - Выход0 (по умолчанию) | скалярный | Ny-by-1 векторВыходная задержка для каждого выходного канала, заданная как одно из следующего:
Скаляр - Задает выходную задержку для системы SISO или ту же задержку для всех выходов мультивыхода.
Ny-by-1 вектор - Задайте отдельные выходные задержки для вывода мультивыхода, где Ny - количество выходов.
Для систем непрерывного времени задайте выходные задержки в модуле времени, заданной TimeUnit свойство. Для систем в дискретном времени задайте выходные задержки в целочисленных множителях шага расчета, Ts.
Для получения дополнительной информации см. раздел Задержки в линейных системах.
Ts - Шаг расчета0 (по умолчанию) | положительный скалярный | -1Шаг расчета, заданная как:
0 для систем непрерывного времени.
A положительной скалярной величины, представляющее период дискретной дискретной системы времени. Задайте Ts в модуле времени, заданной TimeUnit свойство.
-1 для системы в дискретном времени с неопределенным шагом расчета.
TimeUnit - модули измерения переменной времени'seconds' (по умолчанию) | 'nanoseconds' | 'microseconds' | 'milliseconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'years' | ...Модули переменной времени, заданные как одно из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit для преобразования между модулями времени без изменения поведения системы.
InputName - Входные имена каналов'' (по умолчанию) | вектор символов | массив ячеек из векторов символовВходные имена каналов, заданные как одно из следующих:
Вектор символов, для моделей с одним входом.
Массив ячеек из векторов символов для мультивходов.
'', имена для каких-либо входов каналов не заданы.
Кроме того, можно назначить входные имена для мультивходов с помощью автоматического расширения вектора. Для примера, если sys является моделью с двумя входами, введите:
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 является двухвыпускной моделью, введите:
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 | Низкочастотный коэффициент усиления системы 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 разреженных моделей с 3408 узлами, входами 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 объект модели с 28408 узлами, 1 входом и 1 выходом.
Можно использовать spy команда, чтобы визуализировать разреженный шаблон mechss объект модели. Можно щелкнуть правой кнопкой мыши график, чтобы выбрать матрицы для отображения.
spy(sys)

В данном примере рассмотрим sparseSOArray.mat который содержит три набора разреженных матриц, которые задают несколько разреженных моделей пространства состояний второго порядка.
Извлеките данные из sparseSOArray.mat.
load('sparseSOArray.mat');Предварительно выделите массив mechss 3 на 1 модели.
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 команда, когда у вас есть модели с одинаковыми размерами ввода-вывода.
Копирайт 2020 The MathWorks, Inc
Создайте статическую модель MIMO разреженного пространства состояний второго порядка.
Рассмотрим следующую статическую матрицу усиления с двумя входами и тремя выходами:
Задайте матрицу усиления и создайте статическую модель разреженного пространства состояний второго порядка.
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] H. Hilber, T. Hughes & R. Taylor. Улучшенное численное рассеивание для алгоритмов интегрирования во времени в структурной динамике. Инженерно-структурная динамика землетрясений, том 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.