Разреженная модель в пространстве состояний второго порядка
Используйте 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
- 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.