平面四桿機(jī)構(gòu)的運(yùn)動(dòng)分析(VB源代碼)
平面四桿機(jī)構(gòu)的運(yùn)動(dòng)分析(VB源代碼),平面,機(jī)構(gòu),運(yùn)動(dòng),分析,vb,源代碼
南昌航空大學(xué)科技學(xué)院學(xué)士學(xué)位論文
1 序 言
連桿機(jī)構(gòu),是由許多剛性構(gòu)件通過低副聯(lián)結(jié)而成,也稱低副機(jī)構(gòu)。它是由機(jī)構(gòu)原動(dòng)件與從動(dòng)件之間都要通過連桿聯(lián)結(jié)和機(jī)架一起構(gòu)成傳動(dòng)裝置,因此稱為連桿機(jī)構(gòu)。
低副面接觸的結(jié)構(gòu)使連桿機(jī)構(gòu)具有以下一些優(yōu)點(diǎn):運(yùn)動(dòng)副單位面積所受壓力較小,且面接觸便于潤(rùn)滑,故磨損減小;制造方便,易獲得較高的精度;兩構(gòu)件之間的接觸是靠本身的幾何封閉來維系的,它不像凸輪機(jī)構(gòu)有時(shí)需利用彈簧等力封閉來保持接觸。同時(shí),平面連桿機(jī)構(gòu)也有以下缺點(diǎn):一般情況下,只能近似實(shí)現(xiàn)給定的運(yùn)動(dòng)規(guī)律或運(yùn)動(dòng)軌跡,且設(shè)計(jì)較為復(fù)雜;當(dāng)給定的運(yùn)動(dòng)要求較多或較復(fù)雜時(shí),需要的構(gòu)件數(shù)和運(yùn)動(dòng)副個(gè)數(shù)往往較多,這樣就使機(jī)構(gòu)結(jié)構(gòu)復(fù)雜,工作效率降低,不僅發(fā)生自鎖的可能性增加,而且機(jī)構(gòu)運(yùn)動(dòng)規(guī)律對(duì)制造、安裝誤差的敏感性增加;機(jī)構(gòu)中作復(fù)雜運(yùn)動(dòng)和作往復(fù)運(yùn)動(dòng)的構(gòu)件所產(chǎn)生的慣性力難以平衡,在高速時(shí)將引起較大的振動(dòng)和動(dòng)載荷,故連桿機(jī)構(gòu)常用于速度較低的場(chǎng)合。以四桿機(jī)構(gòu)為例,四桿機(jī)構(gòu)根據(jù)其兩個(gè)連架桿的運(yùn)動(dòng)形式的不同,可以分為曲柄搖桿機(jī)構(gòu)、雙曲柄機(jī)構(gòu)和雙搖桿機(jī)構(gòu)三種基本形式,應(yīng)用實(shí)例如下:[1]
圖1-1 雷達(dá)天線調(diào)整機(jī)構(gòu) 圖1-2 汽車雨刮器 圖1-3 攪拌機(jī)
以上圖1-1至3為曲柄搖桿機(jī)構(gòu);
圖1-4 慣性篩工作機(jī)構(gòu) 圖1-5 起重機(jī)吊臂結(jié)構(gòu)原理
以上圖1-4為雙曲柄機(jī)構(gòu);圖1-5 為雙搖桿機(jī)構(gòu)
連桿機(jī)構(gòu)根據(jù)不同的分類標(biāo)準(zhǔn)由不同的分類方法。
(一) 可根據(jù)各構(gòu)件之間的相對(duì)運(yùn)動(dòng)為平面運(yùn)動(dòng)或空間運(yùn)動(dòng),將其分為平面連桿機(jī)構(gòu)與空間連桿機(jī)構(gòu)(單閉環(huán)的平面連桿機(jī)構(gòu)的構(gòu)件數(shù)至少為4,單閉環(huán)的空間連桿機(jī)構(gòu)的構(gòu)件數(shù)至少為3);
(二) 可根據(jù)機(jī)構(gòu)中構(gòu)件數(shù)目的多少主要分為兩大類:四桿機(jī)構(gòu),由五桿及五桿以上組成的多桿機(jī)構(gòu)。連桿機(jī)構(gòu)中最基本、應(yīng)用最廣泛的機(jī)構(gòu)為平面四桿機(jī)構(gòu),它是構(gòu)成和研究多桿機(jī)構(gòu)(如六桿機(jī)構(gòu))的基礎(chǔ)。
連桿機(jī)構(gòu)是常用的主要機(jī)構(gòu)之一,它在一些機(jī)械的工作機(jī)構(gòu)和操縱裝置中得到了廣泛的應(yīng)用。連桿機(jī)構(gòu)能夠?qū)崿F(xiàn)多種運(yùn)動(dòng)形式的轉(zhuǎn)換,例如它可把原動(dòng)件的轉(zhuǎn)動(dòng)轉(zhuǎn)換成從動(dòng)件某種規(guī)律的往復(fù)移動(dòng)或擺動(dòng),反之也可把往復(fù)移動(dòng)或擺動(dòng)轉(zhuǎn)換成連續(xù)運(yùn)動(dòng);此外,應(yīng)用在連桿上點(diǎn)的軌跡可以完成工程上特殊的曲線運(yùn)動(dòng)要求.
因此,選取連桿機(jī)構(gòu)中平面四桿機(jī)構(gòu)進(jìn)行研究是有必要的。
1.1 選題的依據(jù)及意義:
選題目的
1.建立研究新機(jī)構(gòu),新機(jī)器發(fā)明創(chuàng)造的普遍規(guī)律及實(shí)用方法的實(shí)用基礎(chǔ)理論。
2.加速吸收發(fā)達(dá)工業(yè)化國(guó)家的先進(jìn)技術(shù),為本國(guó)新機(jī)構(gòu),新機(jī)器的二次設(shè)計(jì),二次開發(fā)提供理論基礎(chǔ)。
3.提出在技術(shù)革新和設(shè)備改造中提出的新機(jī)構(gòu),新機(jī)器的獨(dú)特結(jié)構(gòu)和創(chuàng)新構(gòu)思,是其成為成熟的先進(jìn)技術(shù)。
4.簡(jiǎn)介一些新機(jī)構(gòu),新機(jī)器實(shí)用性結(jié)構(gòu)及技術(shù)的應(yīng)用實(shí)例,說明理論對(duì)實(shí)踐的指導(dǎo)作用。
5.為從事機(jī)械設(shè)計(jì),制造的工程技術(shù)人員的知識(shí),技術(shù)更新開闊視野提供參考資料。
6.探索平面連桿機(jī)構(gòu)研究的新方法,新思路。
1.2平面連桿機(jī)構(gòu)的運(yùn)動(dòng)學(xué)分析
平面連桿機(jī)構(gòu)運(yùn)動(dòng)分析的方法有很多,主要有圖解法、解析法和實(shí)驗(yàn)法三種。其中,圖解法包括速度瞬心法和相對(duì)速度圖解法,形象直觀,對(duì)構(gòu)件少的簡(jiǎn)單的平面連桿機(jī)構(gòu),一般情況下用圖解法比較簡(jiǎn)單。解析法直接用機(jī)構(gòu)已知參數(shù)和要求的未知量建立的數(shù)學(xué)模型進(jìn)行求解,也是一種比較好的方法。作圖法和實(shí)驗(yàn)法工作量大,設(shè)計(jì)精度低,僅適用于對(duì)機(jī)構(gòu)精度要求不高的場(chǎng)合。
平面連桿機(jī)構(gòu)的運(yùn)動(dòng)學(xué)分析的過程包括建立運(yùn)動(dòng)約束方程和解方程兩部分。平面連桿機(jī)構(gòu)的運(yùn)動(dòng)學(xué)分析,就是對(duì)機(jī)構(gòu)的位移、軌跡、速度、加速度進(jìn)行分析。[3]這里研究的內(nèi)容是不考慮機(jī)構(gòu)的外力及構(gòu)件的彈性變形等影響,僅僅研究在已知原動(dòng)件的運(yùn)動(dòng)規(guī)律的條件下,分析機(jī)構(gòu)中其余構(gòu)件上各點(diǎn)的位移、軌跡、速度、加速度,有了這些運(yùn)動(dòng)參數(shù),才能分析、評(píng)價(jià)現(xiàn)有機(jī)械的工作性能。
1.3 本論文所作的主要工作:
此課題的主要目標(biāo)是系統(tǒng)地對(duì)平面四桿機(jī)構(gòu)進(jìn)行研究,從而來獲得連桿機(jī)構(gòu)運(yùn)動(dòng)學(xué)性能和動(dòng)力學(xué)性能,以便在實(shí)際中得到應(yīng)用。主要特點(diǎn)是在各個(gè)設(shè)計(jì)進(jìn)度中將會(huì)大量應(yīng)用計(jì)算機(jī)高級(jí)語言編程來輔助設(shè)計(jì)和仿真平面四桿機(jī)構(gòu),主要體現(xiàn)在四個(gè)方面:
1 平面四桿機(jī)構(gòu)連桿點(diǎn)的軌跡坐標(biāo)
2 連桿軌跡曲線分類基準(zhǔn)的確定
3 軌跡曲線的分類及運(yùn)動(dòng)領(lǐng)域識(shí)別
4 運(yùn)動(dòng)學(xué)仿真軟件編制
具體來說,在本論文中,將在第三章平面四桿機(jī)構(gòu)的分類里主要是進(jìn)行連桿基股上任意點(diǎn)的軌跡計(jì)算。在第四章連桿曲線的幾何特征及其分類一章里,主要是對(duì)連桿曲線的幾何特征(包括曲率、弧長(zhǎng)、回轉(zhuǎn)數(shù)、結(jié)點(diǎn)、變曲點(diǎn)等)進(jìn)行分析,并根據(jù)分析結(jié)果對(duì)連桿曲線進(jìn)行分類,建立機(jī)構(gòu)數(shù)據(jù)庫(kù)。在第五章平面連桿機(jī)構(gòu)的運(yùn)動(dòng)仿真一章中,主要是運(yùn)用矢量算法對(duì)連桿的速度和加速度進(jìn)行計(jì)算,并根據(jù)結(jié)果對(duì)四桿機(jī)構(gòu)進(jìn)行VB運(yùn)動(dòng)模擬。
2 平面四桿機(jī)構(gòu)的類型
2.1分類概念
在平面機(jī)構(gòu)的范疇,最簡(jiǎn)單的低配對(duì)機(jī)構(gòu)是四連桿。 四連桿包含四個(gè)桿件及四個(gè)接合配對(duì),如圖2.1。[4]
圖2.1. 四連桿機(jī)構(gòu)
?????如前所言,機(jī)構(gòu)中應(yīng)有固定桿,此桿通常與地相連,或代表地的狀態(tài)。在固定桿之相對(duì)桿稱為聯(lián)結(jié)桿(coupler link);與其兩端相連的則稱為側(cè)連桿(side links)。 一個(gè)相對(duì)于第二桿可以自由回轉(zhuǎn)360度之連桿,稱為對(duì)第二桿(不一定固定桿)旋轉(zhuǎn)(revolve)。而若所有四連桿能變成聯(lián)機(jī)時(shí),此稱為變異點(diǎn)(change point)。有關(guān)連桿之重要觀念有:1.曲柄(Crank): 相對(duì)于固定桿作旋轉(zhuǎn)之側(cè)桿稱為曲柄。2.搖桿(Rocker): 任何連桿不作旋轉(zhuǎn)之連桿稱為搖桿。3.曲柄搖桿機(jī)構(gòu)(Crank-rocker mechanism): 在四連桿系統(tǒng)中,若較短的側(cè)桿旋轉(zhuǎn),另一側(cè)桿擺動(dòng)時(shí),此稱為曲柄搖桿機(jī)構(gòu)。4.雙曲柄機(jī)構(gòu)(Double-crank mechanism):在四連桿系統(tǒng)中,若兩側(cè)連桿均作回轉(zhuǎn)時(shí),稱為雙曲柄機(jī)構(gòu)。5.雙搖桿機(jī)構(gòu)(Double-rocker mechanism): 在四連桿系統(tǒng)中,若兩側(cè)連桿均為擺動(dòng)狀況時(shí),此稱為雙搖桿機(jī)構(gòu)。
表2-1 鉸鏈四桿機(jī)構(gòu)及其演化主要形式對(duì)比
固定構(gòu)件
四桿機(jī)構(gòu)
含一個(gè)移動(dòng)副的四桿機(jī)構(gòu)(e=0)
4
曲柄搖
桿機(jī)構(gòu)
曲柄滑
塊機(jī)構(gòu)
1
雙曲柄
機(jī)構(gòu)
轉(zhuǎn)動(dòng)導(dǎo)
桿機(jī)構(gòu)
2
曲柄搖
桿機(jī)構(gòu)
搖塊
機(jī)構(gòu)
擺動(dòng)導(dǎo)
桿機(jī)構(gòu)
3
雙搖桿
機(jī)構(gòu)
定塊
機(jī)構(gòu)
2.2 分類
? 在將四連桿機(jī)構(gòu)作分類前,需先介紹幾個(gè)基本語法。在四連桿系統(tǒng)中,連桿之定義為兩接合間之線段,而其特性可用文字表示如下:
s = 最長(zhǎng)桿之長(zhǎng)度
l = 最短桿之長(zhǎng)度
p, q = 中間長(zhǎng)度桿之長(zhǎng)度
葛拉索定理(Grashof's theorem )
1. 在四連桿機(jī)構(gòu)中若下述為真則至少有一桿為旋轉(zhuǎn)桿:
s + l <= p + q???????????????????????????? (2-1)
2. 若下述為真,則所有三個(gè)活動(dòng)連桿必屬搖桿:
s + l > p + q?????????????????????????????? (2-2)
???????第 2-1不等式即為葛拉索準(zhǔn)則( Grashof's criterion).
?所有四連桿所可能發(fā)生的情形可參考表2.2之分類。
表 2-2 四連桿機(jī)構(gòu)之分類
Case
?l + s vers. p + q
Shortest Bar
Type
1
<
Frame
Double-crank
2
<
Side
Rocker-crank
3
<
Coupler
Double rocker
4
=
Any
Change point
5
>
Any
Double-rocker
?????由表1可知,一個(gè)機(jī)構(gòu)若含有曲柄結(jié)構(gòu),則其最長(zhǎng)桿與最短桿之和必須小于或等于其它兩桿之和。但是這僅是必要條件,而非充分條件。能夠符合這項(xiàng)條件之連桿可能有三類:1.當(dāng)最短連桿為側(cè)桿時(shí),此機(jī)構(gòu)為曲柄搖桿機(jī)構(gòu),而最短連桿將成為曲柄。2.當(dāng)最短連桿成為固定桿時(shí),此系統(tǒng)變成為雙搖桿機(jī)構(gòu)。3.當(dāng)最短連桿為聯(lián)結(jié)桿時(shí),此機(jī)構(gòu)為雙搖桿機(jī)構(gòu)。
四連桿組類型:
葛氏機(jī)構(gòu)(Grashof mechanism)
對(duì)于一個(gè)四連桿運(yùn)動(dòng)鏈,令最短桿的桿長(zhǎng)為rs,最長(zhǎng)桿的桿長(zhǎng)為rl,其余兩桿的桿長(zhǎng)為rp和rq。若桿長(zhǎng)的關(guān)系滿足下式:
rs+rl<=rp+rq
則至少有一桿能做360o的旋轉(zhuǎn),此即為葛氏法則 (Grashof law)。該機(jī)構(gòu)稱為葛氏機(jī)構(gòu)(Grashof mechanism),否則稱為非葛氏機(jī)構(gòu)(Non-Grashof mechanism)。
3 平面四桿機(jī)構(gòu)運(yùn)動(dòng)分析
3 .1. 1 連桿上任意點(diǎn)的軌跡分析
如圖所示,在直角坐標(biāo)系XOY內(nèi),平面四桿機(jī)構(gòu)的機(jī)架DA、原動(dòng)件AB、連桿BC及從動(dòng)件CD的長(zhǎng)度分別為a0、a1、a2和a3,原動(dòng)件、連桿及從動(dòng)件的角位移分別為、和。
圖3-1
此平面四桿機(jī)構(gòu)的環(huán)方程為:
即
也可寫成矢量方程:
(3.1.0)
改寫為兩坐標(biāo)軸的投影方程式為:
(3.1.1)
(3.1.2)
由以上兩式,利用消去,得到與輸入變量之間的關(guān)系式: (3.1.3)
式中:
為了用代數(shù)方法解式(3.1.3),設(shè)x=tan(/2),按照三角學(xué)公式可以寫出:
代入式(3.1.3)后可化成如下的二次代數(shù)方程式:
(3.1.4)
因而由上式的兩個(gè)解可以得出:
(3.1.5)
式中:
式(3.1.5)中應(yīng)該取“+”號(hào);當(dāng)機(jī)構(gòu)的初始位置為時(shí),式(3.1.5)中應(yīng)該取“-”號(hào)。
因此,C點(diǎn)的坐標(biāo)就可以表示為:
(3.1.6)
(3.1.7)
所以,就可以表示為:
(3.1.8)
因此,連桿上任一點(diǎn)(K點(diǎn))的坐標(biāo)就可以表示為:
(3.1.9)
(3.1.10)
或者,OK矢量寫為: (3.1.11)
3.1.2 Non-grashof機(jī)構(gòu)的運(yùn)動(dòng)分析
與Grashof機(jī)構(gòu)不同, Non-grashof機(jī)構(gòu)的原動(dòng)件存在著擺角范圍,以下對(duì)其進(jìn)行分析:
圖 3.1.1 AB桿逆時(shí)針旋轉(zhuǎn)條件 圖 3.4 AB桿順時(shí)針旋轉(zhuǎn)條件
對(duì)圖3.1.1,由三角形原理,AB的轉(zhuǎn)動(dòng)上逆時(shí)針旋轉(zhuǎn)受到限制,則轉(zhuǎn)角范圍為至
原動(dòng)件AB的轉(zhuǎn)動(dòng)范圍:
對(duì)圖3.1.1,由三角形原理,AB的轉(zhuǎn)動(dòng)上逆時(shí)針旋轉(zhuǎn)受到限制,則轉(zhuǎn)角范圍為至
原動(dòng)件AB的轉(zhuǎn)動(dòng)范圍
3.2速度分析
將(3.1.0)對(duì)時(shí)間取導(dǎo)數(shù)可得:
(3.2.1)
令,, (3.2.2)
則有: (3.2.3)
為了消去 ,將(3.1.11)式每項(xiàng)各乘 得到:
(3.2.4)
?。?.2.3)式實(shí)部得:
同理,為了消去,將(3.1.11)式每項(xiàng)各乘 得到:
(3.2.5)
?。?.2.4)式實(shí)部得:
桿 上K點(diǎn)的速度可通過將式(3.1.11)對(duì)時(shí)間取導(dǎo)數(shù)求得:
- (3.2.6)
分別取式(3.2.6)的實(shí)部和虛部可得:
所以桿 上K點(diǎn)的速度大小為:
3.3 加速度分析
將式(3.2.3)對(duì)時(shí)間取導(dǎo)數(shù)得:
令:,, , 可得到:
--------------(3.3.1)
為了消去,將(3.3.1)式各項(xiàng)乘以,可得:
取其實(shí)部得:
同理,為了消去,將(3.3.1)式各項(xiàng)乘以得:
取其實(shí)部得:
將式(3.2.6)對(duì)時(shí)間取導(dǎo)數(shù)可以確定K點(diǎn)的加速度得;
(3.3.2)
分別取式(3.3.2)的實(shí)部和虛部可得:
所以桿 上K點(diǎn)的加速度大小為:
4 平面四桿機(jī)構(gòu)連桿曲線分類
平面四桿機(jī)構(gòu)是連桿機(jī)構(gòu)的基本形式,因此四桿機(jī)構(gòu)連桿曲線的研究就具有普遍的意義。根據(jù)相鄰兩桿之間能否作整周轉(zhuǎn)動(dòng),平面四桿機(jī)構(gòu)分為grashof和Non-grashof機(jī)構(gòu)。Grashof機(jī)構(gòu)研究已經(jīng)較為成熟,以下主要就Non-grashof機(jī)構(gòu)進(jìn)行研究分析。
Non-grashof機(jī)構(gòu)的連桿曲線的形狀豐富多樣,以Non-grashof機(jī)構(gòu)連桿曲線的幾何特征,如結(jié)點(diǎn)、回轉(zhuǎn)數(shù)、變曲點(diǎn)、曲率極大點(diǎn)等作為分類基準(zhǔn),對(duì)它進(jìn)行自動(dòng)分類。
4.1曲率K
根據(jù)Bobillier’s作圖法算得曲率半徑的倒數(shù),并考慮了連桿曲線上點(diǎn)移動(dòng)方向的量作為曲線上一點(diǎn)曲率 。用曲率的絕對(duì)值極大點(diǎn)作為曲率極大點(diǎn),曲率為零的點(diǎn)作為變曲點(diǎn) 。
圖4-1作圖法
根據(jù)Bobillier’s作圖法算出的曲率半徑的倒數(shù)。對(duì)于原動(dòng)件角位移的增加,考慮到K的移動(dòng)方向與曲率中心G的位置關(guān)系,并得到了帶有正負(fù)號(hào)的曲率。
作圖法具體步驟如下:
(1)、作直線DA,與直線CB相交于點(diǎn)P;作直線AB,與直線CD相交于點(diǎn)Q。
(2)、使,連接QK,作直線QF與QK的夾角等于。
(3)、連接DF并與QK的延長(zhǎng)線相交與點(diǎn)G,則點(diǎn)G即為所求的曲率中心,因此曲率半徑,曲率則為 。
4.2 弧長(zhǎng)S
當(dāng)原動(dòng)件的原動(dòng)角θ1=θ10時(shí)的從連桿曲線上的點(diǎn)開始量得的曲線的弧長(zhǎng),由下列數(shù)值積分求得:
(4.1)
4.3 回轉(zhuǎn)數(shù)(m)
用曲率的變化量分割弧長(zhǎng)所得的比率作為曲線的回轉(zhuǎn)數(shù)(m),用0、1、2來表示。
圖4-2
4.4 結(jié)點(diǎn)
4.4.1 二重點(diǎn)的計(jì)算
平面四桿機(jī)構(gòu)ABCD的機(jī)構(gòu)參數(shù)及角位移如圖4.7所示。連桿上的任意點(diǎn)K坐標(biāo)
圖4-3
可用下列式子求出:
(4.11)
(4.12)
或者:
(4.13)
(4.14)
從式(4.11)、(4.12)和式(4.13)、(4.14)中消去后整理得下式:
(4.15)
(4.16)
在連桿曲線的二重點(diǎn)處,有兩個(gè)角位移與之對(duì)應(yīng)。所以,由上兩式可得成為二重點(diǎn)的必要條件式如下:
整理后得到下式:
(4.17)
連桿曲線的二重點(diǎn)是由式 (4.17)和曲線的交點(diǎn)共同決定的。在連桿曲線的二重點(diǎn)處,原動(dòng)件的角位移和連桿的角位移還必須滿足下列關(guān)系式(4.18)和(4.19):
(4.18)
式中:
(4.19)
式中:
對(duì)于平面四桿機(jī)構(gòu)來說,滿足式(4.18)和(4.19)是二重點(diǎn)位置關(guān)系的必要條件。
4.4.2 結(jié)點(diǎn)的計(jì)算
grashof 機(jī)構(gòu)的連桿曲線由兩條閉曲線構(gòu)成,因此,二重點(diǎn)是兩條曲線的交點(diǎn)(單純交點(diǎn)),還是一條曲線自身的交點(diǎn)(結(jié)點(diǎn)),需要進(jìn)行判斷,而Non-grashof機(jī)構(gòu)的連桿曲線是一條閉曲線,因此,二重點(diǎn)全部是結(jié)點(diǎn)。原動(dòng)件的角位移的函數(shù)式用下式來考慮:
(4.20)
式中:
(4.21)
當(dāng)F=0的情況下,角位移的值即為二重點(diǎn)的位置。從變化到,從變化到,在變化時(shí)F值的符號(hào)變化的次數(shù)變化的次數(shù)為結(jié)點(diǎn)的個(gè)數(shù)。因此,的的值為結(jié)點(diǎn)的位置。
根據(jù)式(4.20),四桿機(jī)構(gòu)的連桿的角位移可表示如下:
(4.22)
式中:
(4.23)
滿足式(4.20)和(4.22)是四桿機(jī)構(gòu)二重點(diǎn)位置的必要條件。
由式(4.20)和(4.22),和可以分別表示為:
(4.24)
(4.25)
將式(4.24)和(4.25)同時(shí)消去可以得到下式:
(4.26)
再將式(4.21)和(4.23)代入上式,整理得:
(4.27)
式中:
在式(4.27)中,令,該方程就變成六次方程式,將該方程的實(shí)根,代入式(4.24)和(4.25)中就可以求得在二重點(diǎn)位置時(shí)連桿上的角位移,然后從下式就可以確定二重點(diǎn)的坐標(biāo)。
(4.28)
(4.29)
因?yàn)橐粋€(gè)二重點(diǎn)處的值有兩個(gè),條件式(4.27)具有2、4、6個(gè)實(shí)根,二重點(diǎn)分別有1、2、3個(gè)存在,這個(gè)條件式可用數(shù)學(xué)的方法求得實(shí)際的實(shí)根值。
4.4.3 結(jié)點(diǎn)的識(shí)別
式(4.17)的實(shí)根為偶數(shù)時(shí),給定同一個(gè)二重點(diǎn)的兩個(gè)值與此對(duì)應(yīng)的的值分別為。四桿機(jī)構(gòu)的連桿和從動(dòng)件轉(zhuǎn)向是否相反,可用它們之間的夾角的正弦符號(hào)來考察,即相對(duì)于二重點(diǎn)的機(jī)構(gòu)的兩個(gè)位置。
(4.30)
當(dāng)上式成立時(shí),這時(shí)二重點(diǎn)是一個(gè)閉合曲線自身的交點(diǎn)(即結(jié)點(diǎn))。
(4.31)
則當(dāng)上式成立時(shí),相對(duì)于二重點(diǎn)機(jī)構(gòu)有不同的兩個(gè)位置。這時(shí)二重點(diǎn)是兩個(gè)閉合曲線的交點(diǎn)(單純交點(diǎn))。
4.5 變曲點(diǎn)、曲率極大點(diǎn)與極小點(diǎn)
4.5.1 變曲點(diǎn)
連桿曲線上曲率為零的點(diǎn)為變曲點(diǎn),變曲點(diǎn)由曲率曲線與軸的交點(diǎn)來決定,在實(shí)際計(jì)算中,使的值在其變化范圍內(nèi)變化,求出曲率的符號(hào)變化區(qū)間,根據(jù)區(qū)間縮小法來確定變曲點(diǎn)的位置。
圖4.5 曲率曲線與變曲點(diǎn)
4.5.2 曲率極大點(diǎn)與極小點(diǎn)
連桿曲線上曲率的絕對(duì)值最大的點(diǎn)為曲率極大點(diǎn),絕對(duì)值最小的點(diǎn)為曲率極小點(diǎn)。
原動(dòng)件角位移從到按設(shè)定的步長(zhǎng)變化時(shí),與對(duì)應(yīng)的連桿上的K點(diǎn)的曲率用Bobillier’s定理求出,曲率曲線與軸相交的位置,形成的微小區(qū)間,用下面函數(shù)式(4.32)來判別其符號(hào):
(4.32)
即時(shí)的區(qū)間內(nèi)的變區(qū)點(diǎn)是存在的。
曲率曲線就極值位置是在微小區(qū)間利用下式來判別符號(hào):
(4.33)
即時(shí)區(qū)間內(nèi)存在曲率極大點(diǎn)或曲率極小點(diǎn)。
在時(shí)的區(qū)間內(nèi)把曲率極大點(diǎn)或曲率極小點(diǎn)用式(4.34)來進(jìn)行符號(hào)判別:
(4.34)
即時(shí)是曲率極大點(diǎn),當(dāng)時(shí)為曲率極小點(diǎn)。
4.6 機(jī)構(gòu)數(shù)據(jù)庫(kù)的建立
利用隨機(jī)函數(shù)發(fā)生法,使隨機(jī)數(shù)在區(qū)間內(nèi)取值,用下式(4.35)在區(qū)間確定連桿機(jī)構(gòu)的桿長(zhǎng)。
(4.35)
表示連桿上任意點(diǎn)的位置的參數(shù),在以為邊的正方形內(nèi)確定,機(jī)構(gòu)參數(shù)用下式(4.36)和(4.37)決定。
(4.36)
(4.37)
通過上述方法建立連桿機(jī)構(gòu)數(shù)據(jù)庫(kù)。
4.7 連桿曲線的分類結(jié)果
對(duì)數(shù)據(jù)庫(kù)中的10萬個(gè)Non-grashof機(jī)構(gòu)的連桿曲線,用本文提出的分類基準(zhǔn)進(jìn)行了識(shí)別,圖4.9舉例說明了曲線分類代號(hào)的意義,順序依次為:表示Non-grashof機(jī)構(gòu)的編號(hào)、結(jié)點(diǎn)數(shù)、曲線的回轉(zhuǎn)數(shù)、變曲點(diǎn)數(shù)、曲率極大點(diǎn)數(shù),其下面的值表示該曲線中出現(xiàn)
圖4.6 連桿曲線的分類代號(hào)
的百分率,曲線出現(xiàn)的百分率是根據(jù)該種曲線在10萬個(gè)連桿曲線中出現(xiàn)的概率計(jì)算的,分類結(jié)果如表4.1所示,分類后的部分Non-grashof機(jī)構(gòu)的連桿曲線如圖4.10所示。
類型代號(hào)
出現(xiàn)率
類型代號(hào)
出現(xiàn)率
類型代號(hào)
出現(xiàn)率
N0120
1.28
N1054
0.74
N2166
0.17
N0130
0.52
N1064
1.62
N2176
0.58
N1022
5.01
N1074
0.89
N2186
0.60
N1032
10.97
N1044
0.71
N2196
0.27
N1042
14.50
N1054
5.50
N3266
0.06
N1052
5.63
N1064
2.63
N3276
0.26
N1062
3.27
N0174
5.50
N3286
0.38
N1072
0.05
N2154
0.17
N3296
0.49
N0132
18.93
N2162
0.70
N3076
0.04
N0142
9.32
N2174
0.35
N1088
0.16
N0152
1.93
N2184
0.06
N1098
0.09
N0162
0.08
N3054
0.26
N0188
0.16
N2132
0.53
N3064
0.51
N2188
0.10
N2142
0.72
N1066
0.42
N2198
0.11
N2152
1.86
N1076
0.73
N3052
0.37
N2162
0.67
N1086
2.25
N0176
0.16
N2172
0.14
N1096
0.13
N10A8
0.05
N3042
2.24
N0166
0.17
N21A8
0.07
表4.1 Non-grashof機(jī)構(gòu)的連桿曲線的分類結(jié)果
通過對(duì)雙搖桿機(jī)構(gòu)的連桿曲線的自動(dòng)分類問題的研究,可以得到以下結(jié)論:
1、 Non-grashof機(jī)構(gòu)的連桿曲線可分為56種類型。
2、 連桿曲線中N1022是基本曲線,隨著基本曲線變化階段的增加,曲線的出現(xiàn)率降低。
3、 Non-grashof機(jī)構(gòu)的連桿曲線的形態(tài)豐富,結(jié)點(diǎn)的個(gè)數(shù)最多為3個(gè),回轉(zhuǎn)數(shù)最多為2。
4、 分類結(jié)果圖:
52
5 平面連桿機(jī)構(gòu)的運(yùn)動(dòng)仿真
在連桿機(jī)構(gòu)中,當(dāng)原動(dòng)件以同樣的運(yùn)動(dòng)規(guī)律運(yùn)動(dòng)時(shí),如果改變各構(gòu)件的相對(duì)長(zhǎng)度關(guān)系,便可使從動(dòng)件得到不同的運(yùn)動(dòng)規(guī)律。在連桿機(jī)構(gòu)中,連桿上的各不同點(diǎn)的軌跡是各不同形狀的曲線,而且隨著各構(gòu)件的相對(duì)長(zhǎng)度關(guān)系的改變,這些連桿曲線的形狀也將改變,從而可以得到各種不同形狀的曲線,我們可以利用這些曲線來滿足不同軌跡的要求。
從研究方法來說,優(yōu)化方法和計(jì)算機(jī)輔助設(shè)計(jì)方法的應(yīng)用已成為研究連桿機(jī)構(gòu)的重要方法,并已相應(yīng)地編制出大量的適用范圍廣、計(jì)算機(jī)時(shí)少、使用方便的通用軟件。隨著計(jì)算技術(shù)的提高和現(xiàn)代數(shù)學(xué)工具的日益完善,很多用一般常規(guī)方法不易解決甚至無法解決的復(fù)雜的平面連桿機(jī)構(gòu)設(shè)計(jì)問題可能會(huì)逐步得到解決。因而平面連桿機(jī)構(gòu)的應(yīng)用一定會(huì)更為廣泛。以下主要介紹仿真軟件的編程及應(yīng)用。
5.1程序運(yùn)行界面及仿真程序:
圖5-1 Form1運(yùn)行界面
說明:
控件類型
控件名稱
屬性名稱
屬性值
Label
Label1
Caption
平面四桿機(jī)構(gòu)運(yùn)動(dòng)仿真與分析
CommandButton
CommandButton1
Caption
仿真與分析&a
CommandButton
CommandButton2
Caption
使用說明&e
CommandButton
CommandButton3
Caption
退出(Esc)
Private Sub Command1_Click()
Form1.Hide
Form2.Show
End Sub
Private Sub Command2_Click()
Form1.Hide
Form3.Show
End Sub
Private Sub Command3_Click()
End
圖5-2 Form2運(yùn)行界面
說明:
控件類型
控件名稱
功能
OptionButton
OptionButton1
原動(dòng)件順時(shí)針轉(zhuǎn)動(dòng)
OptionButton
OptionButton2
原動(dòng)件逆時(shí)針轉(zhuǎn)動(dòng)
OptionButton
OptionButton3
鉸接點(diǎn)B、C、D順時(shí)針排列
OptionButton
OptionButton4
鉸接點(diǎn)B、C、D逆時(shí)針排列
SSTab
SSTab1
運(yùn)動(dòng)分析結(jié)果選項(xiàng)卡
Label
LabNAME
顯示平面連桿機(jī)構(gòu)的分類結(jié)果
CommandButton
Command1
開始
CommandButton
Command2
說明
CommandButton
Command4
返回上一個(gè)界面
CommandButton
Command5
退出
備注:文本框控件及標(biāo)簽數(shù)量較多,不一一列舉。
主要程序:
Const PI = 3.1415926535
Const DTR = PI / 180 '定義單位弧度 VB三角函數(shù)均以弧度計(jì)算
Dim a0 As Single: Dim a1 As Single '桿長(zhǎng)定義
Dim a2 As Single: Dim a3 As Single
Dim a4 As Single: Dim a5 As Single
Dim V1 As Single: Dim V2 As Single 'V1 ,V2,V3 為各桿角度,VV為定位K點(diǎn)的夾角,屬輸入值,單位 :度
Dim V3 As Single: Dim VV As Single
Dim XA As Single: Dim YA As Single 'XA 為A點(diǎn)橫坐標(biāo),YA為A點(diǎn)縱坐標(biāo),依次類推
Dim XB As Single: Dim YB As Single
Dim XC As Single: Dim YC As Single
Dim XD As Single: Dim YD As Single
Dim XK As Single: Dim YK As Single
Dim MM As Single: Dim NN As Single 'Non-grashof 機(jī)構(gòu) 的向外和向里的擺動(dòng)范圍余弦
Dim VV1 As Single: Dim VV2 As Single '為連桿的轉(zhuǎn)動(dòng)(擺動(dòng))范圍角
Dim XXK(1000) As Single: Dim YYK(1000) As Single
Dim V1_STEP As Single '原動(dòng)件轉(zhuǎn)動(dòng)的轉(zhuǎn)角步長(zhǎng)
Dim ZX As Integer '轉(zhuǎn)向
Dim BCD As Integer 'BCD排列方式
Dim K_Num As Integer
Dim BiLi As Integer '比例
Dim SJ As Single: Dim SJF As Single: Dim ARC As Integer '迭代法計(jì)算弧長(zhǎng)的參數(shù)
Dim ADAC, ADAS, ADA1, ADR1, ADS1, ADT1, ADA2, FC1, GA, PHT, XBT, YBT, THT, XCT, YCT, PST, AT, BT, CTFC2, GCI, FCMM, GCMM As Single
Dim XO, YP, XQ, YQ, XF, YF, QLA4, QLA3, QLA2, QL3, QL2, QL1, QLR, QLQ2, QLQ1, SZ, QLKM, PPP As Single
Dim ND As Integer
Dim QLK(5000) As Single: Dim C2(5000) As Single
Dim HZM, HZM1, HZM11, HZM12, HZMF As Single '回轉(zhuǎn)數(shù)
Dim dX_dV1, dY_dV1 As Single '微分表示形式
Dim FG0, H1, QLK1, QLK2, QLK3, HKT, KKD, KKS As Single
Private Sub Form_Load() '加載,初始化
V1_STEP = 1
Picture1.ScaleTop = 4000
Picture1.ScaleLeft = -3200
Picture1.ScaleHeight = -6735
Picture1.ScaleWidth = 8775
Picture2.ScaleTop = 4000
Picture2.ScaleLeft = -4387.5
Picture2.ScaleHeight = -6735
Picture2.ScaleWidth = 8775
Picture3.ScaleTop = 1500
Picture3.ScaleLeft = -300
Picture3.ScaleHeight = -3000
Picture3.ScaleWidth = 4150
Option1.Value = True
Option4.Value = True
End Sub
Private Sub Command1_Click() '開始按紐
SJ = 0: ND = 0: HZM = 0: HKT = 0: KKD = 0: KKS = 0: K_Num = 0: List.Clear '各特征參數(shù)初始化為0
'進(jìn)入仿真后 由于輸入尺寸各不同的關(guān)系,圖形可能會(huì)與各標(biāo)簽相重疊,故隱藏桿標(biāo)簽
Laba0.Visible = False
Laba1.Visible = False
Laba2.Visible = False
Laba3.Visible = False
Laba4.Visible = False
Laba5.Visible = False
LabA.Visible = False
LabB.Visible = False
LabC.Visible = False
LabD.Visible = False
LabK.Visible = False
a0 = Val(InputBox("請(qǐng)輸入a0桿長(zhǎng)", "輸入?yún)?shù)", 0))
a1 = Val(InputBox("請(qǐng)輸入a1桿長(zhǎng)", "輸入?yún)?shù)", 0))
a2 = Val(InputBox("請(qǐng)輸入a2桿長(zhǎng)", "輸入?yún)?shù)", 0))
a3 = Val(InputBox("請(qǐng)輸入a3桿長(zhǎng)", "輸入?yún)?shù)", 0))
a4 = Val(InputBox("請(qǐng)輸入a4桿長(zhǎng)", "輸入?yún)?shù)", 0))
VV = Val(InputBox("請(qǐng)輸入連桿夾角", "輸入?yún)?shù)", 0))
Label1.Caption = "a0=" & Format(a0, "######.###") & " " & "a1=" & Format(a1, "######.###") & " " & "a2=" & Format(a2, "######.###") & " " & "a3=" & Format(a3, "######.###") & " " & "a4=" & Format(a4, "######.###") & " " & "VV=" & Format(VV, "######.###")
Picture1.Cls
Picture2.Cls
Picture3.Cls
msg = MsgBox("請(qǐng)檢查輸入?yún)?shù)是否正確!", 3 + 48 + 0, "數(shù)據(jù)檢查")
If msg = vbYes Then
MsgBox "請(qǐng)點(diǎn)確定繼續(xù)"
End If
If msg = vbNo Then
msg = MsgBox("轉(zhuǎn)入重輸程序", 0, "注意只有一次重輸可能")
a0 = Val(InputBox("請(qǐng)輸入a0桿長(zhǎng)", "輸入數(shù)值參數(shù)", 0))
a1 = Val(InputBox("請(qǐng)輸入a1桿長(zhǎng)", "輸入數(shù)值參數(shù)", 0))
a2 = Val(InputBox("請(qǐng)輸入a2桿長(zhǎng)", "輸入數(shù)值參數(shù)", 0))
a3 = Val(InputBox("請(qǐng)輸入a3桿長(zhǎng)", "輸入數(shù)值參數(shù)", 0))
a4 = Val(InputBox("請(qǐng)輸入a4桿長(zhǎng)", "輸入數(shù)值參數(shù)", 0))
VV = Val(InputBox("請(qǐng)輸入夾角", "輸入?yún)?shù)", 0))
End If
Label1.Caption = "a0=" & Format(a0, "######.###") & " " & "a1=" & Format(a1, "######.###") & " " & "a2=" & Format(a2, "######.###") & " " & "a3=" & Format(a3, "######.###") & " " & "a4=" & Format(a4, "######.###") & " " & "VV=" & Format(VV, "######.###")
BiLi = Val(Form2.TextBiLi.Text)
'判斷最長(zhǎng)桿和最短桿
If a0 < a1 Then min1 = a0: max1 = a1 Else min1 = a1: max1 = a0
If a2 < a3 Then min2 = a2: max2 = a3 Else min2 = a3: max2 = a2
If min1 < min2 Then mina = min1 Else mina = min2
If max1 > max2 Then maxa = max1 Else maxa = max2
'判斷機(jī)構(gòu)是否存在和類型
suma = a0 + a1 + a2 + a3
If a0 + a1 + a2 <= a3 Or a0 + a1 + a3 <= a2 Or a0 + a2 + a3 <= a1 Or a1 + a2 + a3 <= a0 Then
LabNAME.Caption = "機(jī)構(gòu)不存在,無法進(jìn)行運(yùn)動(dòng)仿真及特征識(shí)別!"
Laba0.Visible = True
Laba1.Visible = True
Laba2.Visible = True
Laba3.Visible = True
Laba4.Visible = True
Laba5.Visible = True
LabA.Visible = True
LabB.Visible = True
LabC.Visible = True
LabD.Visible = True
LabK.Visible = True
Form2.Option1.Value = False
Form2.Option2.Value = False
Form2.Option3.Value = False
Form2.Option4.Value = False
ElseIf mina + maxa < suma / 2 And (a1 = mina Or a3 = mina) Then
LabNAME.Caption = "Grashof曲柄搖桿機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
ElseIf mina + maxa < suma / 2 And a0 = mina Then
LabNAME.Caption = "Grashof雙曲柄機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
ElseIf mina + maxa < suma / 2 And a2 = mina Then
LabNAME.Caption = "Grashof雙搖桿機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And (maxa = a1 Or maxa = a3) Then
LabNAME.Caption = "Non-Grashof內(nèi)外搖桿機(jī)構(gòu)": G_N = 2
ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And maxa = a2 Then
LabNAME.Caption = "Non-Grashof雙外搖桿機(jī)構(gòu)": G_N = 2
ElseIf mina + maxa > suma / 2 And 2 * maxa < suma And maxa = a0 Then
LabNAME.Caption = "Non-Grashof雙內(nèi)搖桿機(jī)構(gòu)": G_N = 2
ElseIf mina + maxa = suma / 2 And a1 = a3 And a0 = a2 Then
LabNAME.Caption = "平行四邊形機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
ElseIf mina + maxa = suma / 2 And a1 = mina And (a1 + a0 = a2 + a3 Or a1 + a2 = a0 + a3 Or a1 + a3 = a0 + a2) Then
LabNAME.Caption = "特殊曲柄搖桿機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
ElseIf mina + maxa = suma / 2 And a0 = mina And (a0 + a1 = a2 + a3 Or a0 + a2 = a1 + a3 Or a0 + a3 = a1 + a2) Then
LabNAME.Caption = "特殊雙曲柄機(jī)構(gòu)": G_N = 1: VV1 = 0: VV2 = 360
End If
If Option1.Value = True Then ZX = -1 '轉(zhuǎn)向系數(shù)
If Option2.Value = True Then ZX = 1 '轉(zhuǎn)向系數(shù)
If Option3.Value = True Then BCD = -1 'BCD排列系數(shù)
If Option4.Value = True Then BCD = 1 'BCD排列系數(shù)
Select Case G_N 'G_N : grashof 機(jī)構(gòu)判斷參數(shù),1是;2不是
Case 1
TextF_W.Text = "0°----------- 360°"
If Option1.Value = True Then ZX = -1 '轉(zhuǎn)向系數(shù)
If Option2.Value = True Then ZX = 1 '轉(zhuǎn)向系數(shù)
For V1 = 0 To 360 Step V1_STEP
SZ = 1: Call fangzhen: Picture1.Cls
If V1 = Int(V1) Then Form2.List.AddItem "θ1=" & Format$(V1) & "°" & " : " & "XK=" & Format$(XK, "###.00") & " : " & "YK=" & Format$(YK, "###.00") '輸出連桿曲線坐標(biāo)
Next V1
Case 2
MM = ((a2 - a3) ^ 2 - a0 ^ 2 - a1 ^ 2) / (2 * a0 * a1)
NN = ((a2 + a3) ^ 2 - a0 ^ 2 - a1 ^ 2) / (2 * a0 * a1)
If (1 - MM ^ 2) > 0 Then VV1 = Int((Atn((-MM) / Sqr(1 - MM ^ 2)) / PI) * 180 + 0.5) + 90
If (1 - NN ^ 2) > 0 Then VV2 = Int((Atn((-NN) / Sqr(1 - NN ^ 2)) / PI) * 180 + 0.5) + 90
Frame2.Enabled = True
Option1.Enabled = True
Option2.Enabled = True
Option3.Enabled = True
Option4.Enabled = True
If MM > -1 And NN < 1 Then
TextF_W.Text = Format$(VV1) & "°----------- " & Format$(VV2) & "°"
For V1 = VV2 To VV1 Step V1_STEP '初始加載時(shí)已設(shè)定 V1_STEP值
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls '可以在"運(yùn)動(dòng)仿真"選項(xiàng)卡中顯示運(yùn)動(dòng)軌跡 ; 接下語句為在"特征"選項(xiàng)卡中列表框顯示隨原動(dòng)件轉(zhuǎn)動(dòng)時(shí)(整數(shù)度)的K點(diǎn)軌跡坐標(biāo)
If V1 = Int(V1) Then Form2.List.AddItem "θ1=" & Format$(V1) & "°" & " : " & "XK=" & Format$(XK, "###.00") & " : " & "YK=" & Format$(YK, "###.00")
Next V1
For V1 = VV1 To VV2 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls
If V1 = Int(V1) Then Form2.List.AddItem "θ1=" & Format$(V1) & "°" & " : " & "XK=" & Format$(XK, "###.00") & " : " & "YK=" & Format$(YK, "###.00") '輸出連桿曲線坐標(biāo)
Next V1
For V1 = 360 - VV1 To 360 - VV2 Step V1_STEP
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls
If V1 = Int(V1) Then Form2.List.AddItem "θ1=" & Format$(V1) & "°" & " : " & "XK=" & Format$(XK, "###.00") & " : " & "YK=" & Format$(YK, "###.00") '輸出連桿曲線坐標(biāo)
Next V1
For V1 = 360 - VV2 To 360 - VV1 Step -V1_STEP
BCD = -1: SZ = -1: Call fangzhen: Picture1.Cls
If V1 = Int(V1) Then Form2.List.AddItem "θ1=" & Format$(V1) & "°" & " : " & "XK=" & Format$(XK, "###.00") & " : " & "YK=" & Format$(YK, "###.00") '輸出連桿曲線坐標(biāo)
Next V1
ElseIf MM <= -1 And NN < 1 Then
If MM = -1 Then
TextF_W.Text = Format$(VV2) & "°----------- " & Format$(360 - VV2) & "°"
For V1 =
收藏