主要内容

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

这个例子展示了如何分析Kinova®Gen3超轻机械臂的肩连杆在压力下可能发生的变形。

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

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

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

模态分析

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

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

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

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

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

生成一个网格。

generateMesh(模型);pdemesh(模型)

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

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

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

pdegplot(模型,“FaceLabels”“上”view([-1 2])“肩链几何与脸标签”

图中包含一个轴对象。axis对象的标题为Shoulder Link Geometry with Face Labels,其中包含3个对象,类型为quiver, patch, line。

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

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

求解一个选定频率范围的模型。指定低于零的低频限制,以便所有频率接近零的模式(如果有的话)都出现在解决方案中。

RF = solve(模型,“FrequencyRange”[10000] * 2 *π);

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

modeID = 1:数字(RF.NaturalFrequencies);

将得到的频率除以,以Hz表示 2 π .在表格中显示频率。

tmodalResults = table(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函数将前六个模式动画化。所得到的图显示了在荷载作用下主要变形的区域。

frames = animateSixLinkModes(RF);

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

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

频率响应分析

模拟肩膀在面部压力载荷下的动态,假设所附的链接对面部的两半施加了相等和相反的压力。分析工作面某点的频响和变形。

首先,建立结构模型进行频响分析。

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

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

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

生成一个网格。

网格= generateMesh(fmodel);

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

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

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

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

估计当手臂承载载荷时,移动连杆对面4施加的压力。这张图显示了脸4的两半,在中心沿y协调。

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

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

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

Flist = linspace(0,35,200)*2*pi;

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

R = solve(fmodel,flist,“ModalResults”、RF);

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

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

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

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

求得峰值响应频率指数马克斯函数具有两个输出参数。第二个输出参数提供峰值频率的索引。

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

求峰值响应频率值,单位为Hz。

R.SolutionFrequencies(152) / 2π
Ans = 2.655 e+03

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

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

清晰的数字为未来的情节。

clf

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

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

画出峰值响应频率处的位移分量和幅度。来绘制x-位移,遵循这些步骤。来绘制y- - -z-位移和幅度,遵循相同的步骤,但设置组件YZ,,分别。

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

  2. 指定数据参数部分任务,设置类型位移组件X,频率2655.7789赫兹

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

生活任务%要可视化的数据meshData = R.Mesh;nodedata = 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, nodedata *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 (size(region.y));查找左边点的id%和右半边脸%使用y坐标值。leftHalfIdx =区域。y <= meanY;rightHalfIdx =区域。y >= meanY;定义一个抛物线比例因子%为每半张脸。scaleFactor (leftHalfIdx) =...((region.y(leftHalfIdx) - meanY)/absMaxY).^2;scaleFactor (rightHalfIdx) =...-((region.y(rightHalfIdx) - meanY)/absMaxY).^2;p = 10E3 + 0.1E6*scaleFactor;结束
Baidu
map