Kinova Gen3机械臂单部件模态和频率响应分析
这个例子展示了如何分析Kinova®Gen3超轻机械臂的肩部链接,以防止压力下可能的变形。
机械臂在从工厂自动化到医疗外科等广泛应用中执行精确操作。通常,机械臂由串联的链条上的几个环节组成,底座连接在桌面或地面上,末端执行器连接在末端。这些链接必须在结构上坚固,以避免任何振动时,转子上的负载移动。
机械臂尖端的负载会对每个连杆的关节产生压力。压力的方向取决于载荷的方向。
本例通过执行模态分析和频响分析模拟计算了肩杆在施加压力下的变形。你可以找到助手函数animateSixLinkModes.m
还有几何文件Gen3Shoulder.stl
下matlab / 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])“带脸标签的肩链几何”)
肩杆一端固定(面3),另一端连接运动杆(面4)。将固定边界条件应用于面3。
structuralBC(模型,“面子”,3,“约束”,“固定”);
在选定的频率范围内求解模型。指定低于零的频率下限,以便所有频率接近零的模态(如果有的话)都出现在解中。
射频=解决(模型,“FrequencyRange”[10000] * 2 *π);
默认情况下,求解器返回圆形频率。
modeID = 1:元素个数(RF.NaturalFrequencies);
用除以表示得到的频率,单位为Hz .在表格中显示频率。
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])
响应的峰值出现在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-位移和幅度,遵循相同的步骤,但设置组件来Y,Z,级,分别。
在选择的结果部分的任务,选择
R
从下拉菜单。在指定数据参数节的任务,集类型来位移,组件来X,频率来2655.7789赫兹.
在指定可视化参数节的任务,清了变形复选框。
要可视化的数据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]);
清除临时变量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;结束