main content

reduced-凯发k8网页登录

reduced-order thermal model

since r2022a

description

a reducedthermalmodel object contains the reduced stiffness matrix k, reduced mass matrix m, reduced load vector f, initial conditions, mode shapes, mesh, and the average of snapshots used for proper orthogonal decomposition (pod).

to expand this data to a full transient thermal solution, use .

creation

reduce a thermal model by using the function. this function returns a reduced-order thermal model as a reducedthermalmodel object.

properties

reduced stiffness matrix, specified as a matrix.

data types: double

reduced mass matrix, specified as a matrix.

data types: double

reduced load vector, specified as a column vector.

data types: double

initial conditions in modal coordinates, specified as a column vector.

data types: double

modes used to obtain a reduced-order model, specified as a matrix.

data types: double

finite element mesh, specified as an femesh object. for details, see .

average of snapshots used for pod, returned as a column vector.

data types: double

object functions

recover full-model transient solution from reduced-order model (rom)

examples

reduce a thermal model using all modes or the specified number of modes from the modal solution.

create a transient thermal model.

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

create a unit square geometry and include it in the model.

geometryfromedges(thermalmodel,@squareg);

plot the geometry, displaying edge labels.

pdegplot(thermalmodel,"edgelabels","on")
xlim([-1.1 1.1])
ylim([-1.1 1.1])

figure contains an axes object. the axes object contains 5 objects of type line, text.

specify the thermal conductivity, mass density, and specific heat of the material.

thermalproperties(thermalmodel,"thermalconductivity",400, ...
                               "massdensity",1300, ...
                               "specificheat",600);

set the temperature on the right edge to 100.

thermalbc(thermalmodel,"edge",2,"temperature",100);

set an initial value of 0 for the temperature.

thermalic(thermalmodel,0);

generate a mesh.

generatemesh(thermalmodel);

solve the model for three different values of heat source and collect snapshots.

tlist = 0:10:600;
snapshotids = [1:10 59 60 61];
tmatrix = [];
heatvariation = [10000 15000 20000];
for q = heatvariation
    internalheatsource(thermalmodel,q);
    results = solve(thermalmodel,tlist);
    tmatrix = [tmatrix,results.temperature(:,snapshotids)];
end

switch the thermal model analysis type to modal.

thermalmodel.analysistype = "modal";

compute the pod modes.

rmodal = solve(thermalmodel,"snapshots",tmatrix)
rmodal = 
  modalthermalresults with properties:
          decayrates: [6x1 double]
          modeshapes: [1541x6 double]
    snapshotsaverage: [1541x1 double]
            modetype: "podmodes"
                mesh: [1x1 femesh]

reduce the thermal model using all modes in rmodal.

rtherm = reduce(thermalmodel,"modalresults",rmodal) 
rtherm = 
  reducedthermalmodel with properties:
                    k: [7x7 double]
                    m: [7x7 double]
                    f: [7x1 double]
    initialconditions: [7x1 double]
                 mesh: [1x1 femesh]
           modeshapes: [1541x6 double]
     snapshotsaverage: [1541x1 double]

reduce the thermal model using only three modes.

rtherm3 = reduce(thermalmodel,"modalresults",rmodal, ...
                              "nummodes",3)
rtherm3 = 
  reducedthermalmodel with properties:
                    k: [4x4 double]
                    m: [4x4 double]
                    f: [4x1 double]
    initialconditions: [4x1 double]
                 mesh: [1x1 femesh]
           modeshapes: [1541x3 double]
     snapshotsaverage: [1541x1 double]

version history

introduced in r2022a

see also

| | |

网站地图