linearizeInput

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

Описание

пример

linearizeInput(model,labeltext) добавляют входные параметры для граничного условия, ограничения, загрузки или источника с меткой labeltext. В линеаризовавшей модели входное значение u = 1 соответствует модульному граничному условию, действующему на весь регион, заданный labeltext. Другими словами, симулируя линеаризовавшую модель с входным значением u (t) = 25 эквивалентен устанавливанию значения граничного условия к 25 в тепловой или структурной модели в Partial Differential Equation Toolbox™. Для получения дополнительной информации см. Алгоритмы.

Для модели структурного анализа следующие граничные условия, ограничения и загрузки могут стать входными параметрами линеаризовавшей модели:

  • Структурное граничное ограничение. Используйте structuralBC функция с Constraint аргумент.

  • Смещение или компонент смещения на контуре. Используйте structuralBC функция с Displacement, XDisplacement, YDisplacement, или ZDisplacement аргумент.

  • Структурная граничная загрузка. Используйте structuralBoundaryLoad функция с PressureСила, или SurfaceTraction аргумент.

  • Структурная загрузка тела. Используйте structuralBodyLoad функция с GravitationalAcceleration аргумент.

Граничные условия, загрузки или ограничения с x - y - и z - компоненты производят входной канал того на компонент.

Для тепловой аналитической модели следующие граничные условия и источники могут стать входными параметрами линеаризовавшей модели:

  • Температура или тепло текут на контуре. Используйте thermalBC функция с Temperature или HeatFlux аргумент.

  • Внутренний источник тепла. Используйте internalHeatSource функция.

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

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

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

Остающиеся граничные условия обнуляются в целях линеаризации, независимо от их значения в структурной или тепловой модели. Убедитесь, что вы помечаете все ненулевые граничные условия и передаете их как входные параметры с помощью linearizeInput.

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

input = linearizeInput(model,labeltext) возвращает массив структур input с линеаризацией вводит описание.

Примеры

свернуть все

Используйте метки, чтобы передать параметры 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');

LinearizeInputs свойство thermalmodel хранит входные параметры.

thermalmodel.LinearizeInputs
ans=1×3 struct array with fields:
    RegionType
    RegionID
    Label

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

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

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');

LinearizeInputs свойство structuralmodel хранит входные параметры.

structuralmodel.LinearizeInputs
ans=1×2 struct array with fields:
    RegionType
    RegionID
    Label

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

свернуть все

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

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

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

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

свернуть все

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

Алгоритмы

linearize функционируйте создает линейную модель, входные параметры которой являются подмножеством граничных условий, загрузок, или источники применились к тепловой или структурной модели в Partial Differential Equation Toolbox и чьи выходные параметры являются получившимися значениями в выбранном числе степеней свободы. Например, если вы определяете источник тепла

internalHeatSource(model,25,'Face',2,'Label','heatSource')

когда линеаризация вводится

linearizeInput(model,'heatSource')

и назовите температуры на поверхности X как линеаризация выходные параметры

linearizeOutput(model,’Face’,X)
затем ответ линеаризовавшей модели к постоянному входу u (t) = 25 (значение источника тепла в тепловой модели) совпадает с результатами симуляции Partial Differential Equation Toolbox для поверхности X.

tlist = 1:10;
u = repmat(25,size(tlist));
ysp = lsim(linsys,uLoad,tlist);

Обратите внимание на то, что загрузки и граничные условия, не включенные как входные параметры линеаризации, приняты, чтобы быть нулем в линеаризовавшей модели независимо от их значений в структурной или тепловой модели в Partial Differential Equation Toolbox. Результаты симуляции могут отличаться в этом случае.

Введенный в R2021b