linearizeOutput

Задайте выходные параметры линеаризовавшей модели

Описание

пример

linearizeOutput(model,RegionType,RegionID) добавляют все степени свободы (число степеней свободы), сопоставленное с областью, заданной RegionType и RegionID к выходному вектору линеаризовавшей модели. Для 3-D структурных моделей, linearizeOutput добавляет, что весь x - координирует сначала, затем весь y - координаты, затем весь z - координаты. В линеаризовавшей модели sys, используйте sys.OutputGroup определять местоположение разделов, сопоставленных с каждой координатой.

Используйте linearizeInput и linearizeOutput вместе с linearize функционируйте, чтобы извлечь разреженные линейные модели из структурных и тепловых моделей.

пример

linearizeOutput(model,RegionType,RegionID,'Component',xyz) задает который из координат, чтобы включать.

output = linearizeOutput(___) возвращает массив структур output с линеаризацией выводит описание. Используйте этот синтаксис с любым из предыдущих аргументов.

Примеры

свернуть все

Задайте области 2D тепловой модели для который linearize извлекает разреженные линейные модели, используемые в Control System Toolbox™.

Создайте переходную тепловую модель.

thermalmodel = createpde('thermal','transient');

Добавьте геометрию блока в тепловую модель при помощи geometryFromEdges функция. Файл описания геометрии для этой проблемы называется crackg.m.

geometryFromEdges(thermalmodel,@crackg);

Постройте геометрию, отобразив метки ребра.

pdegplot(thermalmodel,'EdgeLabels','on')
ylim([-1,1])
axis equal

Figure contains an axes object. The axes object contains 9 objects of type line, text.

Сгенерируйте mesh.

generateMesh(thermalmodel);

Задайте теплопроводность, массовую плотность и удельную теплоемкость материала.

thermalProperties(thermalmodel,'ThermalConductivity',1, ...
                               'MassDensity',1, ...
                               'SpecificHeat',1); 

Задайте температуру на левом крае как 100, и постоянный тепловой поток к внешнему виду через правый край как -10. Добавьте уникальную метку в каждое граничное условие.

thermalBC(thermalmodel,'Edge',6,'Temperature',100,'Label','TempBC');
thermalBC(thermalmodel,'Edge',1,'HeatFlux',-10,'Label','FluxBC');

Укажите, что целая геометрия вырабатывает тепло, и добавьте уникальную метку в это присвоение.

internalHeatSource(thermalmodel,25,'Label','HeatSource');

Установите начальное значение 0 для температуры.

thermalIC(thermalmodel,0);

Вызовите linearizeInput функция с ранее заданными метками для граничных условий и внутреннего источника тепла, чтобы установить входные параметры для linearize функция. Добавьте одну метку на вызов функции.

linearizeInput(thermalmodel,'HeatSource');
linearizeInput(thermalmodel,'TempBC');
linearizeInput(thermalmodel,'FluxBC');

Вызовите linearizeOutput функция, чтобы задать области, для которых вы хотите linearize извлекать разреженные линейные модели. Задайте одну область на вызов функции.

linearizeOutput(thermalmodel,'Edge',2)
ans = struct with fields:
    RegionType: 'Edge'
      RegionID: 2

Задайте, какой из x-, y-, и z-координирует, чтобы включать в линеаризовавшую модель.

Создайте структурную модель анализа переходных процессов.

structuralmodel = createpde('structural','transient-solid');

Импортируйте и постройте геометрию камертона.

importGeometry(structuralmodel,'TuningFork.stl');
pdegplot(structuralmodel)

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

Сгенерируйте mesh.

generateMesh(structuralmodel,'Hmax',0.005);

Задайте модуль Молодежи, отношение Пуассона и массовую плотность, чтобы смоделировать линейное эластичное существенное поведение. Задайте все физические свойства в сопоставимых модулях.

structuralProperties(structuralmodel,'YoungsModulus',210E9, ...
                                     'PoissonsRatio',0.3, ...
                                     'MassDensity',8000);

Идентифицируйте поверхности для применения граничных ограничений и загрузок путем графического вывода геометрии с метками поверхности.

figure('units','normalized','outerposition',[0 0 1 1])
pdegplot(structuralmodel,'FaceLabels','on')
view(-50,15)
title 'Geometry with Face Labels'

Figure contains an axes object. The axes object with title Geometry with Face Labels contains 3 objects of type quiver, patch, line.

Наложите достаточные граничные ограничения, чтобы предотвратить движение твердого тела при прикладной загрузке. Как правило, вы содержите камертон вручную или монтируете его на таблице. Как упрощенное приближение этого граничного условия, зафиксируйте область около пересечения зубцов, и указатель (стоит 21 и 22).

structuralBC(structuralmodel,'Face',[21,22],'Constraint','fixed');

Задайте загрузку давления на зубец как короткий прямоугольный импульс давления.

structuralBoundaryLoad(structuralmodel,'Face',11,...
                                       'Pressure',5E6, ...
                                       'EndTime',1e-3, ...
                                       'Label','Pressure');

Задайте ускорение из-за силы тяжести как загрузка тела.

structuralBodyLoad(structuralmodel, ...
                    'GravitationalAcceleration',[0 0 -1], ...
                                      'Label','Gravity');

Создайте входные параметры для силы тяжести и импульса давления на камертоне.

linearizeInput(structuralmodel,'Gravity');
linearizeInput(structuralmodel,'Pressure');

Измерьте y-смещение поверхности 12 и x-смещение поверхности 6.

linearizeOutput(structuralmodel,'Face',12,'Component','y')
ans = struct with fields:
    RegionType: 'Face'
      RegionID: 12
     Component: 'y'

linearizeOutput(structuralmodel,'Face',6,'Component','x')
ans = struct with fields:
    RegionType: 'Face'
      RegionID: 6
     Component: 'x'

Входные параметры

свернуть все

Структурная или линейная тепловая модель в виде StructuralModel возразите или ThermalModel объект. linearize функция не поддерживает нелинейный тепловой анализ.

Геометрический тип области в виде 'Cell' (только для 3-D модели), 'Face', 'Edge', или 'Vertex'.

Типы данных: char

Геометрический ID области в виде положительного целого числа. Найдите идентификаторы области при помощи pdegplot с 'CellLabels', 'FaceLabels', 'EdgeLabels', или 'VertexLabels' набор значений к 'on'.

Типы данных: double

Координаты, чтобы включать в виде вектора символов или строки x - y - и z - координируют, чтобы включать.

Пример: linearizeOutput(pdemodel,'Face',10,'Component','xz') выбирает x и z DoFs для поверхности 10

Типы данных: char | string

Выходные аргументы

свернуть все

Linearization описание выхода, возвращенное как массив структур.

Смотрите также

|

Введенный в R2021b