曾德惠
(湖北民族學(xué)院 理學(xué)院,湖北 恩施 445000)
靜力學(xué)在工程實(shí)際中有著極其廣泛的應(yīng)用,對(duì)零件結(jié)構(gòu)的設(shè)計(jì)和改進(jìn),都應(yīng)當(dāng)首先進(jìn)行受力分析.靜力學(xué)是理論力學(xué)的重要組成部分,它研究物體的受力分析、力系的簡化方法以及受力物體的平衡條件,其目的是求解未知力,為零件結(jié)構(gòu)的進(jìn)一步設(shè)計(jì)打下基礎(chǔ).靜力學(xué)問題的求解,涉及大量符號(hào)運(yùn)算和數(shù)值計(jì)算.采用傳統(tǒng)計(jì)算方法需花費(fèi)大量的時(shí)間,許多復(fù)雜問題的求題不得不過多地依賴技巧實(shí)現(xiàn).用計(jì)算機(jī)取代計(jì)算器[1]早已是不爭的現(xiàn)實(shí).文獻(xiàn)[2]中提出處理理論力學(xué)問題的新途徑:把力學(xué)、計(jì)算數(shù)學(xué)和計(jì)算機(jī)軟件結(jié)合起來,形成了理論力學(xué)問題→理論分析→選擇合理的數(shù)值計(jì)算方法→程序編制→用計(jì)算機(jī)求得結(jié)果的解決模式.文獻(xiàn)[3]中提出了在理論力學(xué)教學(xué)中應(yīng)充分利用矢量、矩陣等數(shù)學(xué)工具,重視對(duì)學(xué)生計(jì)算機(jī)數(shù)值求解方法的訓(xùn)練,在具體的求解過程中選用Matlab或Maple軟件工具. Matlab是一種面向科學(xué)與工程計(jì)算的高級(jí)語言,提供了強(qiáng)大的矩陣處理和繪圖功能,給出了一個(gè)融合計(jì)算、可視化和程序設(shè)計(jì)的交互環(huán)境,操作簡便,能高效求解各種復(fù)雜工程問題并實(shí)現(xiàn)計(jì)算結(jié)果的可視化[4,5].本文以靜力學(xué)中的核心內(nèi)容(力系簡化和力系平衡)為研究對(duì)象,較為詳細(xì)地講述了Matlab輔助靜力分析計(jì)算的過程,編制出的程序具有一定的普遍性,并給出了具體實(shí)例加以說明和驗(yàn)證.
力學(xué)模型的建立是求解靜力學(xué)問題的基礎(chǔ).模型的正確與否,直接關(guān)系到計(jì)算精度和計(jì)算工作量.針對(duì)具體問題,首先應(yīng)確定研究對(duì)象;然后根據(jù)已知條件和約束類型,分清主動(dòng)力和約束力,結(jié)合靜力學(xué)基本概念和有關(guān)原理分析受力情況并畫出受力圖,建立坐標(biāo)系.
對(duì)于特定的工程問題,涉及各式各樣的物體,其實(shí)際狀況有時(shí)是很復(fù)雜的.在建立力學(xué)模型時(shí)必須對(duì)這些物體進(jìn)行必要的、合理的簡化.由于靜力分析與物體外形有關(guān)的只是載荷與約束的位置及類型,而與載荷和約束無關(guān)的外形是次要因素可以忽略.因而直接采用簡單的線條來繪制研究對(duì)象,按照國家標(biāo)準(zhǔn)的規(guī)定畫法表達(dá)力和約束的作用位置及類型,用計(jì)算簡圖來描述實(shí)際物體的全部受力情況.
將力學(xué)模型轉(zhuǎn)換為數(shù)學(xué)模型是編程計(jì)算的關(guān)鍵.工程實(shí)物抽象為力學(xué)模型后,要應(yīng)用力學(xué)原理,充分利用矢量、矩陣、線性方程等數(shù)學(xué)工具,將力學(xué)模型用數(shù)學(xué)方法簡潔地描述出來.例如:將力用矢量表示、力系簡化用矢量運(yùn)算求得、平衡方程組寫成矩陣形式等等.
Matlab編程方式有兩種[6]:①行命令方式.即在命令窗口中輸入一條或多條命令,然后執(zhí)行,再輸入-執(zhí)行,完全以交互的方式進(jìn)行.②M文件方式.即把程序?qū)懗梢粋€(gè)由多行語句組成的文件,通過在命令窗口中輸入文件名回車來執(zhí)行這個(gè)文件.M文件分為腳本文件和函數(shù)文件兩種,可以在其他的文本編輯器如記事本、寫字板中編寫,也可以在Matlab的程序編輯器中編寫,并以“.m”為擴(kuò)展名加以存儲(chǔ).Matlab軟件用C語言編寫,其語法與C語言十分相似,編寫卻更加簡單方便.
力系的簡化是靜力學(xué)中一種重要的力學(xué)分析方法.只有運(yùn)用力系簡化才能將復(fù)雜的受力問題抽象成簡潔的力學(xué)模型.比如運(yùn)用力系的簡化可以建立平衡方程,可以推導(dǎo)固定端約束處的約束反力、合力矩定理、物體重心位置等等[7].又如對(duì)剛體動(dòng)力學(xué)問題,可以將剛體上每個(gè)質(zhì)點(diǎn)的慣性力組成慣性力系,用力系簡化的方法得出簡化結(jié)果.然后根據(jù)達(dá)朗伯原理,用靜力學(xué)建立平衡方程的方法求解動(dòng)力學(xué)問題.
力系的簡化,就是用一個(gè)最簡單的力系等效地代替復(fù)雜力系,簡化結(jié)果得到一個(gè)主矢和主矩.主矢是各力的矢量和,主矩是各力對(duì)簡化中心的力矩求和[7].工程上常見的力系為兩種:平面力系和空間力系.其中空間力系是最一般的力系,平面力系是空間力系的特例.許多工程結(jié)構(gòu)和機(jī)械構(gòu)件都受空間力系的作用,如車床主軸、桅式起重機(jī)、閘門等.Matlab求解時(shí)可以用向量或矩陣的形式將各個(gè)力表示出來,力系的簡化即對(duì)這些向量或矩陣進(jìn)行操作:如向量相加、向量點(diǎn)積和叉積.下面以一個(gè)空間力系為例,應(yīng)用Matlab軟件將力系的簡化歸納為一個(gè)通用函數(shù)子程序,可以重復(fù)調(diào)用,力系中力的數(shù)目不受限制.
如圖1所示,假設(shè)一剛體上作用一空間力系(F1,F2,…,Fn),將力系中各力向任選的簡化中心O簡化.首先以O(shè)為原點(diǎn)建立空間直角坐標(biāo)系oxyz,將力系中的各力用其在x、y、z軸上的投影表示為矢量形式,即Fi=Fixi+Fiyj+Fizk,其主矢、主矩的計(jì)算計(jì)算公式為[7]:
主矢的方向余弦:cos(FR,i)=FRx/FR,cos(FR,j)=FRy/FR,cos(FR,k)=FRz/FR
主矩的方向余弦:cos(Mo,i)=Mx/MO,cos(Mo,j)=My/MO,cos(Mo,k)=Mz/MO
如圖2所示構(gòu)件力系的三力分別為F1= 350 N, F2= 400 N, F3=600 N,其作用線的位置如圖所示,將此力系向原點(diǎn)O簡化[7].
圖1 空間力系的簡化過程
圖2 空間力系簡化實(shí)例
求解時(shí)首先整理已知力數(shù)據(jù)列成表1,用力在坐標(biāo)軸x、y、z軸上的投影表示成矢量形式.
已知數(shù)據(jù)可以在運(yùn)行程序時(shí)由鍵盤交互輸入,也可以啟動(dòng)有關(guān)編輯程序或Matlab文本編輯器輸入,以純文本方式存盤為.m或.mat格式[6],調(diào)用力系簡化子程序,直接訪問Matlab工作空間中所有變量,運(yùn)行程序得出簡化結(jié)果(包括主矢和主矩的大小和方向角).Matlab力系簡化函數(shù)程序如下,它的主要功能是實(shí)現(xiàn)空間力系的簡化,對(duì)其他力系同樣適用.
表1 空間力系已知數(shù)據(jù)
function lixijianhua(N1,F,r)
%N1為力系中已知力總數(shù)
%F、r分別為已知力矢、已知力作用點(diǎn)坐標(biāo)矩陣
load N1-F-r.mat;
disp('空間一般力系簡化結(jié)果:');
%計(jì)算主矢
S=sum(F(1:N1,1:3)); %計(jì)算合力投影矩陣
FR=sqrt(S(1)^2+S(2)^2+S(3)^2); %計(jì)算合力大小
disp(['主矢大小=',num2str(FR),'N']);
FRangles=acos(S/FR)*180/pi;
disp(['主矢方向角[α β γ]=
[',num2str(FRangles),']度']);
%計(jì)算主矩
Mo=zeros(1,3); %主矩向量賦初值
for i=1:N1
Mo=Mo+cross(r(i,1:3),F(i,1:3));
end
disp(['主矩矢Mo=[',num2str(Mo),']N.mm']);
MoNum=norm(Mo);%計(jì)算主矩大小
Moangles=acos(Mo/MoNum)*180/pi;
disp(['主矩大小=',num2str(MoNum),'N.mm']);
disp(['主矩方向角[α β γ]=
[',num2str(Moangles),']度']);
運(yùn)行程序得到結(jié)果如下:
主矢大小=1 144.225N
主矢方向角[α β γ]=[97.225 18 27.969 1 116.860 3]度
主矩矢Mo=[-47 989.384 9 21 072.389 -19 399.865 6]N.mm
主矩大小=55 887.220 6 N.mm
主矩方向角[α β γ]=[149.169 67.848 8 110.311 6]度
圖3 空間力系平衡舉例
靜力學(xué)的核心是平衡方程.空間力系作用下單個(gè)物體的靜定問題有6個(gè)平衡方程,n個(gè)構(gòu)件組成的物系可列出6n個(gè)獨(dú)立的平衡方程,解6n個(gè)未知數(shù).隨構(gòu)件數(shù)目的增多,線性方程組的數(shù)目也就越多.因此需要用到線性代數(shù)的知識(shí),利用計(jì)算機(jī)求解. 運(yùn)用Matlab語言,可以把復(fù)雜的線性方程組用矩陣的形式表示出來.一般可選用直接法和迭代法求解.直接法分為運(yùn)算符求解和矩陣分解求解,通過對(duì)矩陣和Matlab相關(guān)函數(shù)的操作實(shí)現(xiàn).
如圖3(a)所示,裝有兩個(gè)帶輪C和D的水平傳動(dòng)軸AB,支承于徑向軸承A、B上,輪半徑R1=200 mm,R2=250 mm,距離a=c=500 mm,b=1 000 mm.已知輪C上膠帶拉力的方向成水平,其大小T2=2T1=5 kN;輪D上兩邊的膠帶互相平行,并與鉛垂線夾角α=30°,其拉力大小T3=2T4.不計(jì)輪和軸的重量,試求在平衡狀態(tài)下膠帶拉力T3、T4及軸承A、B的約束反力[9].
具體求解步驟如下:
(1)建立力學(xué)模型 取軸與輪整體系統(tǒng)為研究對(duì)象,建立坐標(biāo)系oxyz,畫出受力圖如圖3(b).
(2)建立數(shù)學(xué)模型 系統(tǒng)受空間力系的作用,根據(jù)受力圖,靜力平衡方程表示如下:
∑Fx=0,FAx+FBx+T1+T2+(T3+T4)sinα=0
∑Fz=0,FAz+FBz-(T3+T4)cosα=0
∑Mx(F)=0,FBz(a+b+c)-(T3+T4)cosα×(a+b)=0
∑My(F)=0, (T3-T4)R2+(T1-T2)R1=0
∑Mz(F)=0, -FBx(a+b+c)-(T1+T2)a-(T3+T4)sinα×(a+b)=0
T3=2T4
方程中包含軸承A、B的約束反力FAx、FAz、FBx、FBz及T3、T4共6個(gè)未知數(shù),將已知力移到等式右邊,整理為標(biāo)準(zhǔn)的矩陣方程AX=B的形式:
編制Matlab程序求解
clear;
R1=200;R2=250; a=500; b=500;
c=1000; alpha=30*pi/180; T1=2.5; T2=5;
A=[1 0 1 0 sin(alpha) sin(alpha);
0 1 0 1 -cos(alpha) -cos(alpha);
0 0 0 a+b+c -cos(alpha)*(a+b) -cos(alpha)*(a+b);
0 0 0 0 R2-R2;
0 0 -(a+b+c) 0 -sin(alpha)*(a+b)-sin(alpha)*(a+b);
0 0 0 0 1 -2 ];
B=[-T1-T2;0;0;(T2-T1)*R1;
(T1+T2)*a ; 0];
% [L,U]=lu(A); X=U(LB) %LU分解求解
X=AB;%矩陣除法求解
X=X';
%顯示結(jié)果
disp(['[FAx FAz FBx FBz T3 T4]=[',num2str(X),'] [KN]'
程序運(yùn)行結(jié)果如下:
[FAx FAz FBx FBz T3 T4]=[-6.375 1.299 -4.125 3.8971 4 2] [KN]
負(fù)值表明反力FAx、FBx的指向與圖示方向相反.
Matlab語言具有強(qiáng)大的計(jì)算功能,編寫簡單、調(diào)試方便.借助于計(jì)算機(jī)輔助手段,拓寬了分析和處理工程實(shí)際問題的范圍,把學(xué)生和設(shè)計(jì)人員從繁雜的數(shù)學(xué)計(jì)算和枯燥的編程中解放出來,使他們擁有更大的想象和發(fā)揮的空間,能夠投入更多時(shí)間和精力去面向問題,專注于創(chuàng)造性的工作.
[1]陳懷琛.大學(xué)理工科要把“科學(xué)計(jì)算能力”當(dāng)作一個(gè)重要培養(yǎng)目標(biāo)[J].中國大學(xué)教學(xué),2005,27(9):15-17.
[2]王國源.數(shù)值計(jì)算在理論力學(xué)中的應(yīng)用[J].力學(xué)與實(shí)踐,1990,12(1):62-63.
[3]邵小軍,劉永壽,岳珠峰.談工科理論力學(xué)教學(xué)中數(shù)學(xué)工具的應(yīng)用[J].力學(xué)與實(shí)踐,2007,29(5):68-69.
[4]曾德惠.基于Matlab實(shí)現(xiàn)函數(shù)逼近[J].現(xiàn)代電子技術(shù),2009,32(18):141-143.
[5]管靖,彭芳麟,胡靜,等.理論力學(xué)教學(xué)現(xiàn)代化-“理論力學(xué)計(jì)算機(jī)模擬實(shí)驗(yàn)”課程的探索[J].大學(xué)物理,2001,20(8):38-40.
[6]王正林,劉明.精通MATLAB7[M].北京:電子工業(yè)出版社,2006.
[7]哈爾濱工業(yè)大學(xué)理論力學(xué)教研室.理論力學(xué)(第6版)[M].北京:高等教育出版社,2002.
[8]趙秉新,鄭來運(yùn).MATLAB在求解線性方程組中的多種應(yīng)用[J].通化師范學(xué)院學(xué)報(bào),2007,28(12):13-15.
[9]張毅.建筑力學(xué)(上)[M].北京:清華大學(xué)出版社,2006.