当前位置: 首页>编程语言>正文

基于matlab深度学习的力学预测 用matlab解决理论力学

  • 应用实例为三维空间中的机构受力
  • 代码无误可以复现,其中代码编写参考书籍:《MATLAB理论力学》——程燕平

力学模型的建立与求解

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

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

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_基于matlab深度学习的力学预测,第1张

图1 主传动端的结构示意图其中履带的拉力设定为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_02,第2张

,按具体要求可取定

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_基于matlab深度学习的力学预测_03,第3张

,即

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_04,第4张

,轴的一端连接采用万向联轴器与电机(动力源)结合,整体受到M大小的扭矩,带轮的直径在设计时定为D=210mm,履带的上下侧与铅垂线之间的夹角分别为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_基于matlab深度学习的力学预测_05,第5张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_06,第6张

,经过测量得到

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_07,第7张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_08,第8张

,从而来计算轴承座的约束力与履带的拉力。

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

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_09,第9张

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

可以允许两轴间有较大的夹角(最大夹角为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_10,第10张

),且在机器运转时,夹角发生改变仍能正常转动。夹角过大,会使传动效率显著降低。计算联轴器的计算转矩:由于机器启动时代动载荷和运转中可能出现过载现象,故应当按轴上的最大转矩作为联轴器的计算转矩

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_11,第11张

,如下式:

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_12,第12张

其中T为公称转矩,单位为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_13,第13张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_14,第14张

为工作情况系数。

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

故可取

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_15,第15张

,即

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_16,第16张

。其中公称转矩

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_17,第17张

,单位为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_18,第18张

 

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_19,第19张

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_20,第20张

其中驱动力矩大概为

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_21,第21张

,用MATLAB进行求解,可以求得:

基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_基于matlab深度学习的力学预测_22,第22张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_23,第23张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_24,第24张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_方程组_25,第25张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_MATLAB_26,第26张


基于matlab深度学习的力学预测 用matlab解决理论力学,基于matlab深度学习的力学预测 用matlab解决理论力学_代码编写_27,第27张

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

下述代码是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




https://www.xamrdz.com/lan/5cq1963235.html

相关文章: