主要内容

Kinova Gen3机械臂单部件模态和频率响应分析

这个例子展示了如何分析Kinova®Gen3超轻机械臂的肩部链接,以防止压力下可能的变形。

机械臂在从工厂自动化到医疗外科等广泛应用中执行精确操作。通常,机械臂由串联的链条上的几个环节组成,底座连接在桌面或地面上,末端执行器连接在末端。这些链接必须在结构上坚固,以避免任何振动时,转子上的负载移动。

机械臂尖端的负载会对每个连杆的关节产生压力。压力的方向取决于载荷的方向。

本例通过执行模态分析和频响分析模拟计算了肩杆在施加压力下的变形。你可以找到助手函数animateSixLinkModes.m还有几何文件Gen3Shoulder.stlmatlab / R20XXx / / pde的主要例子

模态分析

假设机械臂一端固定,求出固有频率和模态振型。

为模态分析创建一个结构模型。

模型= createpde (“结构性”“modal-solid”);

要对结构进行无约束模态分析,必须指定几何形状、网格和材料属性。首先,导入机械臂肩部部分的几何形状。

importGeometry(模型,“Gen3Shoulder.stl”);

生成一个网格。

generateMesh(模型);pdemesh(模型)

以一致的单位指定材料的杨氏模量、泊松比和质量密度。通常,用于连接的材料是碳纤维增强塑料。假设材料是均匀的。

E = 1.5 e11;ν= 0.3;ρ= 2000;structuralProperties(模型,“YoungsModulus”, E,...“PoissonsRatio”ν,...“MassDensity”,ρ);

通过使用面标签绘制几何图形,识别应用边界约束和负载的面。

pdegplot(模型,“FaceLabels”“上”视图([-1 2])“带脸标签的肩链几何”

图中包含一个axes对象。标题为Shoulder Link Geometry with Face Labels的axis对象包含三个对象类型:颤袋、补丁、线。

肩杆一端固定(面3),另一端连接运动杆(面4)。将固定边界条件应用于面3。

structuralBC(模型,“面子”,3,“约束”“固定”);

在选定的频率范围内求解模型。指定低于零的频率下限,以便所有频率接近零的模态(如果有的话)都出现在解中。

射频=解决(模型,“FrequencyRange”[10000] * 2 *π);

默认情况下,求解器返回圆形频率。

modeID = 1:元素个数(RF.NaturalFrequencies);

用除以表示得到的频率,单位为Hz 2 π .在表格中显示频率。

tmodalResults =表(modeID。”,RF.NaturalFrequencies / 2 / pi);tmodalResults.Properties.VariableNames = {“模式”“频率”};disp (tmodalResults);
模式频率____ _________ 1 1947.2 2 2662 3 4982.3 4 5112.6 5 7819.5 6 8037.1 7 9361

将模态振型可视化的最好方法是在它们各自的频率上使谐波运动动画化。的animateSixLinkModes函数将前六个模式动画化。得到的图显示了在荷载作用下主要变形的区域。

帧= animateSixLinkModes (RF);

要播放动画,使用这个命令:

电影(图(“单位”,“归一化”,“外置”,[0 0 1 1]),帧,5,30)

频率响应分析

模拟肩膀在压力载荷作用下的动态,假设所附的连杆对人脸的两半施加相等的相反的压力。分析表面某一点的频率响应和变形。

首先,建立频率响应分析的结构模型。

车型= createpde (“结构性”“frequency-solid”);

导入用于模态分析的肩部相同的几何图形。

importGeometry(车型,“Gen3Shoulder.stl”);

生成一个网格。

网= generateMesh(车型);

指定杨氏模量,泊松比和质量密度。

structuralProperties(车型,“YoungsModulus”, E,...“PoissonsRatio”ν,...“MassDensity”,ρ);

肩杆一端固定(面3),另一端连接运动杆(面4)。将固定边界条件应用于面3。

structuralBC(车型,“面子”,3,“约束”“固定”);

估算当手臂承载重物时,移动连杆施加在面4上的压力。这张图显示了脸的两半,从中间沿着y协调。

使用pressFcnFR函数在面4上施加边界荷载。这个函数应用一个推和一个扭转压力信号。推压分量均匀。扭转压力组件对左侧施加正压力,对右侧施加负压。的定义pressFcnFR功能,请参阅压力函数.这个函数对频率没有显式的依赖。因此,在频域中,这个压力负载作用于解的所有频率。

structuralBoundaryLoad(车型,...“面子”4...“压力”...@(地区、州)pressFcnFR(地区、州),...“矢量”“上”);

将解决方案的频率列表定义为0到3500hz,包含200步。

弗利斯特雨= linspace(0、3500、200)* 2 *π;

通过指定模态结果对象,使用模态频响求解器求解模型射频作为一个输入。

R =解决(车型、弗利斯特雨“ModalResults”、RF);

画出加载面上某一点的频率响应。面4上位于最大负压载荷处的一个点为(0.003;0.0436;0.1307).把位移插值到这一点,然后画出结果。

queryPoint = (0.003;0.0436;0.1307);queryPointDisp = interpolateDisplacement (R, queryPoint);图绘制(R.SolutionFrequencies / 2π,abs (queryPointDisp.uy))标题(“受载面点横向位移”)包含(“频率(赫兹)”) ylabel (“Y-Displacement”) xlim ([3500 - 0.0000])

图中包含一个axes对象。标题为“加载面上点横向位移”的轴对象包含一个类型为line的对象。

响应的峰值出现在2700 Hz附近,接近振动的第二模态。在接近1950赫兹的第一模态也出现较小的响应。

方法找到峰值响应频率指数马克斯带有两个输出参数的函数。第二个输出参数提供峰值频率的索引。

[M,我]= max (abs (queryPointDisp.uy))
M = 1.1256 e-04
我= 152

找出以Hz为单位的峰值响应频率值。

R.SolutionFrequencies(152) / 2π
ans = 2.6558 e + 03

绘制峰值响应频率处的变形。施加的载荷是这样的,它主要激发肩膀的打开模式和弯曲模式。

RD =结构();RD.ux = R.Displacement.ux(:,我);RD.uy = R.Displacement.uy(:,我);RD.uz = R.Displacement.uz(:,我);图(“单位”“归一化”“outerposition”,[0 0 1 1]);次要情节(2 2 1)pdeplot3D(车型,“ColorMapData”R.Displacement.ux(:我),...“变形”路,“DeformationScaleFactor”1);标题(“x-Displacement”次要情节(2,2,2)pdeplot3D(车型,“ColorMapData”R.Displacement.uy(:我),...“变形”路,“DeformationScaleFactor”1);标题(“y-Displacement”次要情节(2,2,3)pdeplot3D(车型,“ColorMapData”R.Displacement.uz(:我),...“变形”路,“DeformationScaleFactor”1);标题(“z-Displacement”次要情节(2,2,4)pdeplot3D(车型,“ColorMapData”R.Displacement.Magnitude(:我),...“变形”路,“DeformationScaleFactor”1);标题(“级”

未来情节的清晰数字。

clf

方法也可以绘制相同的结果可视化PDE的结果住编辑任务。方法创建一个新的实时脚本新的生活的脚本按钮文件上节首页选项卡。

住编辑器选项卡上,选择任务>可视化PDE的结果.此操作将任务插入到脚本中。

在峰值响应频率处画出位移的分量和幅度。的情节x-位移,遵循以下步骤。的情节y- - -z-位移和幅度,遵循相同的步骤,但设置组件YZ,,分别。

  1. 选择的结果部分的任务,选择R从下拉菜单。

  2. 指定数据参数节的任务,集类型位移组件X,频率2655.7789赫兹

  3. 指定可视化参数节的任务,清了变形复选框。

生活任务要可视化的数据meshData = R.Mesh;nodalData = R.Displacement.ux (:, 152);deformationData = [R.Displacement.ux (:, 152)...R.Displacement.uy (:, 152)...R.Displacement.uz (:, 152)];phaseData = cospi(0) + 1i*sinpi(0);创建PDE结果可视化resultViz = pdeviz (meshData nodalData * phaseData,...“DeformationData”, deformationData * phaseData,...“DeformationScaleFactor”0,...“ColorLimits”[-7.414 e-05 7.414 e-05]);

Figure包含一个pde.graphics.pdevisualization类型的对象。

清除临时变量clearvarsmeshDatanodalDatadeformationDataphaseData

压力函数

定义一个压力函数,pressFcnFR,计算推压和扭压信号。推压分量均匀。扭转压力组件对左侧施加正压力,对右侧施加负压。扭转压力加载值从点处的最小值开始呈抛物线分布增加C到达正峰l到负的峰值R.得到抛物线分布的扭转压力因子pressFcnFR与0.1 MPa量级的正弦函数相乘。均匀推压值为10kpa。

函数p = pressFcnFR(region,~) meanY = mean(region.y);absMaxY = max (abs (region.y));scaleFactor = 0(大小(region.y));查找左侧点的id和右半张脸。%使用y坐标值。leftHalfIdx =。y < =小气鬼;rightHalfIdx =。y > =小气鬼;定义一个抛物线比例因子%为每半张脸。scaleFactor (leftHalfIdx) =...((region.y (leftHalfIdx) -小气鬼)/ absMaxY) ^ 2;scaleFactor (rightHalfIdx) =...- ((region.y (rightHalfIdx) -小气鬼)/ absMaxY) ^ 2;p = 10E3 + 0.1E6*scaleFactor;结束
Baidu
map