主要内容

将挖掘机斗臂建模为柔性体

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

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

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

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

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

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

步骤1:定义勺臂的几何和材料属性

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

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

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

E = 200e9;% Pa的杨氏模量Nu = 0.26;泊松比(无量纲)Rho = 7800;%质量密度,单位为kg/m^3

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

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

  • 液压缸连接点,臂与垂直驱动臂的液压缸连接。

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

  • 支点,臂与挖掘机臂架连接的地方。

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

origin = [-0.500 00 .%框架1:气缸连接点1.500 00帧2:桶连接点0 -0.130 0];框架3:支点numFrames = size(origin,1);

步骤3:创建有限元网格

要为斗臂生成网格,首先调用createpde函数,它为实体(3-D)问题的模态分析创建结构模型。在导入机械臂的几何结构和材料特性后,可以使用generateMesh函数创建网格。

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

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

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

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

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

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

  • 气缸连接点:面1

  • 铲斗连接点:27面

  • 支点:23面

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

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

图pdemesh (feModel,“FaceAlpha”, 0.5)颜色= [“rgb”repmat (“k”1 numFrames-3)];assert(数字(faceid) == numFrames);nodeIdxs = findNodes(feModel. k = 1:numFrames)网,“地区”“脸”, 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(feModel,...“脸”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:size(arm.K,1);% DOF排列向量assert(size(arm.P,1) == numFrames);i = 1:numFramesj = 1:numFrames如果isequal(arm.P(j,:),origins(i,:)) frmPerm(i) = j;dofPerm(6*(i-1)+(1:6)) = 6*(j-1)+(1:6);继续结束结束结束assert(数字(frmPerm) == numFrames);assert(number (dofPerm) == size(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] = sort(diag(d));V = V(:,sortIdxs);由于数值误差很小,六个特征值与%刚体模态可能不完全为零。为了避免数值问题,检查前六个特征值是否足够接近于零。然后%将它们替换为精确的0值。断言(all(abs(d(1:6))/abs(d(7)) < 1e-9),“由于“零”特征值而导致的错误。”);D (1:6) = 0;广义质量和固有频率的向量Mv = m * v;generalizedmass = diag(V'*MV);naturalFrequencies =根号下(d);计算与K和M相关的模态阻尼矩阵C = MV * diag(2*阻尼gratio *自然频率./广义质量)* MV';结束

另请参阅

|||||||||

相关的话题

Baidu
map