structuralIC

Установите начальные условия для переходной структурной модели

Описание

пример

structuralIC(structuralmodel,'Displacement',u0,'Velocity',v0) смещение начальной буквы наборов и скорость для целой геометрии.

пример

structuralIC(___RegionType,RegionID) смещение начальной буквы наборов и скорость для конкретной области геометрии с помощью аргументов от предыдущего синтаксиса.

пример

structuralIC(structuralmodel,Sresults) смещение начальной буквы наборов и скорость с помощью решения Sresults от предыдущего структурного анализа той же геометрии. Если Sresults получен путем решения переходной структурной задачи, затем structuralIC использует решение Sresults в течение прошлого такта.

structuralIC(structuralmodel,Sresults,iT) использует решение Sresults в течение такта iT от предыдущего структурного анализа той же геометрии.

struct_ic = structuralIC(___) возвращает указатель на структурный объект начальных условий.

Примеры

свернуть все

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

Создайте переходную динамическую модель для 3-D проблемы.

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

Создайте геометрию и включайте ее в модель. Постройте геометрию.

gm = multicuboid(0.06,0.005,0.01);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
view(50,20)

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

Задайте нулевую начальную скорость на целой геометрии. Когда вы задаете только начальную скорость или начальное смещение, structuralIC принимает, что не использованный параметр является нулем. Например, здесь начальное смещение является также нулем.

structuralIC(structuralmodel,'Velocity',[0;0;0])
ans = 
  GeometricStructuralICs with properties:

             RegionType: 'Cell'
               RegionID: 1
    InitialDisplacement: []
        InitialVelocity: [3x1 double]

Обновите начальную скорость на поверхности 2, чтобы смоделировать импульсивное возбуждение.

structuralIC(structuralmodel,'Face',2,'Velocity',[0;60;0])
ans = 
  GeometricStructuralICs with properties:

             RegionType: 'Face'
               RegionID: 2
    InitialDisplacement: []
        InitialVelocity: [3x1 double]

Задайте начальное z-смещение, чтобы зависеть от X и Y координат.

Создайте переходную динамическую модель для 3-D проблемы.

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

Создайте геометрию и включайте ее в модель. Постройте геометрию.

gm = multicuboid(0.06,0.005,0.01);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
view(50,20)

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

Определите нулевое начальное перемещение на целой геометрии.

structuralIC(structuralmodel,'Displacement',[0;0;0])
ans = 
  GeometricStructuralICs with properties:

             RegionType: 'Cell'
               RegionID: 1
    InitialDisplacement: [3x1 double]
        InitialVelocity: []

Теперь измените начальное смещение в z-направлении на поверхности 2 к функции X и Y координат:

u(0)=[00x2+y2]

Запишите следующий файл функции. Сохраните его в местоположение на вашем пути MATLAB®.

function uinit = initdisp(location)

M = length(location.x);

uinit = zeros(3,M);

uinit(3,:) = location.x.^2 + location.y.^2;

Передайте начальное смещение своей структурной модели.

structuralIC(structuralmodel,'Face',2,'Displacement',@initdisp)
ans = 
  GeometricStructuralICs with properties:

             RegionType: 'Face'
               RegionID: 2
    InitialDisplacement: @initdisp
        InitialVelocity: []

Используйте статическое решение в качестве начального условия для динамической структурной модели.

Создайте статическую модель.

staticmodel = createpde('structural','static-solid');

Создайте геометрию и включайте ее в модель. Постройте геометрию.

gm = multicuboid(0.06,0.005,0.01);
staticmodel.Geometry = gm;
pdegplot(staticmodel,'FaceLabels','on','FaceAlpha',0.5)
view(50,20)

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

Задайте модуль Молодежи, отношение Пуассона и массовую плотность.

structuralProperties(staticmodel,'YoungsModulus',210E9, ...
                                 'PoissonsRatio',0.3,...
                                 'MassDensity',7800);

Примените граничное условие и статическую загрузку.

structuralBC(staticmodel,'Face',5,'Constraint','fixed');
structuralBoundaryLoad(staticmodel,'Face',3, ...
                                   'SurfaceTraction', ...
                                   [0;1E6;0]);

Сгенерируйте mesh и решите модель.

generateMesh(staticmodel,'Hmax',0.02);
Rstatic = solve(staticmodel);

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

dynamicmodel = createpde('structural','transient-solid');
gm = multicuboid(0.06,0.005,0.01);
dynamicmodel.Geometry = gm;

Примените граничное условие.

structuralBC(dynamicmodel,'Face',5,'Constraint','fixed');

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

generateMesh(dynamicmodel,'Hmax',0.02);

Задайте начальное условие с помощью статического решения.

structuralIC(dynamicmodel,Rstatic)
ans = 
  NodalStructuralICs with properties:

    InitialDisplacement: [113x3 double]
        InitialVelocity: [113x3 double]

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

свернуть все

Переходная структурная модель в виде StructuralModel объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок, граничных условий и начальных условий.

Пример: structuralmodel = createpde('structural','transient-solid')

Начальное смещение в виде числового вектора или указателя на функцию. Числовой вектор должен содержать два элемента для 2D модели и три элемента для 3-D модели. Элементы представляют компоненты начального смещения.

Используйте указатель на функцию, чтобы определить пространственно различное начальное перемещение. Функция должна возвратить двухстрочную матрицу для 2D модели и матрицу с тремя строками для 3-D модели. Каждый столбец матрицы соответствует начальному смещению в координатах, обеспеченных решателем. Для получения дополнительной информации смотрите Больше О.

Пример: structuralIC(structuralmodel,'Face',[2,5],'Displacement',[0;0;0.01])

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

Начальная скорость в виде числового вектора или указателя на функцию. Числовой вектор должен содержать два элемента для 2D модели и три элемента для 3-D модели. Элементы представляют компоненты начальной скорости.

Используйте указатель на функцию, чтобы задать пространственно различную начальную скорость. Функция должна возвратить двухстрочную матрицу для 2D модели и матрицу с тремя строками для 3-D модели. Каждый столбец матрицы соответствует начальной скорости в координатах, обеспеченных решателем. Для получения дополнительной информации смотрите Больше О.

Пример: structuralIC(structuralmodel,'Face',[2,5],'Displacement',[0;0;0.01],'Velocity',[0;60;0])

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

Геометрический тип области в виде 'Face', 'Edge', 'Vertex', или 'Cell'.

Когда вы применяете несколько начальных присвоений условия, решатель использует эти правила приоритета для определения начального условия.

  • Для нескольких присвоений на ту же геометрическую область решатель использует последнюю прикладную установку.

  • Для отдельных присвоений на геометрическую область и контуры той области, решатель использует заданное присвоение на области и выбирает присвоение на контуре можно следующим образом. Решатель дает 'Edge' приоритет присвоения по 'Face' присвоение, даже если вы задаете 'Face' присвоение после 'Edge' “()” Присвоение. Уровнями приоритета является 'Vertex (наивысший приоритет), 'Edge', 'Face'ячейка (самый низкий приоритет).

  • Для присвоения, сделанного с results объект, решатель использует то присвоение вместо всех предыдущих присвоений.

Пример: structuralIC(structuralmodel,'Face',[2,5],'Displacement',[0;0;0.01],'Velocity',[0;60;0])

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

Геометрический ID области в виде вектора из положительных целых чисел. Найдите идентификаторы области при помощи pdegplot.

Пример: structuralIC(structuralmodel,'Face',[2,5],'Displacement',[0;0;0.01],'Velocity',[0;60;0])

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

Структурное решение модели в виде StaticStructuralResults или TransientStructuralResults объект. Создайте Sresults при помощи solve.

Индекс времени в виде положительного целого числа.

Пример: structuralIC(structuralmodel,Sresults,21)

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

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

свернуть все

Обработайте к начальным условиям, возвращенным как GeometricStructuralICs или NodalStructuralICs объект. Смотрите Свойства GeometricStructuralICs и Свойства NodalStructuralICs.

structuralIC сопоставляет структурное начальное условие с геометрической областью в случае геометрического присвоения или узлами в случае основанного на результатах присвоения.

Больше о

свернуть все

Определение непостоянных параметров структурной модели

Используйте указатель на функцию, чтобы задать следующие структурные параметры, когда они будут зависеть от пробела и, в зависимости от типа структурного анализа, или время или частота:

  • Поверхностная тяга на контуре

  • Давление, нормальное к контуру

  • Сконцентрированная сила в вершине

  • Распределенная пружинная жесткость для каждого поступательного направления раньше моделировала эластичную основу

  • Вынужденное смещение и его компоненты

  • Начальное смещение и скорость (может зависеть только от пробела),

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

structuralBoundaryLoad(model,'Face',12, ...
                             'Pressure',@myfunPressure)
structuralBC(model,'Face',2, ...
                   'XDisplacement',@myfunBC)
structuralIC(model,'Face',12, ...
                   'Displacement',@myfunIC)

Для всех параметров, кроме начального смещения и скорости, функция должна иметь форму:

function structuralVal = myfun(location,state)

Для начального смещения и скорости функция должна иметь форму:

function structuralVal = myfun(location)

Решатель вычисляет и заполняет данные в location и state массивы структур и передачи эти данные к вашей функции. Можно задать функцию так, чтобы ее выход зависел от этих данных. Можно использовать любые имена вместо location и state, но функция должна иметь точно два аргумента (или один аргумент, если функция определяет начальное перемещение или начальную скорость). Чтобы использовать дополнительные аргументы в вашей функции, перенесите свою функцию (который берет дополнительные аргументы) с анонимной функцией, которая берет только location и state аргументы. Например:

structuralVal = ...
@(location,state) myfunWithAdditionalArgs(location,state,arg1,arg2...)
structuralBC(model,'Face',2,'XDisplacement',structuralVal)

structuralVal = ...
@(location) myfunWithAdditionalArgs(location,arg1,arg2...)
structuralIC(model,'Face',2,'Displacement',structuralVal)
  • location — Структура, содержащая эти поля:

    • location.xX-координата точки или точек

    • location.yY-координата точки или точек

    • location.z — Для 3-D или осесимметричной геометрии, z-координаты точки или точек

    • location.r — Для осесимметричной геометрии, r-координаты точки или точек

    Кроме того, для граничных условий, решатель передает эти данные в location структура:

    • location.nxx-компонент вектора нормали в точке оценки или точках

    • location.nyy-компонент вектора нормали в точке оценки или точках

    • location.nz — Для 3-D или осесимметричной геометрии, z-компонента вектора нормали в точке оценки или точках

    • location.nz — Для осесимметричной геометрии, z-компонента вектора нормали в точке оценки или точках

  • state — Структура, содержащая эти поля для динамических структурных проблем:

    • state.time содержит время в точках оценки.

    • state.frequency содержит частоту в точках оценки.

    state.time и state.frequency скаляры.

Граничные ограничения и загрузки получают эти данные из решателя:

  • location.x, location.y, location.z, location.r

  • location.nx, location.ny, location.nz, location.nr

  • state.time или state.frequency (в зависимости от типа структурного анализа)

Начальные условия получают эти данные из решателя:

  • location.x, location.y, location.z, location.r

  • ID субдомена

Если параметр представляет векторное значение, такое как поверхностная тяга, пружинная жесткость, сила или смещение, ваша функция должна возвратить двухстрочную матрицу для 2D модели и матрицу с тремя строками для 3-D модели. Каждый столбец матрицы соответствует значению параметров (вектор) за пределами координирует обеспеченный решателем.

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

Если граничные условия зависят от state.time или state.frequency, гарантируйте, что ваша функция возвращает матрицу NaN из правильного размера, когда state.frequency или state.time NaN. Решатели проверяют, является ли проблема нелинейной или зависящей от времени путем передачи NaN значения состояния и поиск возвращенного NaN значения.

Введенный в R2018a