- 应用实例为三维空间中的机构受力
- 代码无误可以复现,其中代码编写参考书籍:《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