平面四桿機(jī)構(gòu)的運(yùn)動分析(VB源代碼)
平面四桿機(jī)構(gòu)的運(yùn)動分析(VB源代碼),平面,機(jī)構(gòu),運(yùn)動,分析,vb,源代碼
南昌航空大學(xué)科技學(xué)院學(xué)士學(xué)位論文
1 序 言
連桿機(jī)構(gòu),是由許多剛性構(gòu)件通過低副聯(lián)結(jié)而成,也稱低副機(jī)構(gòu)。它是由機(jī)構(gòu)原動件與從動件之間都要通過連桿聯(lián)結(jié)和機(jī)架一起構(gòu)成傳動裝置,因此稱為連桿機(jī)構(gòu)。
低副面接觸的結(jié)構(gòu)使連桿機(jī)構(gòu)具有以下一些優(yōu)點(diǎn):運(yùn)動副單位面積所受壓力較小,且面接觸便于潤滑,故磨損減?。恢圃旆奖?,易獲得較高的精度;兩構(gòu)件之間的接觸是靠本身的幾何封閉來維系的,它不像凸輪機(jī)構(gòu)有時需利用彈簧等力封閉來保持接觸。同時,平面連桿機(jī)構(gòu)也有以下缺點(diǎn):一般情況下,只能近似實(shí)現(xiàn)給定的運(yùn)動規(guī)律或運(yùn)動軌跡,且設(shè)計較為復(fù)雜;當(dāng)給定的運(yùn)動要求較多或較復(fù)雜時,需要的構(gòu)件數(shù)和運(yùn)動副個數(shù)往往較多,這樣就使機(jī)構(gòu)結(jié)構(gòu)復(fù)雜,工作效率降低,不僅發(fā)生自鎖的可能性增加,而且機(jī)構(gòu)運(yùn)動規(guī)律對制造、安裝誤差的敏感性增加;機(jī)構(gòu)中作復(fù)雜運(yùn)動和作往復(fù)運(yùn)動的構(gòu)件所產(chǎn)生的慣性力難以平衡,在高速時將引起較大的振動和動載荷,故連桿機(jī)構(gòu)常用于速度較低的場合。以四桿機(jī)構(gòu)為例,四桿機(jī)構(gòu)根據(jù)其兩個連架桿的運(yùn)動形式的不同,可以分為曲柄搖桿機(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)件之間的相對運(yùn)動為平面運(yùn)動或空間運(yùn)動,將其分為平面連桿機(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)動形式的轉(zhuǎn)換,例如它可把原動件的轉(zhuǎn)動轉(zhuǎn)換成從動件某種規(guī)律的往復(fù)移動或擺動,反之也可把往復(fù)移動或擺動轉(zhuǎn)換成連續(xù)運(yùn)動;此外,應(yīng)用在連桿上點(diǎn)的軌跡可以完成工程上特殊的曲線運(yùn)動要求.
因此,選取連桿機(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è)化國家的先進(jìn)技術(shù),為本國新機(jī)構(gòu),新機(jī)器的二次設(shè)計,二次開發(fā)提供理論基礎(chǔ)。
3.提出在技術(shù)革新和設(shè)備改造中提出的新機(jī)構(gòu),新機(jī)器的獨(dú)特結(jié)構(gòu)和創(chuàng)新構(gòu)思,是其成為成熟的先進(jìn)技術(shù)。
4.簡介一些新機(jī)構(gòu),新機(jī)器實(shí)用性結(jié)構(gòu)及技術(shù)的應(yīng)用實(shí)例,說明理論對實(shí)踐的指導(dǎo)作用。
5.為從事機(jī)械設(shè)計,制造的工程技術(shù)人員的知識,技術(shù)更新開闊視野提供參考資料。
6.探索平面連桿機(jī)構(gòu)研究的新方法,新思路。
1.2平面連桿機(jī)構(gòu)的運(yùn)動學(xué)分析
平面連桿機(jī)構(gòu)運(yùn)動分析的方法有很多,主要有圖解法、解析法和實(shí)驗法三種。其中,圖解法包括速度瞬心法和相對速度圖解法,形象直觀,對構(gòu)件少的簡單的平面連桿機(jī)構(gòu),一般情況下用圖解法比較簡單。解析法直接用機(jī)構(gòu)已知參數(shù)和要求的未知量建立的數(shù)學(xué)模型進(jìn)行求解,也是一種比較好的方法。作圖法和實(shí)驗法工作量大,設(shè)計精度低,僅適用于對機(jī)構(gòu)精度要求不高的場合。
平面連桿機(jī)構(gòu)的運(yùn)動學(xué)分析的過程包括建立運(yùn)動約束方程和解方程兩部分。平面連桿機(jī)構(gòu)的運(yùn)動學(xué)分析,就是對機(jī)構(gòu)的位移、軌跡、速度、加速度進(jìn)行分析。[3]這里研究的內(nèi)容是不考慮機(jī)構(gòu)的外力及構(gòu)件的彈性變形等影響,僅僅研究在已知原動件的運(yùn)動規(guī)律的條件下,分析機(jī)構(gòu)中其余構(gòu)件上各點(diǎn)的位移、軌跡、速度、加速度,有了這些運(yùn)動參數(shù),才能分析、評價現(xiàn)有機(jī)械的工作性能。
1.3 本論文所作的主要工作:
此課題的主要目標(biāo)是系統(tǒng)地對平面四桿機(jī)構(gòu)進(jìn)行研究,從而來獲得連桿機(jī)構(gòu)運(yùn)動學(xué)性能和動力學(xué)性能,以便在實(shí)際中得到應(yīng)用。主要特點(diǎn)是在各個設(shè)計進(jìn)度中將會大量應(yīng)用計算機(jī)高級語言編程來輔助設(shè)計和仿真平面四桿機(jī)構(gòu),主要體現(xiàn)在四個方面:
1 平面四桿機(jī)構(gòu)連桿點(diǎn)的軌跡坐標(biāo)
2 連桿軌跡曲線分類基準(zhǔn)的確定
3 軌跡曲線的分類及運(yùn)動領(lǐng)域識別
4 運(yùn)動學(xué)仿真軟件編制
具體來說,在本論文中,將在第三章平面四桿機(jī)構(gòu)的分類里主要是進(jìn)行連桿基股上任意點(diǎn)的軌跡計算。在第四章連桿曲線的幾何特征及其分類一章里,主要是對連桿曲線的幾何特征(包括曲率、弧長、回轉(zhuǎn)數(shù)、結(jié)點(diǎn)、變曲點(diǎn)等)進(jìn)行分析,并根據(jù)分析結(jié)果對連桿曲線進(jìn)行分類,建立機(jī)構(gòu)數(shù)據(jù)庫。在第五章平面連桿機(jī)構(gòu)的運(yùn)動仿真一章中,主要是運(yùn)用矢量算法對連桿的速度和加速度進(jìn)行計算,并根據(jù)結(jié)果對四桿機(jī)構(gòu)進(jìn)行VB運(yùn)動模擬。
2 平面四桿機(jī)構(gòu)的類型
2.1分類概念
在平面機(jī)構(gòu)的范疇,最簡單的低配對機(jī)構(gòu)是四連桿。 四連桿包含四個桿件及四個接合配對,如圖2.1。[4]
圖2.1. 四連桿機(jī)構(gòu)
?????如前所言,機(jī)構(gòu)中應(yīng)有固定桿,此桿通常與地相連,或代表地的狀態(tài)。在固定桿之相對桿稱為聯(lián)結(jié)桿(coupler link);與其兩端相連的則稱為側(cè)連桿(side links)。 一個相對于第二桿可以自由回轉(zhuǎn)360度之連桿,稱為對第二桿(不一定固定桿)旋轉(zhuǎn)(revolve)。而若所有四連桿能變成聯(lián)機(jī)時,此稱為變異點(diǎn)(change point)。有關(guān)連桿之重要觀念有:1.曲柄(Crank): 相對于固定桿作旋轉(zhuǎn)之側(cè)桿稱為曲柄。2.搖桿(Rocker): 任何連桿不作旋轉(zhuǎn)之連桿稱為搖桿。3.曲柄搖桿機(jī)構(gòu)(Crank-rocker mechanism): 在四連桿系統(tǒng)中,若較短的側(cè)桿旋轉(zhuǎn),另一側(cè)桿擺動時,此稱為曲柄搖桿機(jī)構(gòu)。4.雙曲柄機(jī)構(gòu)(Double-crank mechanism):在四連桿系統(tǒng)中,若兩側(cè)連桿均作回轉(zhuǎn)時,稱為雙曲柄機(jī)構(gòu)。5.雙搖桿機(jī)構(gòu)(Double-rocker mechanism): 在四連桿系統(tǒng)中,若兩側(cè)連桿均為擺動狀況時,此稱為雙搖桿機(jī)構(gòu)。
表2-1 鉸鏈四桿機(jī)構(gòu)及其演化主要形式對比
固定構(gòu)件
四桿機(jī)構(gòu)
含一個移動副的四桿機(jī)構(gòu)(e=0)
4
曲柄搖
桿機(jī)構(gòu)
曲柄滑
塊機(jī)構(gòu)
1
雙曲柄
機(jī)構(gòu)
轉(zhuǎn)動導(dǎo)
桿機(jī)構(gòu)
2
曲柄搖
桿機(jī)構(gòu)
搖塊
機(jī)構(gòu)
擺動導(dǎo)
桿機(jī)構(gòu)
3
雙搖桿
機(jī)構(gòu)
定塊
機(jī)構(gòu)
2.2 分類
? 在將四連桿機(jī)構(gòu)作分類前,需先介紹幾個基本語法。在四連桿系統(tǒng)中,連桿之定義為兩接合間之線段,而其特性可用文字表示如下:
s = 最長桿之長度
l = 最短桿之長度
p, q = 中間長度桿之長度
葛拉索定理(Grashof's theorem )
1. 在四連桿機(jī)構(gòu)中若下述為真則至少有一桿為旋轉(zhuǎn)桿:
s + l <= p + q???????????????????????????? (2-1)
2. 若下述為真,則所有三個活動連桿必屬搖桿:
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可知,一個機(jī)構(gòu)若含有曲柄結(jié)構(gòu),則其最長桿與最短桿之和必須小于或等于其它兩桿之和。但是這僅是必要條件,而非充分條件。能夠符合這項條件之連桿可能有三類:1.當(dāng)最短連桿為側(cè)桿時,此機(jī)構(gòu)為曲柄搖桿機(jī)構(gòu),而最短連桿將成為曲柄。2.當(dāng)最短連桿成為固定桿時,此系統(tǒng)變成為雙搖桿機(jī)構(gòu)。3.當(dāng)最短連桿為聯(lián)結(jié)桿時,此機(jī)構(gòu)為雙搖桿機(jī)構(gòu)。
四連桿組類型:
葛氏機(jī)構(gòu)(Grashof mechanism)
對于一個四連桿運(yùn)動鏈,令最短桿的桿長為rs,最長桿的桿長為rl,其余兩桿的桿長為rp和rq。若桿長的關(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)動分析
3 .1. 1 連桿上任意點(diǎn)的軌跡分析
如圖所示,在直角坐標(biāo)系XOY內(nèi),平面四桿機(jī)構(gòu)的機(jī)架DA、原動件AB、連桿BC及從動件CD的長度分別為a0、a1、a2和a3,原動件、連桿及從動件的角位移分別為、和。
圖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)
因而由上式的兩個解可以得出:
(3.1.5)
式中:
式(3.1.5)中應(yīng)該取“+”號;當(dāng)機(jī)構(gòu)的初始位置為時,式(3.1.5)中應(yīng)該取“-”號。
因此,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)動分析
與Grashof機(jī)構(gòu)不同, Non-grashof機(jī)構(gòu)的原動件存在著擺角范圍,以下對其進(jìn)行分析:
圖 3.1.1 AB桿逆時針旋轉(zhuǎn)條件 圖 3.4 AB桿順時針旋轉(zhuǎn)條件
對圖3.1.1,由三角形原理,AB的轉(zhuǎn)動上逆時針旋轉(zhuǎn)受到限制,則轉(zhuǎn)角范圍為至
原動件AB的轉(zhuǎn)動范圍:
對圖3.1.1,由三角形原理,AB的轉(zhuǎn)動上逆時針旋轉(zhuǎn)受到限制,則轉(zhuǎn)角范圍為至
原動件AB的轉(zhuǎn)動范圍
3.2速度分析
將(3.1.0)對時間取導(dǎo)數(shù)可得:
(3.2.1)
令,, (3.2.2)
則有: (3.2.3)
為了消去 ,將(3.1.11)式每項各乘 得到:
(3.2.4)
?。?.2.3)式實(shí)部得:
同理,為了消去,將(3.1.11)式每項各乘 得到:
(3.2.5)
?。?.2.4)式實(shí)部得:
桿 上K點(diǎn)的速度可通過將式(3.1.11)對時間取導(dǎo)數(shù)求得:
- (3.2.6)
分別取式(3.2.6)的實(shí)部和虛部可得:
所以桿 上K點(diǎn)的速度大小為:
3.3 加速度分析
將式(3.2.3)對時間取導(dǎo)數(shù)得:
令:,, , 可得到:
--------------(3.3.1)
為了消去,將(3.3.1)式各項乘以,可得:
取其實(shí)部得:
同理,為了消去,將(3.3.1)式各項乘以得:
取其實(shí)部得:
將式(3.2.6)對時間取導(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)動,平面四桿機(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),對它進(jìn)行自動分類。
4.1曲率K
根據(jù)Bobillier’s作圖法算得曲率半徑的倒數(shù),并考慮了連桿曲線上點(diǎn)移動方向的量作為曲線上一點(diǎn)曲率 。用曲率的絕對值極大點(diǎn)作為曲率極大點(diǎn),曲率為零的點(diǎn)作為變曲點(diǎn) 。
圖4-1作圖法
根據(jù)Bobillier’s作圖法算出的曲率半徑的倒數(shù)。對于原動件角位移的增加,考慮到K的移動方向與曲率中心G的位置關(guān)系,并得到了帶有正負(fù)號的曲率。
作圖法具體步驟如下:
(1)、作直線DA,與直線CB相交于點(diǎn)P;作直線AB,與直線CD相交于點(diǎn)Q。
(2)、使,連接QK,作直線QF與QK的夾角等于。
(3)、連接DF并與QK的延長線相交與點(diǎn)G,則點(diǎn)G即為所求的曲率中心,因此曲率半徑,曲率則為 。
4.2 弧長S
當(dāng)原動件的原動角θ1=θ10時的從連桿曲線上的點(diǎn)開始量得的曲線的弧長,由下列數(shù)值積分求得:
(4.1)
4.3 回轉(zhuǎn)數(shù)(m)
用曲率的變化量分割弧長所得的比率作為曲線的回轉(zhuǎn)數(shù)(m),用0、1、2來表示。
圖4-2
4.4 結(jié)點(diǎn)
4.4.1 二重點(diǎn)的計算
平面四桿機(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)處,有兩個角位移與之對應(yīng)。所以,由上兩式可得成為二重點(diǎn)的必要條件式如下:
整理后得到下式:
(4.17)
連桿曲線的二重點(diǎn)是由式 (4.17)和曲線的交點(diǎn)共同決定的。在連桿曲線的二重點(diǎn)處,原動件的角位移和連桿的角位移還必須滿足下列關(guān)系式(4.18)和(4.19):
(4.18)
式中:
(4.19)
式中:
對于平面四桿機(jī)構(gòu)來說,滿足式(4.18)和(4.19)是二重點(diǎn)位置關(guān)系的必要條件。
4.4.2 結(jié)點(diǎn)的計算
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)。原動件的角位移的函數(shù)式用下式來考慮:
(4.20)
式中:
(4.21)
當(dāng)F=0的情況下,角位移的值即為二重點(diǎn)的位置。從變化到,從變化到,在變化時F值的符號變化的次數(shù)變化的次數(shù)為結(jié)點(diǎn)的個數(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)同時消去可以得到下式:
(4.26)
再將式(4.21)和(4.23)代入上式,整理得:
(4.27)
式中:
在式(4.27)中,令,該方程就變成六次方程式,將該方程的實(shí)根,代入式(4.24)和(4.25)中就可以求得在二重點(diǎn)位置時連桿上的角位移,然后從下式就可以確定二重點(diǎn)的坐標(biāo)。
(4.28)
(4.29)
因為一個二重點(diǎn)處的值有兩個,條件式(4.27)具有2、4、6個實(shí)根,二重點(diǎn)分別有1、2、3個存在,這個條件式可用數(shù)學(xué)的方法求得實(shí)際的實(shí)根值。
4.4.3 結(jié)點(diǎn)的識別
式(4.17)的實(shí)根為偶數(shù)時,給定同一個二重點(diǎn)的兩個值與此對應(yīng)的的值分別為。四桿機(jī)構(gòu)的連桿和從動件轉(zhuǎn)向是否相反,可用它們之間的夾角的正弦符號來考察,即相對于二重點(diǎn)的機(jī)構(gòu)的兩個位置。
(4.30)
當(dāng)上式成立時,這時二重點(diǎn)是一個閉合曲線自身的交點(diǎn)(即結(jié)點(diǎn))。
(4.31)
則當(dāng)上式成立時,相對于二重點(diǎn)機(jī)構(gòu)有不同的兩個位置。這時二重點(diǎn)是兩個閉合曲線的交點(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í)際計算中,使的值在其變化范圍內(nèi)變化,求出曲率的符號變化區(qū)間,根據(jù)區(qū)間縮小法來確定變曲點(diǎn)的位置。
圖4.5 曲率曲線與變曲點(diǎn)
4.5.2 曲率極大點(diǎn)與極小點(diǎn)
連桿曲線上曲率的絕對值最大的點(diǎn)為曲率極大點(diǎn),絕對值最小的點(diǎn)為曲率極小點(diǎn)。
原動件角位移從到按設(shè)定的步長變化時,與對應(yīng)的連桿上的K點(diǎn)的曲率用Bobillier’s定理求出,曲率曲線與軸相交的位置,形成的微小區(qū)間,用下面函數(shù)式(4.32)來判別其符號:
(4.32)
即時的區(qū)間內(nèi)的變區(qū)點(diǎn)是存在的。
曲率曲線就極值位置是在微小區(qū)間利用下式來判別符號:
(4.33)
即時區(qū)間內(nèi)存在曲率極大點(diǎn)或曲率極小點(diǎn)。
在時的區(qū)間內(nèi)把曲率極大點(diǎn)或曲率極小點(diǎn)用式(4.34)來進(jìn)行符號判別:
(4.34)
即時是曲率極大點(diǎn),當(dāng)時為曲率極小點(diǎn)。
4.6 機(jī)構(gòu)數(shù)據(jù)庫的建立
利用隨機(jī)函數(shù)發(fā)生法,使隨機(jī)數(shù)在區(qū)間內(nèi)取值,用下式(4.35)在區(qū)間確定連桿機(jī)構(gòu)的桿長。
(4.35)
表示連桿上任意點(diǎn)的位置的參數(shù),在以為邊的正方形內(nèi)確定,機(jī)構(gòu)參數(shù)用下式(4.36)和(4.37)決定。
(4.36)
(4.37)
通過上述方法建立連桿機(jī)構(gòu)數(shù)據(jù)庫。
4.7 連桿曲線的分類結(jié)果
對數(shù)據(jù)庫中的10萬個Non-grashof機(jī)構(gòu)的連桿曲線,用本文提出的分類基準(zhǔn)進(jìn)行了識別,圖4.9舉例說明了曲線分類代號的意義,順序依次為:表示Non-grashof機(jī)構(gòu)的編號、結(jié)點(diǎn)數(shù)、曲線的回轉(zhuǎn)數(shù)、變曲點(diǎn)數(shù)、曲率極大點(diǎn)數(shù),其下面的值表示該曲線中出現(xiàn)
圖4.6 連桿曲線的分類代號
的百分率,曲線出現(xiàn)的百分率是根據(jù)該種曲線在10萬個連桿曲線中出現(xiàn)的概率計算的,分類結(jié)果如表4.1所示,分類后的部分Non-grashof機(jī)構(gòu)的連桿曲線如圖4.10所示。
類型代號
出現(xiàn)率
類型代號
出現(xiàn)率
類型代號
出現(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é)果
通過對雙搖桿機(jī)構(gòu)的連桿曲線的自動分類問題的研究,可以得到以下結(jié)論:
1、 Non-grashof機(jī)構(gòu)的連桿曲線可分為56種類型。
2、 連桿曲線中N1022是基本曲線,隨著基本曲線變化階段的增加,曲線的出現(xiàn)率降低。
3、 Non-grashof機(jī)構(gòu)的連桿曲線的形態(tài)豐富,結(jié)點(diǎn)的個數(shù)最多為3個,回轉(zhuǎn)數(shù)最多為2。
4、 分類結(jié)果圖:
52
5 平面連桿機(jī)構(gòu)的運(yùn)動仿真
在連桿機(jī)構(gòu)中,當(dāng)原動件以同樣的運(yùn)動規(guī)律運(yùn)動時,如果改變各構(gòu)件的相對長度關(guān)系,便可使從動件得到不同的運(yùn)動規(guī)律。在連桿機(jī)構(gòu)中,連桿上的各不同點(diǎn)的軌跡是各不同形狀的曲線,而且隨著各構(gòu)件的相對長度關(guān)系的改變,這些連桿曲線的形狀也將改變,從而可以得到各種不同形狀的曲線,我們可以利用這些曲線來滿足不同軌跡的要求。
從研究方法來說,優(yōu)化方法和計算機(jī)輔助設(shè)計方法的應(yīng)用已成為研究連桿機(jī)構(gòu)的重要方法,并已相應(yīng)地編制出大量的適用范圍廣、計算機(jī)時少、使用方便的通用軟件。隨著計算技術(shù)的提高和現(xiàn)代數(shù)學(xué)工具的日益完善,很多用一般常規(guī)方法不易解決甚至無法解決的復(fù)雜的平面連桿機(jī)構(gòu)設(shè)計問題可能會逐步得到解決。因而平面連桿機(jī)構(gòu)的應(yīng)用一定會更為廣泛。以下主要介紹仿真軟件的編程及應(yīng)用。
5.1程序運(yùn)行界面及仿真程序:
圖5-1 Form1運(yùn)行界面
說明:
控件類型
控件名稱
屬性名稱
屬性值
Label
Label1
Caption
平面四桿機(jī)構(gòu)運(yùn)動仿真與分析
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
原動件順時針轉(zhuǎn)動
OptionButton
OptionButton2
原動件逆時針轉(zhuǎn)動
OptionButton
OptionButton3
鉸接點(diǎn)B、C、D順時針排列
OptionButton
OptionButton4
鉸接點(diǎn)B、C、D逆時針排列
SSTab
SSTab1
運(yùn)動分析結(jié)果選項卡
Label
LabNAME
顯示平面連桿機(jī)構(gòu)的分類結(jié)果
CommandButton
Command1
開始
CommandButton
Command2
說明
CommandButton
Command4
返回上一個界面
CommandButton
Command5
退出
備注:文本框控件及標(biāo)簽數(shù)量較多,不一一列舉。
主要程序:
Const PI = 3.1415926535
Const DTR = PI / 180 '定義單位弧度 VB三角函數(shù)均以弧度計算
Dim a0 As Single: Dim a1 As Single '桿長定義
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) 的向外和向里的擺動范圍余弦
Dim VV1 As Single: Dim VV2 As Single '為連桿的轉(zhuǎn)動(擺動)范圍角
Dim XXK(1000) As Single: Dim YYK(1000) As Single
Dim V1_STEP As Single '原動件轉(zhuǎn)動的轉(zhuǎn)角步長
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 '迭代法計算弧長的參數(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)系,圖形可能會與各標(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("請輸入a0桿長", "輸入?yún)?shù)", 0))
a1 = Val(InputBox("請輸入a1桿長", "輸入?yún)?shù)", 0))
a2 = Val(InputBox("請輸入a2桿長", "輸入?yún)?shù)", 0))
a3 = Val(InputBox("請輸入a3桿長", "輸入?yún)?shù)", 0))
a4 = Val(InputBox("請輸入a4桿長", "輸入?yún)?shù)", 0))
VV = Val(InputBox("請輸入連桿夾角", "輸入?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("請檢查輸入?yún)?shù)是否正確!", 3 + 48 + 0, "數(shù)據(jù)檢查")
If msg = vbYes Then
MsgBox "請點(diǎn)確定繼續(xù)"
End If
If msg = vbNo Then
msg = MsgBox("轉(zhuǎn)入重輸程序", 0, "注意只有一次重輸可能")
a0 = Val(InputBox("請輸入a0桿長", "輸入數(shù)值參數(shù)", 0))
a1 = Val(InputBox("請輸入a1桿長", "輸入數(shù)值參數(shù)", 0))
a2 = Val(InputBox("請輸入a2桿長", "輸入數(shù)值參數(shù)", 0))
a3 = Val(InputBox("請輸入a3桿長", "輸入數(shù)值參數(shù)", 0))
a4 = Val(InputBox("請輸入a4桿長", "輸入數(shù)值參數(shù)", 0))
VV = Val(InputBox("請輸入夾角", "輸入?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)
'判斷最長桿和最短桿
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)動仿真及特征識別!"
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è)定 V1_STEP值
BCD = 1: SZ = 1: Call fangzhen: Picture1.Cls '可以在"運(yùn)動仿真"選項卡中顯示運(yùn)動軌跡 ; 接下語句為在"特征"選項卡中列表框顯示隨原動件轉(zhuǎn)動時(整數(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 =
收藏