这个例子展示了如何分析Kinova®Gen3超轻机械臂的肩链在压力下可能的变形。
机械臂在从工厂自动化到医疗外科手术的各种应用中执行精确的操作。通常,机械臂由串联链上的几个连杆组成,基座连接在桌面或地面上,末端执行器连接在末端。这些连杆结构必须坚固,以避免转子带着负载移动时的任何振动。
机械臂尖端的负载对每个连杆的关节造成压力。压力的方向取决于负载的方向。
本实例通过模态分析和频响分析仿真计算肩杆在施加压力下的变形。您可以找到helper函数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
函数动画前六种模式。结果图显示了荷载作用下的主要变形区域。
figure frames = animateSixLinkModes(RF);
要播放动画,使用以下命令:
Movie (figure('units','normalized','outerposition',[0 0 1 1]),frames,5,30)
模拟肩部在压力载荷作用下的动力学,假设附加的连杆对脸部的两半施加了等量相反的压力。分析工作面某点的频率响应和变形。
首先,建立频率响应分析的结构模型。
车型= createpde (“结构”,“frequency-solid”);
为您用于模态分析的肩部部分导入相同的几何形状。
importGeometry(车型,“Gen3Shoulder.stl”);
生成一个网格。
网= generateMesh(车型);
指定杨氏模量、泊松比和质量密度。
structuralProperties(车型,“YoungsModulus”, E,...“PoissonsRatio”ν,...“MassDensity”,ρ);
肩环固定在一端(面3),并与另一端(面4)的移动连杆连接。在面3上应用固定边界条件。
structuralBC(车型,“脸”3,“约束”,“固定”);
估计当手臂负重时移动连杆施加在面4上的压力。这个图显示了面4的两半,在中心沿着y协调。
使用pressFcnFR
函数在面4上应用边界负载。此功能应用推和扭压力信号。推压分量均匀。扭转组件对面部左侧施加正压力,对右侧施加负压力。的定义pressFcnFR
功能,请参阅本页底部的压力功能部分。这个函数对频率没有明显的依赖性。因此,在频域内,压力载荷作用于解的所有频率。
structuralBoundaryLoad(车型,...“脸”4...“压力”,...@(地区、州)pressFcnFR(地区、州),...矢量化的,“上”);
定义频率列表的解决方案为0到3500hz与200步。
弗利斯特雨= linspace(0、3500、200)* 2 *π;
通过指定模型结果对象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))标题(“加载面上点的横向位移”)包含(的频率(赫兹)) ylabel (“Y-Displacement”) xlim ([3500 - 0.0000])
响应峰值出现在2662 Hz附近,接近第二阶振型。在接近1947赫兹的第一模态也会出现较小的响应。
利用。求峰值响应频率指标马克斯
函数有两个输出参数。第二个输出参数提供峰值频率的索引。
[M, I] = max(abs(queryPointDisp.uy))
M = 1.1256 e-04
我= 152
在峰值响应频率处绘制变形图。施加的载荷是这样的,它主要激发肩部的打开模态和弯曲模态。
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);标题(“级”)
定义一个压力函数,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;结束