主要内容

点荷载梁的降维建模技术

这个例子展示了如何消除自由度(自由度)不感兴趣的边界通过Craig-Bampton降维建模技术。示例还使用较小尺寸超单元分析的动态系统。相比之下,这个例子还执行直接瞬态分析的原始结构。

创建一个结构模型进行瞬态分析。

modelT = createpde (“结构”,“transient-solid”);

创建一个方形截面梁几何和包括在模型中。

通用= multicuboid (0.05, 0.003, 0.003);modelT。几何=通用;

画出几何图形,显示的脸,边标签。

图pdegplot (modelT,“FaceLabels”,“上”,“FaceAlpha”,0.5)视图(71 [4])

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

图pdegplot (modelT,“EdgeLabels”,“上”,“FaceAlpha”,0.5)视图(71 [4])

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

指定杨氏模量,泊松比,质量密度的材料。

structuralProperties (modelT“YoungsModulus”210 e9,“PoissonsRatio”,0.3,“MassDensity”,7800);

固定梁的一端。

structuralBC (modelT“边缘”8 11 12 [2],“约束”,“固定”);

添加一个顶点的中心面临3。

loadedVertex = addVertex(通用、“坐标”[0.025 0.0 0.0015]);图pdegplot (modelT,“VertexLabels”,“上”,“FaceAlpha”2.5,0.5)视图([78])

图包含一个坐标轴对象。坐标轴对象包含3颤类型的对象,补丁,线。

生成一个网格。

generateMesh (modelT);

应用一个正弦集中力量z方向上新的顶点。

structuralBoundaryLoad (modelT“顶点”loadedVertex,“力”(0,0,10),“频率”,6000);

指定零初始条件。

structuralIC (modelT“速度”(0 0 0),“位移”,0 0 0);

解决模型。

tlist = 0:0.00005:3E-3;RT =解决(modelT tlist);

定义超单元接口使用固定和装载的界限。在这种情况下,保留的降阶模型的自由度(自由度)固定的脸和加载顶点而冷凝所有其他自由度模态自由度。获得更好的性能,使用边缘的边界面5而不是使用整个脸。

structuralSEInterface (modelT“边缘”,8 11 12 [2]);structuralSEInterface (modelT“顶点”,loadedVertex);

减少结构,保留所有固定接口模式5 e5

罗=减少(modelT,“FrequencyRange”,-0.1,5 e5);

接下来,使用降阶模型来模拟瞬态动力学。使用ode15s函数直接将降低系统的颂歌。使用简化模型需要索引减少系统矩阵rom.Krom.M。首先,构建指标的映射K使用数据加载和固定的自由度

自由度对应平动位移。如果模型中网格点的数量神经网络然后工具箱分配id,自由度如下:第一1神经网络x位移,神经网络+ 12 *神经网络y位移,2神经网络+ 13 *神经网络z位移。减少模型对象包含这些保留自由度的idrom.RetainedDoF

创建一个函数,它返回景深IDs给定节点id和节点的数量。

getDoF = @ (x, numNodes) [x (:);x (:) + numNodes;x (:) + 2 * numNodes];

知道景深给定节点id, id使用相交找到所需的指数函数。

numNodes =大小(rom.Mesh.Nodes, 2);loadedNode = findNodes (rom.Mesh,“地区”,“顶点”,loadedVertex);loadDoFs = getDoF (loadedNode numNodes);[loadNodeROMIds, ~ ~] =相交(rom.RetainedDoF loadDoFs);

在减少矩阵rom.Krom.M,广义模态自由度出现后保留自由度。

fixedIntModeIds =(元素个数(rom.RetainedDoF) + 1:尺寸(rom.K, 1)) ';

因为固定端自由度不是ODE体系的一部分,ODE自由度的指数降低矩阵如下。

odeDoFs = [loadNodeROMIds; fixedIntModeIds];

相关的组件rom.Krom.M时间集成:

Kconstrained = rom.K (odeDoFs odeDoFs);Mconstrained = rom.M (odeDoFs odeDoFs);numODE =元素个数(odeDoFs);

现在你有一个二阶常微分方程的系统。使用ode15s,把它转换成系统的一阶常微分方程,应用线性化。这样一个一阶系统二阶系统的两倍大。

模式=[眼睛(numODE numODE) 0 (numODE numODE);0 (numODE numODE) Mconstrained];Kode = [0 (numODE numODE),黑眼圈(numODE numODE);Kconstrained 0 (numODE numODE)];飘流= 0 (2 * numODE, 1);

指定的集中力加载在完整的系统z方向,这是第三景深ODE体系。占线性化得到一阶系统可以加载颂歌景深。

loadODEDoF = numODE + 3;

指定质量矩阵和雅可比矩阵的ODE求解器进行求解。

odeoptions = odeset;odeoptions = odeset (odeoptions,的雅可比矩阵,-Kode);odeoptions = odeset (odeoptions,“质量”模式);

指定零初始条件。

情况= 0 (2 * numODE, 1);

解决系统减少了使用ode15s和helper函数CMSODEf,这是定义在这个例子。

索尔= ode15s (@ (t, y) CMSODEf (t y Kode飘流,loadODEDoF),情况,tlist odeoptions);

计算ODE变量的值和衍生品。

[displ,韦尔]=德瓦尔(sol tlist);

画出z在加载点位移,把它比作第三景深颂歌减少系统的解决方案。

图绘制(tlist RT.Displacement.uz (loadedVertex,:))情节(tlist displ (3:)的r *)标题(在加载Z-Displacement顶点的)传说(“全模式”,“罗”)

图包含一个坐标轴对象。与标题Z-Displacement坐标轴对象加载顶点包含2线类型的对象。这些对象代表完整的模型,罗。

了解解决方案的界面自由度模和模态自由度,可以重建完整的解决方案模型。的reconstructSolution函数需要的位移、速度和加速度的自由度。向量构造完整的解决方案,包括零值在固定的自由度。

u = 0(大小(rom.K, 1),元素个数(tlist));ut = 0(大小(rom.K, 1),元素个数(tlist));utt = 0(大小(rom.K, 1),元素个数(tlist));u (odeDoFs:) = displ (1: numODE,:);ut (odeDoFs:) =韦尔(1:numODE,:);utt (odeDoFs:) =韦尔(numODE + 1:2 * numODE:);

使用此解决方案构建一个瞬态的结果对象。

RTrom = reconstructSolution (rom, u, ut、utt tlist);

在内部进行比较,计算出位移梁的中心充分利用和重构解决方案。金宝搏官方网站

coordCenter = (0, 0, 0);iDispRT = interpolateDisplacement (RT, coordCenter);iDispRTrom = interpolateDisplacement (RTrom coordCenter);图绘制(tlist iDispRT.uz,“k”)举行情节(tlist iDispRTrom.uz,“g *”)标题(“在几何中心Z-Displacement”)传说(“全模式”,“罗”)

图包含一个坐标轴对象。坐标轴对象几何中心与标题Z-Displacement包含2线类型的对象。这些对象代表完整的模型,罗。

ODE Helper函数

函数f = CMSODEf (t, u, Kode飘流,loadedVertex)飘流(loadedVertex) = 10 * sin (6000 * t);f = -Kode * u +飘流;结束