点荷载梁的降维建模技术
这个例子展示了如何消除自由度(自由度)不感兴趣的边界通过Craig-Bampton降维建模技术。示例还使用较小尺寸超单元分析的动态系统。相比之下,这个例子还执行直接瞬态分析的原始结构。
创建一个结构模型进行瞬态分析。
modelT = createpde (“结构”,“transient-solid”);
创建一个方形截面梁几何和包括在模型中。
通用= multicuboid (0.05, 0.003, 0.003);modelT。几何=通用;
画出几何图形,显示的脸,边标签。
图pdegplot (modelT,“FaceLabels”,“上”,“FaceAlpha”,0.5)视图(71 [4])
图pdegplot (modelT,“EdgeLabels”,“上”,“FaceAlpha”,0.5)视图(71 [4])
指定杨氏模量,泊松比,质量密度的材料。
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])
生成一个网格。
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.K
和rom.M
。首先,构建指标的映射K
和米
使用数据加载和固定的自由度罗
。
自由度对应平动位移。如果模型中网格点的数量神经网络
然后工具箱分配id,自由度如下:第一1
来神经网络
是x位移,神经网络+ 1
来2 *神经网络
是y位移,2神经网络+ 1
来3 *神经网络
是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.K
和rom.M
,广义模态自由度出现后保留自由度。
fixedIntModeIds =(元素个数(rom.RetainedDoF) + 1:尺寸(rom.K, 1)) ';
因为固定端自由度不是ODE体系的一部分,ODE自由度的指数降低矩阵如下。
odeDoFs = [loadNodeROMIds; fixedIntModeIds];
相关的组件rom.K
和rom.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顶点的)传说(“全模式”,“罗”)
了解解决方案的界面自由度模和模态自由度,可以重建完整的解决方案模型。的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”)传说(“全模式”,“罗”)
ODE Helper函数
函数f = CMSODEf (t, u, Kode飘流,loadedVertex)飘流(loadedVertex) = 10 * sin (6000 * t);f = -Kode * u +飘流;结束