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. The axes 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. The axes 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. The axes 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 объект. Модель содержит геометрию, сетку, структурные свойства материала, нагрузки на тело, краевые нагрузки, граничные условия и начальные условия.

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

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

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

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

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

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

Функция должна вернуть матрицу с двумя строками для модели 2-D и матрицу с тремя строками для модели с 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', 'Cell' (наименьший приоритет).

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

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

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

Идентификатор геометрической области, заданный как вектор положительных целых чисел. Поиск идентификаторов областей при помощи 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 объект. См. Свойства Geometric Structural IC s и Свойств Nodal Structural IC s.

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

Подробнее о

свернуть все

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

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

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

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

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

  • Распределенная жесткость пружины для каждого поступательного направления, используемого для моделирования упругого фундамента

  • Принудительное перемещение и его компоненты

  • Начальное перемещение и скорость

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

structuralBoundaryLoad(model,'Face',12,'Pressure',@myfun)
structuralBC(model,'Face',2,'XDisplacement',@myfun)
structuralIC(model,'Face',12,'Displacement',@myfun)

Функция должна иметь форму:

function structuralVal = myfun(location,state)

Решатель передает location и state данные для вашей функции.

  • location - Структура, содержащая следующие поля:

    • location.x - X-координата точки или точки

    • location.y - Y-координата точки или точки

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

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

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

    • location.nx - x-компонент вектора normal в точке вычисления или точках

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

    • 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

  • Идентификатор поддомена

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

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

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

Введенный в R2018a