MATLAB理论力学应用

  • 应用实例为三维空间中的机构受力

  • 代码无误可以复现,其中代码编写参考书籍:《MATLAB理论力学》——程燕平


力学模型的建立与求解

对于本例的力学分析,涉及带轮、轴、链条、桁架、电机、拨叉等重要构件。其中也含有轴承的校核,对于主传动端,即电机(万向连轴)—>轴—>带轮(履带)。

结构示意图(单侧)如下:

图1 主传动端的结构示意图

其中履带的拉力设定为,按具体要求可取定,即,轴的一端连接采用万向联轴器与电机(动力源)结合,整体受到M大小的扭矩,带轮的直径在设计时定为D=210mm,履带的上下侧与铅垂线之间的夹角分别为,经过测量得到,从而来计算轴承座的约束力与履带的拉力。

以整个轴为研究对象,轴承A处与万向联轴器B处为一对正交分力,根据静力学定理,可按空间任意力系来构建平衡方程。具体方程组如下

所选联轴器:十字轴式万向联轴器

可以允许两轴间有较大的夹角(最大夹角为),且在机器运转时,夹角发生改变仍能正常转动。夹角过大,会使传动效率显著降低。

计算联轴器的计算转矩:由于机器启动时代动载荷和运转中可能出现过载现象,故应当按轴上的最大转矩作为联轴器的计算转矩,如下式:

其中T为公称转矩,单位为为工作情况系数。

由于原动机为电动机,工作情况为转矩变换和冲击载荷中等的场合。

故可取,即

其中公称转矩,单位为

 

其中驱动力矩大概为,用MATLAB进行求解,可以求得:

,其中负号表示与图示方向相反。

下述代码是MATLAB语言编写的,作用是求解力学模型 :

 clear;clc;%clean the workspace
 %理论力学——空间力系(静力学)
 tic
 try
 %specify the symbolic variables
 syms  M D a b F1 F2 F_AX F_AZ F_BX F_BZ L_1 L_2
  %write out the three equations as is
 eq1 = D*F2/2-D*F1/2+M == 0;
 eq2 = -L_1*cos(a)*F1-L_1*cos(b)*F2+L_2*F_BZ == 0;
 eq3 = L_1*sin(a)*F1-L_1*sin(b)*F2+L_2*F_BX == 0;
 eq4 = F_AZ+F_BZ+cos(a)*F1+cos(b)*F2 ==0;
 eq5 = F_AX+F_BX+sin(a)*F1+sin(b)*F2 ==0 ;
 eq6 = F2 == 0.01*F1;
  %solve the equations symbolically
 sol = solve(eq1,eq2,eq3,eq4,eq5,eq6,F1,F2,F_AX,F_AZ,F_BX,F_BZ);
  %substitute values into the results
 var = [M D L_1 L_2 a b];
 val = [18145 210 134 93 85*pi/180 pi/2];
 F1=subs(sol.F1,var,val);
 F2=subs(sol.F2,var,val);
 F_AX = subs(sol.F_AX,var,val);
 F_AZ = subs(sol.F_AZ,var,val);
 F_BX = subs(sol.F_BX,var,val);
 F_BZ = subs(sol.F_BZ,var,val);
  %使得matlab的计算结果默认显示为小数
 F1 =  eval(F1);
 F2 =  eval(F2);
 F_AX =  eval(F_AX);
 F_AZ =  eval(F_AZ);
 F_BX =  eval(F_BX);
 F_BZ =  eval(F_BZ);
 disp('该工程问题利用Matlab求解输出的F1为:');disp(F1)
 disp('该工程问题利用Matlab求解输出的F2为:');disp(F2)
 disp('该工程问题利用Matlab求解输出的F_AX为:');disp(F_AX)
 disp('该工程问题利用Matlab求解输出的F_AZ为:');disp(F_AZ)
 disp('该工程问题利用Matlab求解输出的F_BX为:');disp(F_BX)
 disp('该工程问题利用Matlab求解输出的F_BZ为:');disp(F_BZ)
 toc
 catch %程序异常处理
     disp('代码运行过程中出现错误, 请检查!')
 end
posted @ 2022-01-17 06:37  随机惯性粒子群  阅读(411)  评论(0)    收藏  举报