主要内容

建立了挖掘机铲斗臂作为柔性体的模型

降阶柔性固体块基于描述该体的几何和力学特性的降阶模型对可变形体进行建模。从降阶模型导入的基本数据包括:

  • 一个坐标三元组列表,指定了所有接口帧原点相对于一个公共参考帧的位置。

  • 描述柔体弹性特性的对称刚度矩阵。

  • 描述柔体惯性特性的对称质量矩阵。

有几种方法可以生成此块所需的降序数据。通常,您可以使用有限元分析(FEA)工具生成子结构(或超单元)。

本例使用偏微分方程工具箱™为灵活的戽斗臂(如挖掘机或反铲挖掘机的臂)创建降阶模型。您从勺臂的CAD几何开始,生成一个有限元网格,应用Craig-Bampton有限元子结构方法,并生成一个降阶模型。该模型sm_flexible_dipper_arm使用本示例中的降序数据。在模型中,铲斗臂安装在一个旋转塔的顶部,作为试验台的一部分。有关更多信息,请参见灵活的铲斗臂

步骤1:定义北斗七星臂的几何形状和材质属性

该文件sm_flexible_dipper_arm。STL包含定义北斗七星臂CAD几何图形的三角剖分。要查看存储在此文件中的几何图形,请使用MATLAB®函数stlreadtrisurf

stlFile =“sm_flexible_dipper_arm。STL的;图trisurf (stlread (stlFile))轴平等的

勺子臂是钢制的。为了表示其材料属性,设置杨氏模量、泊松比和质量密度的值:

E = 200 e9;%在Pa中的杨氏模量ν= 0.26;泊松比(无因次)ρ= 7800;%质量密度(kg/m^3)

步骤2:指定接口帧的位置

戽斗臂有三个接口框架,您可以连接其他Simscape™多体™元素,如关节、约束、力和传感器:

  • 气缸连接点,在这里,手臂与液压缸连接,液压缸垂直驱动手臂。

  • 铲斗连接点,手臂与挖掘机铲斗连接的地方。

  • 支点,手臂与挖掘机吊杆连接的地方。

所有接口帧原点的位置都以米为单位指定,相对于CAD几何图形使用的相同的公共参考帧。

起源= [-0.500 00%框架1:气缸连接点1.500 0 0%帧2:桶连接点-0.130 0 0);框架3:支点numFrames =大小(起源,1);

步骤3:创建有限元网格

要为勺臂生成网格,首先调用createpde函数,该函数为实体(三维)问题的模态分析创建结构模型。在导入手臂的几何形状和材质属性后,generateMesh函数创建网格。

feModel = createpde (“结构”“modal-solid”);importGeometry (feModel stlFile);structuralProperties (feModel...“YoungsModulus”, E,...“PoissonsRatio”ν,...“MassDensity”,ρ);generateMesh (feModel...“GeometricOrder”“二次”...“Hmax”, 0.2,...“机构”, 0.02);

步骤4:设置接口帧的多点约束

块上的每个接口框架对应一个边界节点,该节点为降阶模型提供了6个自由度。有几种方法可以确保有限元子结构方法保持所需的自由度。例如,您可以创建一个刚性约束来将边界节点连接到主体上的一个有限元节点子集。您还可以使用结构单元,如梁或壳单元,来引入具有6个自由度的节点。

本例使用多点约束(MPC)来保持每个边界节点的6个自由度。要识别与每个MPC关联的几何区域(如面、边或顶点),首先使用该函数绘制手臂几何图形pdegplot

图pdegplot (feModel,“FaceLabels”“上”“FaceAlpha”, 0.5)

您可以缩放、旋转和平移该图像,以确定与边界节点相对应的面的标签。这些面定义了与北斗臂边界节点相关的MPCs:

  • 气缸连接点:端面1

  • 铲斗连接点:端面27

  • 支点:面23

faceIDs =[23] 1, 27日;%列表与接口帧起源的顺序相同

为了验证这些值,绘制网格并突出选中的面:

图pdemesh (feModel,“FaceAlpha”, 0.5)颜色= [“rgb”repmat (“k”1 numFrames-3)];断言(元素个数(faceIDs) = = numFrames);k = 1:numFrames nodeIdxs = findNodes(网,“地区”“脸”, faceIDs (k));scatter3 (...nodeIdxs feModel.Mesh.Nodes(1日),...nodeIdxs feModel.Mesh.Nodes (2),...nodeIdxs feModel.Mesh.Nodes (3),...“好吧”“MarkerFaceColor”、颜色(k)) scatter3 (...起源(k, 1),...起源(k, 2),...起源(k, 3),...80年,颜色(k),“填充”“年代”结束持有

调用这个函数structuralBC来定义这些面中边界节点的mpc:

k = 1:numFrames structuralBC(femmodel,...“脸”faceIDs (k),...“约束”“多点”...“参考”起源(k,:));结束

步骤5:生成降阶模型

这个函数减少应用Craig-Bampton降阶方法,并保留所有固定界面模式的频率为 1 0 4 弧度每秒。

罗=减少(feModel,“FrequencyRange”e4 [0 1]);

将缩减的结果存储在数据结构中手臂.转置的ReferenceLocations矩阵来解释偏微分方程工具箱和Simscape多体所使用的不同布局约定。

手臂。P= rom.ReferenceLocations';%接口帧位置(n × 3矩阵)手臂。K= rom.K;简化刚度矩阵手臂。米= rom.M;约化质量矩阵

这个函数computeModalDampingMatrix,定义为在这一页的底部,计算减振模态阻尼矩阵,阻尼比为0.05:

dampingRatio = 0.05;arm.C = computeModalDampingMatrix (dampingRatio rom.K rom.M);

降阶模型中的边界节点必须按照块上相应接口帧的顺序指定。这个顺序由数组的行给出起源.如果mpc的顺序与指定的顺序不同起源,将不同矩阵的行和列进行置换,使它们符合原始顺序。

frmPerm = 0 (numFrames, 1);%帧排列向量dofPerm = 1:尺寸(arm.K, 1);排列向量的自由度断言(大小(arm.P 1) = = numFrames);我= 1:numFramesj = 1: numFrames如果if (arm.P(j,:),origins(i,:))) frmPerm(i) = j;张dofPerm (6 * () + (1:6)) = 6 * (j - 1) + (1:6);继续结束结束结束断言(元素个数(frmPerm) = = numFrames);断言(元素个数(dofPerm) = =大小(arm.K 1));手臂。P= arm.P(frmPerm,:); arm.K = arm.K(dofPerm,:); arm.K = arm.K(:,dofPerm); arm.M = arm.M(dofPerm,:); arm.M = arm.M(:,dofPerm); arm.C = arm.C(dofPerm,:); arm.C = arm.C(:,dofPerm);

步骤6:导入减少的订单数据

该模型sm_flexible_dipper_arm使用数据结构手臂建立了降阶柔性实体块的参数。在块中,这些参数导入降序数据:

  • 起源手臂。P

  • 刚度矩阵:arm.K(桥,桥)

  • 质量矩阵:arm.M(桥,桥)

  • 阻尼矩阵:arm.C(桥,桥)

有关更多信息,请参见灵活的铲斗臂

计算模态阻尼矩阵函数

这个函数计算与刚度矩阵相关联的模态阻尼矩阵K和质量矩阵.该函数对所有与之相关的柔性(非刚体)正规模态应用一个单标量阻尼比K

函数C = computeModalDampingMatrix (dampingRatio、K、M)%避免数值问题(如复数特征值很小)%虚部),使矩阵完全对称。K = (K + K ') / 2;%刚度矩阵M = (M + M) / 2;%质量矩阵计算与质量和刚度相关的特征分解%矩阵,将特征值按升序和置换排序%对应的特征向量。[V D] = eig (K、M);[d, sortIdxs] =排序(诊断接头(d));V = V (:, sortIdxs);由于小的数值误差,六个特征值与%刚体模式可能不完全为零。为了避免数字问题,%检查前六个特征值是否足够接近于零。然后%将它们替换为精确的0值。断言(所有(abs (d (1:6)) / abs (d (7)) < 1 e-9),“由于‘零’特征值造成的错误。”);d (1:6) = 0;广义质量和固有频率的向量MV = M * V;generalizedMasses =诊断接头(V ' * MV);naturalFrequencies = sqrt (d);计算与K和M相关的模态阻尼矩阵C = MV * diag(2*阻尼比*固有频率./广义质量)* MV';结束

另请参阅

|||||||||

相关的话题