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