此示例显示了如何分析Kinova®Gen3超轻量级机器人臂的肩部链路,以便在压力下进行变形。
机器人臂在从工厂自动化到医疗手术的各种应用中进行精确的操作。通常,机器人臂由连续连接的几个连接组成,其中底座连接到桌面或地面和附着在尖端的末端效应器。当转子在它们上移动时,这些链接必须是结构强的,以避免任何振动。
机器人臂的尖端负载导致每个环节的接头压力。压力方向取决于负载的方向。
该示例通过执行模态分析和频率响应分析模拟来计算施加压力下肩部链路的变形。你可以找到辅助功能animatexlinkmodes.m.
和几何文件gen3shoulder.stl.
在下面MATLAB / R20XXX /示例/ PDE / MAIN
。
假设机器人臂的一端是固定的,找到自然频率和模式形状。
为模态分析创建一个结构模型。
model = createpde('结构'那'模态 - 固体');
要对结构进行无约束模态分析,必须指定几何图形,网格和材料属性。首先,导入机器人臂的肩部的几何形状。
importeometry(型号,'gen3shoulder.stl');
生成网格。
generatemesh(型号);pdemesh(型号)
以一致的单元指定杨氏模量,泊松比和材料的质量密度。通常,用于连杆的材料是碳纤维增强塑料。假设材料是均匀的。
e = 1.5e11;nu = 0.3;rho = 2000;结构性额外(型号,'年轻odsmodulus'e,......'Poissonsratio',nu,......'massdention',rho);
识别用于应用边界约束和负载的面,通过用面标签绘制几何图形来绘制边界限制。
图pdegplot(模型,'FaceLabels'那'在')查看([ - 1 2])标题('肩部链接几何与面板标签')
肩部连杆固定在一端(面3)上并连接到另一端(面4)的移动链路。在面部3上应用固定边界条件。
structuralBC(模型,'脸',3,'约束'那'固定的');
解决所选择的频率范围的模型。指定低于零的较低频率限制,以便在解决方案中出现附近零附近的频率的所有模式。
rf =解决(模型,'频率范围',[ - 1,10000] * 2 * pi);
默认情况下,求解器返回圆形频率。
modeid = 1:numel(rf.naturalfruquencies);
通过划分它们来表示Hz的产生频率 。在表中显示频率。
tmodalresults = table(modeid。',rf.naturalfruquence / 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
可视化模式形状的最佳方法是在它们各自的频率下动画谐波运动。这animateixlinkmodes.
函数为前六种模式设置动画。所得到的曲线显示负载下的主导变形区域。
图框架= AnimateSixLinkModes(RF);
要播放动画,请使用以下命令:
电影(图('单位','归一化','OutherPosition',[0 0 1 1]),框架,5,30)
假设附着的连杆在面部的一半上施加相等和相反的压力,模拟肩部的压力负荷下的动力学。分析面部脸部点的频率响应和变形。
首先,为频率响应分析创建一个结构模型。
fmodel = createpde('结构'那'频率固体');
导入您用于模态分析的肩部部分的相同几何体。
importemometry(FModel,'gen3shoulder.stl');
生成网格。
网格= generatemesh(fmodel);
指定杨氏模量,泊松比和质量密度。
结构性额外(FModel,'年轻odsmodulus'e,......'Poissonsratio',nu,......'massdention',rho);
肩部连杆固定在一端(面3)上并连接到另一端(面4)的移动链路。在面部3上应用固定边界条件。
StructuralBC(FModel,'脸',3,'约束'那'固定的');
当臂承载负载时,估计移动链接在面4上施加的压力。该图显示了两半的面部4沿着中心划分y-协调。
使用按FPCNFR.
应用边界负荷的功能4.此功能适用于推动和扭转压力信号。推压部件是均匀的。扭转分量在侧面的左侧施加正压和负压。为了定义按FPCNFR.
功能,请参阅本页底部的压力功能部分。此功能没有对频率的显式依赖关系。因此,在频域中,该压力负载在解决方案的所有频率上起作用。
结构婚姻(FModel,'脸',4,'压力',@(区域,州)按FCNFR(区域,州),'矢量化'那'在');
将解决方案的频率列表定义为0到3500 Hz,具有200步。
Flist = Linspace(0,3500,200)* 2 * pi;
通过将模型结果对象RF指定为一个输入,使用模态频率响应求解器来解决模型。
R =解决(FModel,Flist,'modalresults',rf)
r =频率特性带有属性:位移:[1x1 fistruct]速度:[1x1 fistruct]加速:[1x1 fistruct]解决方案频道:[1x200双]网格:[1x1 emelh]
绘制装载面上的点处的频率响应。位于最大负压负荷下的面部4上的点(0.003; 0.0436; 0.1307)
。将位移插入此点并绘制结果。
querypoint = [0.003;0.0436;0.1307];querypointdisp = r.interpolatedIsplacement(QueryPoint);图绘图(R.SolutionFrequence / 2 / Pi,ABS(QueryPointdisp.uy))标题('横向位移在装载面上')Xlabel('频率(Hz)')ylabel('y-betplacement')XLIM([0.0000 3500])
响应的峰值发生在2662 Hz附近,其接近第二振动模式。在接近1947 Hz的第一模式下也发生较小的反应。
通过使用使用峰值响应频率索引最大限度
函数有两个输出参数。第二个输出参数提供峰值频率的索引。
[m,i] = max(abs(querypointdisp.uy))
m = 1.1256e-04
我= 152.
在峰值响应频率下绘制变形。所施加的负载使得它主要激发肩部的开口模式和弯曲模式。
rd = struct();rd.ux = r.displacement.ux(:,i);rd.uy = r.displacement.uy(:,i);rd.uz = r.displacement.uz(:,i);数字('单位'那'标准化'那'offormosition',[0 0 1 1]);子图(2,2,1)pdeplot3d(fmodel,'colormapdata',r.displacement.ux(:,i),......'形变',rd,'畸形级别',1);标题('x-betplacement')子图(2,2,2)pdeplot3d(fmodel,'colormapdata',r.displacement.uy(:我),......'形变',rd,'畸形级别',1);标题('y-betplacement')子图(2,2,3)pdeplot3d(fmodel,'colormapdata',r.displacement.uz(:我),......'形变',rd,'畸形级别',1);标题('z-asplacement')子图(2,2,4)pdeplot3d(fmodel,'colormapdata',r.displacement.magnonitude(:我),......'形变',rd,'畸形级别',1);标题('震级')
定义压力功能,按FPCNFR.
,计算推动和扭曲压力信号。推压部件是均匀的。扭转压力分量在脸部右侧施加左侧的正压和负压。扭曲压力负荷的值从最小点处的抛物线分布增加C
积极的峰顶L.
以及负峰值R.
。抛物面分布的扭转压力因子按FPCNFR.
乘以正弦函数,幅度为0.1MPa。均匀的推压值为10kPa。
功能p =按FPREFNFR(区域,〜)意向=均值(区域。);absmaxy = max(abs(区域。));scalefactor = zeros(大小(区域。));%找到左侧和右半部分的点的ID%使用y坐标值。Lefthalfidx = Region.y <= Imby;righthalfidx = region.y> =意思;%为面部的每一半定义抛物线规模因子。Scalefactor(Lefthalfidx)=((lefthalfidx) - 意思)/ absmaxy)。^ 2;Scalefactor(Righthalfidx)= - ((Righthalfidx) - 意思)/ absmaxy)。^ 2;p = 10e3 + 0.1e6 * scalefactor;结尾