主要内容

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

此示例显示了如何分析Kinova®Gen3超轻型机械臂的肩部连杆,以确定其在压力下可能发生的变形。

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

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

本实例通过模态分析和频响分析仿真计算肩杆在施加压力下的变形。您可以找到helper函数animateSixLinkModes.m和几何体文件Gen3Shoulder.stlmatlab / R20XXx / / pde的主要例子

模态分析

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

创建模态分析的结构模型。

模型= createpde (“结构”“模态实体”);

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

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

生成一个网格。

generateMesh(模型);pdemesh(模型)

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

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

通过使用面标签打印几何图形,识别用于应用边界约束和载荷的面。

图pdegplot(模型,“FaceLabels”“上”)视图([-1-2])标题(“带有面部标签的肩链几何形状”

图中包含一个轴对象。轴对象与标题肩链接几何与面标签包含3个对象类型箭袋,贴片,线。

肩部连杆固定在一端(面3),并连接到另一端(面4)的移动连杆。在面3上应用固定边界条件。

结构BC(模型,“脸”3.“约束”“固定的”);

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

RF=求解(模型,“频率范围”[10000] * 2 *π);

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

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

将结果频率除以 2 π .在表格中显示频率。

tmodalResults=表格(modeID.),射频自然频率/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函数动画前六种模式。结果图显示了荷载作用下的主要变形区域。

figure frames = animateSixLinkModes(RF);

要播放动画,请使用以下命令:

Movie (figure('units','normalized','outerposition',[0 0 1 1]),frames,5,30)

频率响应分析

模拟肩部在压力载荷作用下的动力学,假设附加的连杆对脸部的两半施加了等量相反的压力。分析工作面某点的频率响应和变形。

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

fmodel=createpde(“结构”“frequency-solid”);

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

进口几何(fmodel,“Gen3Shoulder.stl”);

生成一个网格。

网格=生成网格(fmodel);

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

结构特性(F模型,“YoungsModulus”E...“PoissonsRatio”,nu,...“MassDensity”,ρ);

肩部连杆固定在一端(面3),并连接到另一端(面4)的移动连杆。在面3上应用固定边界条件。

结构BC(fmodel,“脸”3.“约束”“固定的”);

当臂承载负载时,估计移动连杆施加在面4上的压力。此图显示了面4的两半在中心沿轴分开y协调。

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

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

定义频率列表的解决方案为0到3500hz与200步。

flist=linspace(03500200)*2*pi;

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

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))标题(“加载面上点的横向位移”)包含(的频率(赫兹))伊拉贝尔(“Y位移”)xlim([0.0000 3500])

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

响应峰值出现在2662 Hz附近,接近第二阶振型。在接近1947赫兹的第一模态也会出现较小的响应。

通过使用最大值函数有两个输出参数。第二个输出参数提供峰值频率的索引。

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

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

RD=struct();RD.ux=R.Displacement.ux(:,I);RD.uy=R.Displacement.uy(:,I);RD.uz=R.Displacement.uz(:,I);图(“单位”“归一化”“外置”,[0 0 1 1]); 子地块(2,2,1)pdeplot3D(fmodel,“ColorMapData”R.Displacement.ux(:我),...“变形”路,“DeformationScaleFactor”1);标题(“X-Displacement”次要情节(2,2,2)pdeplot3D(车型,“ColorMapData”R.Displacement.uy(:我),...“变形”路,“DeformationScaleFactor”1);标题(“Y位移”)子地块(2,2,3)pdeplot3D(fmodel,“ColorMapData”,R.Displacement.uz(:,I),...“变形”路,“DeformationScaleFactor”1);标题(“Z位移”)子地块(2,2,4)pdeplot3D(fmodel,“ColorMapData”,R.位移量值(:,I),...“变形”路,“DeformationScaleFactor”1);标题(“级”

压力函数

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

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