Решите теплопередачу, структурный анализ или электромагнитную аналитическую проблему
возвращает решение статической модели структурного анализа, представленной в structuralStaticResults
= solve(structuralStatic
)structuralStatic
.
возвращает решение модальной аналитической модели для всех режимов в частотном диапазоне structuralModalResults
= solve(structuralModal
,'FrequencyRange',[omega1,omega2]
)[omega1,omega2]
. Задайте omega1
как немного меньший, чем самая низкая ожидаемая частота и omega2
как немного больше, чем самая высокая ожидаемая частота. Например, если самая низкая ожидаемая частота является нулем, то используйте маленькую отрицательную величину для omega1
.
возвращает решение переходной структурной модели динамики, представленной в structuralTransientResults
= solve(structuralTransient
,tlist
)structuralTransient
.
возвращает решение модели частотной характеристики, представленной в structuralFrequencyResponseResults
= solve(structuralFrequencyResponse
,flist
)structuralFrequencyResponse
.
и structuralTransientResults
= solve(structuralTransient
,tlist
,'ModalResults',modalresults
)
решите переходный процесс и частотную характеристику структурная модель, соответственно, при помощи модального метода суперпозиции, чтобы ускорить расчеты. Во-первых, выполните модальный анализ, чтобы вычислить собственные частоты и формы режима в конкретном частотном диапазоне. Затем используйте этот синтаксис, чтобы вызвать модальный метод суперпозиции. Точность результатов зависит от режимов в модальных результатах анализа.structuralFrequencyResponseResults
= solve(structuralFrequencyResponse
,flist
,'ModalResults',modalresults
)
возвращает решение установившейся тепловой модели, представленной в thermalSteadyStateResults
= solve(thermalSteadyState
)thermalSteadyState
.
возвращает решение переходной тепловой модели, представленной в thermalTransientResults
= solve(thermalTransient
,tlist
)thermalTransient
во времена tlist
.
возвращает решение электромагнитной модели, представленной в emagResults
= solve(emagmodel
)emagmodel
.
Решите 3-D установившуюся тепловую задачу.
Создайте тепловую модель для этой проблемы.
thermalmodel = createpde('thermal');
Импортируйте и постройте геометрию блока.
importGeometry(thermalmodel,'Block.stl'); pdegplot(thermalmodel,'FaceLabel','on','FaceAlpha',0.5) axis equal
Присвойте свойства материала.
thermalProperties(thermalmodel,'ThermalConductivity',80);
Применяйтесь постоянная температура 100 °C к левой стороне блока (столкнитесь 1), и постоянная температура 300 °C к правой стороне блока (столкнитесь 3). Все другие поверхности изолируются по умолчанию.
thermalBC(thermalmodel,'Face',1,'Temperature',100); thermalBC(thermalmodel,'Face',3,'Temperature',300);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel); thermalresults = solve(thermalmodel)
thermalresults = SteadyStateThermalResults with properties: Temperature: [12691x1 double] XGradients: [12691x1 double] YGradients: [12691x1 double] ZGradients: [12691x1 double] Mesh: [1x1 FEMesh]
Решатель находит температуры и градиенты температуры в узловых местоположениях. Чтобы получить доступ к этим значениям, используйте thermalresults.Temperature
, thermalresults.XGradients
, и так далее. Например, постройте температуры в узловых местоположениях.
pdeplot3D(thermalmodel,'ColorMapData',thermalresults.Temperature)
Решите 2D переходную тепловую задачу.
Создайте переходную тепловую модель для этой проблемы.
thermalmodel = createpde('thermal','transient');
Создайте геометрию и включайте ее в модель.
SQ1 = [3; 4; 0; 3; 3; 0; 0; 0; 3; 3]; D1 = [2; 4; 0.5; 1.5; 2.5; 1.5; 1.5; 0.5; 1.5; 2.5]; gd = [SQ1 D1]; sf = 'SQ1+D1'; ns = char('SQ1','D1'); ns = ns'; dl = decsg(gd,sf,ns); geometryFromEdges(thermalmodel,dl); pdegplot(thermalmodel,'EdgeLabels','on','FaceLabels','on') xlim([-1.5 4.5]) ylim([-0.5 3.5]) axis equal
Для квадратной области присвойте эти тепловые свойства:
Теплопроводность
Массовая плотность
Удельная теплоемкость
thermalProperties(thermalmodel,'ThermalConductivity',10, ... 'MassDensity',2, ... 'SpecificHeat',0.1, ... 'Face',1);
Для ромбовидной области присвойте эти тепловые свойства:
Теплопроводность
Массовая плотность
Удельная теплоемкость
thermalProperties(thermalmodel,'ThermalConductivity',2, ... 'MassDensity',1, ... 'SpecificHeat',0.1, ... 'Face',2);
Примите, что ромбовидная область является источником тепла с плотностью .
internalHeatSource(thermalmodel,4,'Face',2);
Примените постоянную температуру сторонам квадратной пластины.
thermalBC(thermalmodel,'Temperature',0,'Edge',[1 2 7 8]);
Установите начальную температуру на 0 °C.
thermalIC(thermalmodel,0);
Сгенерируйте mesh.
generateMesh(thermalmodel);
Движущие силы для этой проблемы очень быстры. Температура достигает устойчивого состояния приблизительно за 0,1 секунды. Чтобы получить интересную часть динамики, установите время решения на logspace(-2,-1,10)
. Эта команда возвращается 10 логарифмически расположенных с интервалами раз решения между 0,01 и 0.1.
tlist = logspace(-2,-1,10);
Решите уравнение.
thermalresults = solve(thermalmodel,tlist);
Постройте решение с изотермическими линиями при помощи контурного графика.
T = thermalresults.Temperature; pdeplot(thermalmodel,'XYData',T(:,10),'Contour','on','ColorMap','hot')
Решите статическую структурную модель, представляющую биметаллический кабель под силой.
Создайте статическую структурную модель для решения твердой (3-D) проблемы.
structuralmodel = createpde('structural','static-solid');
Создайте геометрию и включайте ее в модель. Постройте геометрию.
gm = multicylinder([0.01 0.015],0.05); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on', ... 'CellLabels','on', ... 'FaceAlpha',0.5)
Задайте модуль Молодежи и отношение Пуассона для каждого металла.
structuralProperties(structuralmodel,'Cell',1,'YoungsModulus',110E9, ... 'PoissonsRatio',0.28); structuralProperties(structuralmodel,'Cell',2,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3);
Укажите, что стоит 1, и 4 зафиксированные контуры.
structuralBC(structuralmodel,'Face',[1,4],'Constraint','fixed');
Задайте поверхностную тягу для поверхностей 2 и 5.
structuralBoundaryLoad(structuralmodel,'Face',[2,5], ... 'SurfaceTraction',[0;0;100]);
Сгенерируйте mesh и решите задачу.
generateMesh(structuralmodel); structuralresults = solve(structuralmodel)
structuralresults = StaticStructuralResults with properties: Displacement: [1x1 FEStruct] Strain: [1x1 FEStruct] Stress: [1x1 FEStruct] VonMisesStress: [22281x1 double] Mesh: [1x1 FEMesh]
Решатель находит значения смещения, напряжения, деформации и напряжения фон Мизеса в узловых местоположениях. Чтобы получить доступ к этим значениям, используйте structuralresults.Displacement
, structuralresults.Stress
, и так далее. Смещение, напряжение и значения деформации в узловых местоположениях возвращены как FEStruct
объекты со свойствами, представляющими их компоненты. Обратите внимание на то, что свойства FEStruct
объект только для чтения.
structuralresults.Displacement
ans = FEStruct with properties: ux: [22281x1 double] uy: [22281x1 double] uz: [22281x1 double] Magnitude: [22281x1 double]
structuralresults.Stress
ans = FEStruct with properties: sxx: [22281x1 double] syy: [22281x1 double] szz: [22281x1 double] syz: [22281x1 double] sxz: [22281x1 double] sxy: [22281x1 double]
structuralresults.Strain
ans = FEStruct with properties: exx: [22281x1 double] eyy: [22281x1 double] ezz: [22281x1 double] eyz: [22281x1 double] exz: [22281x1 double] exy: [22281x1 double]
Постройте деформированную форму с z-компонентом нормального напряжения.
pdeplot3D(structuralmodel, ... 'ColorMapData',structuralresults.Stress.szz, ... 'Deformation',structuralresults.Displacement)
Решите для переходного процесса в тонкой 3-D пластине при гармонической загрузке в центре.
Создайте переходную динамическую модель для 3-D проблемы.
structuralmodel = createpde('structural','transient-solid');
Создайте геометрию и включайте ее в модель. Постройте геометрию.
gm = multicuboid([5,0.05],[5,0.05],0.01); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5)
Увеличьте масштаб, чтобы видеть метки поверхности на маленькой пластине в центре.
figure pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.25) axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])
Задайте модуль Молодежи, отношение Пуассона и массовую плотность материала.
structuralProperties(structuralmodel,'YoungsModulus',210E9,... 'PoissonsRatio',0.3,... 'MassDensity',7800);
Укажите, что все поверхности на периферии тонкой 3-D пластины являются зафиксированными контурами.
structuralBC(structuralmodel,'Constraint','fixed','Face',5:8);
Примените синусоидальную нагрузку давления на маленькую поверхность в центре пластины.
structuralBoundaryLoad(structuralmodel,'Face',12, ... 'Pressure',5E7, ... 'Frequency',25);
Сгенерируйте mesh с линейными элементами.
generateMesh(structuralmodel,'GeometricOrder','linear','Hmax',0.2);
Определите нулевое начальное перемещение и скорость.
structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]);
Решите модель.
tlist = linspace(0,1,300); structuralresults = solve(structuralmodel,tlist);
Решатель находит значения смещения, скорости и ускорения в узловых местоположениях. Чтобы получить доступ к этим значениям, используйте structuralresults.Displacement
, structuralresults.Velocity
, и так далее. Смещение, скорость и ускоряющие значения возвращены как FEStruct
объекты со свойствами, представляющими их компоненты. Обратите внимание на то, что свойства FEStruct
объект только для чтения.
structuralresults.Displacement
ans = FEStruct with properties: ux: [1873x300 double] uy: [1873x300 double] uz: [1873x300 double] Magnitude: [1873x300 double]
structuralresults.Velocity
ans = FEStruct with properties: vx: [1873x300 double] vy: [1873x300 double] vz: [1873x300 double] Magnitude: [1873x300 double]
structuralresults.Acceleration
ans = FEStruct with properties: ax: [1873x300 double] ay: [1873x300 double] az: [1873x300 double] Magnitude: [1873x300 double]
Найдите основной (самый низкий) режим 2D консольного луча, приняв распространенность условия плоского напряжения.
Задайте следующие геометрические и структурные свойства луча, наряду с модульной толщиной плоского напряжения.
length = 5; height = 0.1; E = 3E7; nu = 0.3; rho = 0.3/386;
Создайте модель плоского напряжения модели, присвойте геометрию и сгенерируйте mesh.
structuralmodel = createpde('structural','modal-planestress'); gdm = [3;4;0;length;length;0;0;0;height;height]; g = decsg(gdm,'S1',('S1')'); geometryFromEdges(structuralmodel,g);
Задайте максимальный размер элемента (пять элементов через толщину луча).
hmax = height/5;
msh=generateMesh(structuralmodel,'Hmax',hmax);
Задайте структурные свойства и граничные ограничения.
structuralProperties(structuralmodel,'YoungsModulus',E, ... 'MassDensity',rho, ... 'PoissonsRatio',nu); structuralBC(structuralmodel,'Edge',4,'Constraint','fixed');
Вычислите аналитическую основную частоту (Гц) с помощью теории луча.
I = height^3/12; analyticalOmega1 = 3.516*sqrt(E*I/(length^4*(rho*height)))/(2*pi)
analyticalOmega1 = 126.9498
Задайте частотный диапазон, который включает аналитически вычисленную частоту, и решите модель.
modalresults = solve(structuralmodel,'FrequencyRange',[0,1e6])
modalresults = ModalStructuralResults with properties: NaturalFrequencies: [32x1 double] ModeShapes: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Решатель находит собственные частоты и модальные значения смещения в узловых местоположениях. Чтобы получить доступ к этим значениям, используйте modalresults.NaturalFrequencies
и modalresults.ModeShapes
.
modalresults.NaturalFrequencies/(2*pi)
ans = 32×1
105 ×
0.0013
0.0079
0.0222
0.0433
0.0711
0.0983
0.1055
0.1462
0.1930
0.2455
⋮
modalresults.ModeShapes
ans = FEStruct with properties: ux: [6511x32 double] uy: [6511x32 double] Magnitude: [6511x32 double]
Постройте y-компонент решения для основной частоты.
pdeplot(structuralmodel,'XYData',modalresults.ModeShapes.uy(:,1)) title(['First Mode with Frequency ', ... num2str(modalresults.NaturalFrequencies(1)/(2*pi)),' Hz']) axis equal
Выполните анализ частотной характеристики камертона.
Во-первых, создайте структурную модель для модального анализа твердого камертона.
model = createpde('structural','frequency-solid');
Импортируйте геометрию камертона.
importGeometry(model,'TuningFork.stl');
Задайте модуль Молодежи, отношение Пуассона и массовую плотность, чтобы смоделировать линейное эластичное существенное поведение. Задайте все физические свойства в сопоставимых модулях.
structuralProperties(model,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',8000);
Идентифицируйте поверхности для применения граничных ограничений и загрузок путем графического вывода геометрии с метками поверхности.
figure('units','normalized','outerposition',[0 0 1 1]) pdegplot(model,'FaceLabels','on') view(-50,15) title 'Geometry with Face Labels'
Наложите достаточные граничные ограничения, чтобы предотвратить движение твердого тела при прикладной загрузке. Как правило, вы содержите камертон вручную или монтируете его на таблице. Чтобы создать простое приближение этого граничного условия, зафиксируйте область около пересечения зубцов, и указатель (стоит 21 и 22).
structuralBC(model,'Face',[21,22],'Constraint','fixed');
Задайте загрузку давления на зубец (столкнитесь 11) как короткий прямоугольный импульс давления. В частотном диапазоне этот импульс давления является модульной загрузкой, равномерно распределенной через все частоты.
structuralBoundaryLoad(model,'Face',11,'Pressure',1); flist = linspace(0,4000,150); mesh = generateMesh(model,'Hmax',0.005); R = solve(model,2*pi*flist);
Постройте частоту вибрации совета зубца, который является поверхностью 12. Найдите, что узлы на совете стоят и строят y-компонент смещения по частоте, с помощью одного из этих узлов.
excitedTineTipNodes = findNodes(mesh,'region','Face',12); tipDisp = R.Displacement.uy(excitedTineTipNodes(1),:); figure plot(flist,abs(tipDisp)) xlabel('Frequency'); ylabel('|Y-Displacement|');
Найдите отклонение 3-D консольного луча под неоднородной тепловой нагрузкой. Задайте тепловую нагрузку на структурной модели с помощью решения от переходного теплового анализа той же геометрии и mesh.
Переходный тепловой анализ модели
Создайте переходную тепловую модель.
thermalmodel = createpde('thermal','transient');
Создайте и постройте геометрию.
gm = multicuboid(0.5,0.1,0.05); thermalmodel.Geometry = gm; pdegplot(thermalmodel,'FaceLabels','on','FaceAlpha',0.5)
Сгенерируйте mesh.
mesh = generateMesh(thermalmodel);
Задайте тепловые свойства материала.
thermalProperties(thermalmodel,'ThermalConductivity',5e-3, ... 'MassDensity',2.7*10^(-6), ... 'SpecificHeat',10);
Укажите, что постоянные температуры применились к левым и правым концам на луче.
thermalBC(thermalmodel,'Face',3,'Temperature',100); thermalBC(thermalmodel,'Face',5,'Temperature',0);
Задайте источник тепла по целой геометрии.
internalHeatSource(thermalmodel,10);
Установите начальную температуру.
thermalIC(thermalmodel,0);
Решите модель.
tlist = [0:1e-4:2e-4]; thermalresults = solve(thermalmodel,tlist)
thermalresults = TransientThermalResults with properties: Temperature: [3870x3 double] SolutionTimes: [0 1.0000e-04 2.0000e-04] XGradients: [3870x3 double] YGradients: [3870x3 double] ZGradients: [3870x3 double] Mesh: [1x1 FEMesh]
Постройте температурное распределение для каждого временного шага.
for n = 1:numel(thermalresults.SolutionTimes) figure pdeplot3D(thermalmodel, ... 'ColorMapData', ... thermalresults.Temperature(:,n)) title(['Temperature at Time = ' ... num2str(tlist(n))]) caxis([0 100]) end
Структурный анализ с тепловой нагрузкой
Создайте статическую структурную модель.
structuralmodel = createpde('structural','static-solid');
Включайте ту же геометрию что касается тепловой модели.
structuralmodel.Geometry = gm;
Используйте ту же mesh, что вы раньше получали тепловое решение.
structuralmodel.Mesh = mesh;
Задайте модуль Молодежи, отношение Пуассона и коэффициент теплового расширения.
structuralProperties(structuralmodel,'YoungsModulus',1e10, ... 'PoissonsRatio',0.3, ...' 'CTE',11.7e-6);
Примените закрепленное граничное условие на поверхность 5.
structuralBC(structuralmodel,'Face',5,'Constraint','fixed');
Примените загрузку тела с помощью переходного теплового решения модели. По умолчанию, structuralBodyLoad
использует решение, в последний раз продвигаются.
structuralBodyLoad(structuralmodel,'Temperature',thermalresults);
Задайте ссылочную температуру.
structuralmodel.ReferenceTemperature = 10;
Решите структурную модель.
thermalstressresults = solve(structuralmodel);
Постройте деформированную форму луча, соответствующего последнему шагу переходного теплового решения модели.
pdeplot3D(structuralmodel, ... 'ColorMapData', ... thermalstressresults.Displacement.Magnitude, ... 'Deformation', ... thermalstressresults.Displacement) title(['Thermal Expansion at Solution Time = ' ... num2str(tlist(end))]) caxis([0 3e-3])
Теперь задайте загрузки тела, когда тепловые решения модели навсегда продвигаются. Для каждой загрузки тела решите структурную модель и постройте соответствующую деформированную форму луча.
for n = 1:numel(thermalresults.SolutionTimes) structuralBodyLoad(structuralmodel, ... 'Temperature', ... thermalresults, ... 'TimeStep',n); thermalstressresults = solve(structuralmodel); figure pdeplot3D(structuralmodel, ... 'ColorMapData', ... thermalstressresults.Displacement.Magnitude, ... 'Deformation', ... thermalstressresults.Displacement) title(['Thermal Results at Solution Time = ' ... num2str(tlist(n))]) caxis([0 3e-3]) end
Решите для переходного процесса в центре 3-D луча при гармонической нагрузке на один из ее углов.
Модальный анализ
Создайте модальную аналитическую модель для 3-D проблемы.
modelM = createpde('structural','modal-solid');
Создайте геометрию и включайте ее в модель. Постройте геометрию и отобразите метки вершины и ребро.
gm = multicuboid(0.05,0.003,0.003); modelM.Geometry = gm; pdegplot(modelM,'EdgeLabels','on','VertexLabels','on'); view([95 5])
Сгенерируйте mesh.
msh = generateMesh(modelM);
Задайте модуль Молодежи, отношение Пуассона и массовую плотность материала.
structuralProperties(modelM,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',7800);
Задайте минимальные ограничения на один конец луча, чтобы предотвратить режимы твердого тела. Например, укажите, что ребро 4 и вершина 7 является зафиксированными контурами.
structuralBC(modelM,'Edge',4,'Constraint','fixed'); structuralBC(modelM,'Vertex',7,'Constraint','fixed');
Решите задачу для частотного диапазона от 0 до 500 000. Рекомендуемый подход должен использовать значение, которое немного меньше, чем ожидаемая самая низкая частота. Таким образом используйте -0.1
вместо 0
.
Rm = solve(modelM,'FrequencyRange',[-0.1,500000]);
Анализ переходных процессов
Создайте модель анализа переходных процессов для 3-D проблемы.
modelD = createpde('structural','transient-solid');
Используйте ту же геометрию и mesh что касается модального анализа.
modelD.Geometry = gm; modelD.Mesh = msh;
Задайте те же значения для модуля Молодежи, отношения Пуассона и массовой плотности материала.
structuralProperties(modelD,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',7800);
Задайте те же минимальные ограничения на один конец луча, чтобы предотвратить режимы твердого тела.
structuralBC(modelD,'Edge',4,'Constraint','fixed'); structuralBC(modelD,'Vertex',7,'Constraint','fixed');
Прикладывайте синусоидальную силу на углу напротив ограниченного ребра и вершины.
structuralBoundaryLoad(modelD,'Vertex',5, ... 'Force',[0,0,10], ... 'Frequency',7600);
Определите нулевое начальное перемещение и скорость.
structuralIC(modelD,'Velocity',[0;0;0],'Displacement',[0;0;0]);
Задайте относительные и абсолютные погрешности для решателя.
modelD.SolverOptions.RelativeTolerance = 1E-5; modelD.SolverOptions.AbsoluteTolerance = 1E-9;
Решите модель с помощью модальных результатов.
tlist = linspace(0,0.004,120);
Rdm = solve(modelD,tlist,'ModalResults',Rm)
Rdm = TransientStructuralResults with properties: Displacement: [1x1 FEStruct] Velocity: [1x1 FEStruct] Acceleration: [1x1 FEStruct] SolutionTimes: [0 3.3613e-05 6.7227e-05 1.0084e-04 1.3445e-04 ... ] Mesh: [1x1 FEMesh]
Интерполируйте и постройте смещение в центре луча.
intrpUdm = interpolateDisplacement(Rdm,0,0,0.0015); plot(Rdm.SolutionTimes,intrpUdm.uz) grid on xlabel('Time'); ylabel('Center of beam displacement')
Решите электромагнитную задачу и найдите электрический потенциал и полевое распределение для 2D геометрии, представляющей пластину отверстием.
Создайте электромагнитную модель для электростатического анализа.
emagmodel = createpde('electromagnetic','electrostatic');
Импортируйте и постройте геометрию, представляющую пластину отверстием.
importGeometry(emagmodel,'PlateHolePlanar.stl'); pdegplot(emagmodel,'EdgeLabels','on')
Задайте вакуумную проницаемость в системе СИ модулей.
emagmodel.VacuumPermittivity = 8.8541878128E-12;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermittivity',1);
Примените граничные условия напряжения на ребра, структурирующие прямоугольник и круг.
electromagneticBC(emagmodel,'Voltage',0,'Edge',1:4); electromagneticBC(emagmodel,'Voltage',1000,'Edge',5);
Задайте плотность заряда для целой геометрии.
electromagneticSource(emagmodel,'ChargeDensity',5E-9);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель.
R = solve(emagmodel)
R = ElectrostaticResults with properties: ElectricPotential: [1218x1 double] ElectricField: [1x1 FEStruct] ElectricFluxDensity: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Постройте электрический потенциал и поле.
pdeplot(emagmodel,'XYData',R.ElectricPotential, ... 'FlowData',[R.ElectricField.Ex ... R.ElectricField.Ey]) axis equal
Решите электромагнитную задачу и найдите магнитный потенциал и полевое распределение для 3-D геометрии, представляющей пластину отверстием.
Создайте электромагнитную модель для магнитостатического анализа.
emagmodel = createpde('electromagnetic','magnetostatic');
Импортируйте и постройте геометрию, представляющую пластину отверстием.
importGeometry(emagmodel,'PlateHoleSolid.stl'); pdegplot(emagmodel,'FaceLabels','on','FaceAlpha',0.3)
Задайте вакуумное значение проницаемости в системе СИ модулей.
emagmodel.VacuumPermeability = 1.2566370614E-6;
Задайте относительную проницаемость материала.
electromagneticProperties(emagmodel,'RelativePermeability',5000);
Задайте плотность тока для целой геометрии.
electromagneticSource(emagmodel,'CurrentDensity',[0;0;0.5]);
Примените магнитные потенциальные граничные условия на поверхности стороны и поверхность, ограничивающую отверстие.
electromagneticBC(emagmodel,'MagneticPotential',[0;0;0],'Face',3:6); electromagneticBC(emagmodel,'MagneticPotential',[0;0;0.01],'Face',7);
Сгенерируйте mesh.
generateMesh(emagmodel);
Решите модель.
R = solve(emagmodel)
R = MagnetostaticResults with properties: MagneticPotential: [1x1 FEStruct] MagneticField: [1x1 FEStruct] MagneticFluxDensity: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Постройте z-компонент магнитного потенциала.
pdeplot3D(emagmodel,'ColormapData',R.MagneticPotential.Az)
Постройте магнитное поле.
pdeplot3D(emagmodel,'FlowData',[R.MagneticField.Hx ... R.MagneticField.Hy ... R.MagneticField.Hz])
structuralStatic
— Статическая модель структурного анализаStructuralModel
объектСтатическая модель структурного анализа в виде StructuralModel
объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.
Пример: structuralmodel = createpde('structural','static-solid')
structuralModal
— Модальный анализ структурная модельStructuralModel
объектМодальный анализ структурная модель в виде StructuralModel
объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.
Пример: structuralmodel = createpde('structural','modal-solid')
structuralTransient
— Переходная модель структурного анализаStructuralModel
объектПереходная модель структурного анализа в виде StructuralModel
объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.
Пример: structuralmodel = createpde('structural','transient-solid')
structuralFrequencyResponse
— Модель структурного анализа частотной характеристикиStructuralModel
объектАнализ частотной характеристики структурная модель в виде StructuralModel
объект. Модель содержит геометрию, mesh, структурные свойства материала, загрузок тела, граничных загрузок и граничных условий.
Пример: structuralmodel = createpde('structural','frequency-solid')
tlist
— Времена решенияВремена решения в виде вектора действительных чисел монотонно увеличения или уменьшения значений.
Пример: 0:20
Типы данных: double
flist
— Частоты решенияЧастоты решения в виде вектора действительных чисел монотонно увеличения или уменьшения значений.
Пример: linspace(0,4000,150)
Типы данных: double
[omega1,omega2]
— Частотный диапазонЧастотный диапазон в виде вектора из двух элементов. Задайте omega1
как немного меньший, чем самая низкая ожидаемая частота и omega2
как немного больше, чем самая высокая ожидаемая частота. Например, если самая низкая ожидаемая частота является нулем, то используйте маленькую отрицательную величину для omega1
.
Пример: [-0.1,1000]
Типы данных: double
modalresults
— Модальные результаты анализаModalStructuralResults
объектМодальные результаты анализа в виде ModalStructuralResults
объект.
Пример: modalresults = solve(structuralmodel,'FrequencyRange',[0,1e6])
thermalSteadyState
— Установившаяся тепловая аналитическая модельThermalModel
объектУстановившаяся тепловая аналитическая модель в виде ThermalModel
объект. Модель содержит геометрию, mesh, тепловые свойства материального, внутреннего источника тепла, граничных условий и начальных условий.
Пример: thermalmodel = createpde('thermal','steadystate')
thermalTransient
— Переходная тепловая аналитическая модельThermalModel
объектПереходная тепловая аналитическая модель в виде ThermalModel
объект. Модель содержит геометрию, mesh, тепловые свойства материального, внутреннего источника тепла, граничных условий и начальных условий.
Пример: thermalmodel = createpde('thermal','transient')
emagmodel
— Электромагнитная модель для электростатического или магнитостатического анализаElectromagneticModel
объектЭлектромагнитная модель для электростатического или магнитостатического анализа в виде ElectromagneticModel
объект. Модель содержит геометрию, mesh, свойства материала, электромагнитные источники и граничные условия.
Пример: emagmodel = createpde('electromagnetic','magnetostatic')
structuralStaticResults
— Статические результаты структурного анализаStaticStructuralResults
объектСтатические результаты структурного анализа, возвращенные как StaticStructuralResults
объект.
structuralModalResults
— Модальные результаты структурного анализаModalStructuralResults
объектМодальные результаты структурного анализа, возвращенные как ModalStructuralResults
объект.
structuralTransientResults
— Переходные результаты структурного анализаTransientStructuralResults
объектПереходные результаты структурного анализа, возвращенные как TransientStructuralResults
объект.
structuralFrequencyResponseResults
— Результаты структурного анализа частотной характеристикиFrequencyStructuralResults
объектРезультаты структурного анализа частотной характеристики, возвращенные как FrequencyStructuralResults
объект.
thermalSteadyStateResults
— Установившиеся тепловые результаты анализаSteadyStateThermalResults
объектУстановившиеся тепловые результаты анализа, возвращенные как SteadyStateThermalResults
объект.
thermalTransientResults
— Переходные тепловые результаты анализаTransientThermalResults
объектПереходные тепловые результаты анализа, возвращенные как TransientThermalResults
объект.
emagResults
— Электростатические или магнитостатические результаты анализаElectrostaticResults
возразите | MagnetostaticResults
объектЭлектростатические или магнитостатические результаты анализа, возвращенные как ElectrostaticResults
или MagnetostaticResults
объект.
Когда вы используете модальные результаты анализа, чтобы решить переходную структурную модель динамики, modalresults
аргумент должен быть создан в версии R2019a Partial Differential Equation Toolbox™ или более новый.
Для модели частотной характеристики с затуханием результаты являются комплексными. Используйте функции, такие как abs
и angle
получить результаты с действительным знаком, такие как величина и фаза.
PDEModel
| ThermalModel
| StructuralModel
| ElectromagneticModel
|
geometryFromEdges
| geometryFromMesh
| importGeometry
| reduce
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.