main Content

model an Excavator Dipper Arm as a Flexible Body

Reduced Order Flexible Solidblock models a deformable body based on a reduced-order model that characterizes the geometric and mechanical properties of the body. The basic data imported from the reduced-order model includes:

  • A list of coordinate triples that specify the position of all interface frame origins relative to a common reference frame.

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

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

该re are several ways to generate the reduced-order data required by this block. Typically, you generate a substructure (or superelement) by using finite-element analysis (FEA) tools.

This example uses the Partial Differential Equation Toolbox™ to create a reduced-order model for a flexible dipper arm, such as the arm for an excavator or a backhoe. You start with the CAD geometry of the dipper arm, generate a finite-element mesh, apply the Craig-Bampton FEA substructuring method, and generate a reduced-order model. The modelsm_flexible_dipper_arm使用此示例中的缩小订单数据。在该模型中,铲斗臂安装在旋转塔的顶部,作为试验台的一部分。有关更多信息,请参阅灵活的浸渍臂

第1步:定义铲斗臂的几何形状和材料特性

文件sm_flexible_dipper_arm.STLcontains a triangulation that defines the CAD geometry of the dipper arm. To view the geometry stored in this file, use the MATLAB® functionsstlreadandtrisurf.

stlFile ='sm_flexible_dipper_arm.STL';figure trisurf(stlread(stlFile)) axisequal

铲斗臂由钢制成。要代表其材料属性,请为杨氏模量,泊松比和质量密度设定这些值:

E = 200 e9;% Young's modulus in Panu = 0.26;% Poisson's ratio (nondimensional)rho = 7800;% Mass density in kg/m^3

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

北斗臂有三个接口帧,您可以连接其他SIMSCAPE™多摩托电池元素,例如关节,约束,力和传感器:

  • 该cylinder connection point, where the arm connects to a hydraulic cylinder that actuates the arm vertically.

  • 铲斗连接点,臂连接到挖掘机铲斗。

  • 该fulcrum point, where the arm connects to the excavator boom.

该positions of all interface frame origins are specified in meters relative to same common reference frame used by the CAD geometry.

起源= [-0.500 0 0%框架1:气缸连接点1.500 0 0.% Frame 2: Bucket connection point0 -0.130 0];%框架3:支点点numFrames = size(origins,1);

第3步:创建有限元网格

要为北斗臂生成网状物,请先调用createpde(部分微分方程工具箱)功能,它为实体(3-D)问题的模态分析创造了一个结构模型。在导入ARM的几何形状和材料属性后,generateMesh(部分微分方程工具箱)function creates the mesh.

Femodel = Createpde('结构'“modal-solid');imporgeometry(Femodel,stlfile);结构性额外(雌性汇编,......'YoungsModulus'那E,......'PoissonsRatio'那nu,......'massdention'那rho); generateMesh(feModel,......'GeometricOrder''quadratic'......'Hmax',0.2,......'汉语',0.02);

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

Each interface frame on the block corresponds to a boundary node that contributes six degrees of freedom to the reduced-order model. There are several ways to ensure that the FEA substructuring method preserves the required degrees of freedom. For example, you can create a rigid constraint to connect the boundary node to a subset of finite-element nodes on the body. You can also use structural elements, such as beam or shell elements, to introduce nodes with six degrees of freedom.

此示例使用多点约束(MPC)来保留每个边界节点的六个自由度。要识别与每个MPC相关联的几何区域(例如面,边缘或顶点),首先使用该功能绘制臂几何形状pdegplot(部分微分方程工具箱)

figure pdegplot(feModel,'FaceLabels''上''Facealpha'那0.。5)

You can zoom, rotate, and pan this image to determine the labels for the faces corresponding to the boundary nodes. These faces define the MPCs associated with the boundary nodes in the dipper arm:

  • Cylinder connection point: face 1

  • Bucket connection point: face 27

  • Fulcrum Point:面部23

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

To verify these values, plot the mesh and highlight the selected faces:

figure pdemesh(feModel,'Facealpha'那0.。5) holdoncolors = ['rgb'repmat('k'那1那numFrames-3)]; assert(numel(faceIDs) == numFrames);对于k = 1:numFrames nodeIdxs = findNodes(feModel.Mesh,'region''Face'那faceIDs(k)); scatter3(......efodel.mesh.nodes(1,nodedxs),......feModel.Mesh.Nodes(2,nodeIdxs),......feModel.Mesh.Nodes(3,nodeIdxs),......'好''MarkerFaceColor'那colors(k)) scatter3(......起源(k,1),......起源(k,2),......起源(k,3),......80,colors(k),'填充''结束保持off

Call the functionstructuralBC(部分微分方程工具箱)要为这些面中的边界节点定义MPC:

对于k = 1:numframes structulatebc(雌性码,......'Face',面部(K),......'Constraint''multipoint'......'Reference',起源(k,:));结束

Step 5: Generate the Reduced-Order Model

该functionreduce(部分微分方程工具箱)应用CRAIG-BAMPTON订单减少方法,并将所有固定接口模式保留到频率 1 0. 4. 弧度每秒。

ROM =减少(雌性,'FrequencyRange'那[0 1e4]);

存储数据结构的减少结果。转移ReferenceLocations矩阵要考虑部分微分方程工具箱和Simscape多体使用的不同布局约定。

ARM.P.= rom.ReferenceLocations';%接口帧位置(n x 3矩阵)臂。K.= rom.K;% Reduced stiffness matrix臂。m= rom.M;%减少质量矩阵

该functioncomputeModalDampingMatrix,定义了at the bottom of this page那computes a reduced modal damping matrix with a damping ratio of 0.05:

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

该boundary nodes in the reduced-order model must be specified in the same order as the corresponding interface frames on the block. This order is given by the rows of the array起源。If the order of the MPCs is different than the order specified by起源那permute the rows and columns of the various matrices so that they match the original order.

frmPerm = zeros(numFrames,1);%帧置换向量dofPerm = 1:size(arm.K,1);%DOF置换载体assert(size(arm.P,1) == numFrames);对于i = 1:numFrames对于j = 1:numframesifisequal(arm.P(j,:),origins(i,:)) frmPerm(i) = j; dofPerm(6*(i-1)+(1:6)) = 6*(j-1)+(1:6);继续;结束结束结束断言(NUMER(FRMPERM)== NUM​​FRAMES);断言(Numel(Dofperm)==尺寸(ARM.K,1));ARM.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:导入减少订单数据

该modelsm_flexible_dipper_arm使用数据结构to set up the parameters of the Reduced Order Flexible Solid block. In the block, these parameters import the reduced-order data:

  • 起源ARM.P.

  • Stiffness Matrix:ARM.K(1:24,1:24)

  • mass Matrix:臂。m(1:24,1:24)

  • 阻尼矩阵:ARM.C(1:24,1:24)

有关更多信息,请参阅灵活的浸渍臂

Compute the Modal Damping Matrix

This function computes a modal damping matrix associated with the stiffness matrixK.和质量矩阵m。该功能将单个标量阻尼比应用于与之相关的所有柔性(非刚性身体)的正常模式K.andm

functionc = computemodaldampingmatrix(Dampingratio,k,m)%以避免数值问题(例如具有非常小的复杂特征值% imaginary parts), make the matrices exactly symmetric.k =(k + k')/ 2;% Stiffness matrixm= (M+M')/2;%质量矩阵%计算与质量和刚度相关的特征分解%矩阵,按升序排序特征值并置换%相应的特征向量。[V,D] = eig(K,M); [d,sortIdxs] = sort(diag(D)); V = V(:,sortIdxs);%由于数值误差小,六个特征值与之相关% rigid-body modes may not be exactly zero. To avoid numerical issues,%检查前六个特征值是否足够接近零。然后% replace them with exact 0 values.断言(所有(abs (d (1:6)) / abs (d (7)) < 1 e-9),'由于“零”特征值而出错。');d(1:6)= 0;普遍群众和自然频率的%载体mV = M*V; generalizedMasses = diag(V'*MV); naturalFrequencies = sqrt(d);% Compute the modal damping matrix associated with K and MC = MV * diag(2*dampingRatio*naturalFrequencies./generalizedMasses) * MV';结束

也可以看看

|||(部分微分方程工具箱)|(部分微分方程工具箱)|(部分微分方程工具箱)|(部分微分方程工具箱)|(部分微分方程工具箱)|(部分微分方程工具箱)|(部分微分方程工具箱)

Related Topics