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