郭德偉
(1.紅河學院工學院,云南蒙自 661100;2.昆明理工大學機電工程學院,昆明 650093)
平面四桿機構運動線的Flash Action Script動態模擬
郭德偉1,2
(1.紅河學院工學院,云南蒙自 661100;2.昆明理工大學機電工程學院,昆明 650093)
采用Flash Action script技術對平面四桿機構的運動線做出了動態模擬,并對部分模擬線圖進行分析,指出了該模擬方法的優越性.
Action Script;四桿機構運動線;機械教學;動態模擬
Actionscript是Flash軟件中的腳本語言,憑借其生成的文件體積小、質量高、易于網絡傳播等特點,正受到人們更多的關注,而基于Action Script技術的虛擬仿真實驗也逐步應用到了各仿真實驗[1]及工程教學中[2,3].平面四桿機構是工程中廣泛使用的典型運動機構,而對該機構的運動線作出分析研究并進行模擬,對更好地理解和設計平面四桿機構有著重要的意義.本文在利用Flash Actionscript技術建立的平面四桿機構運動模型基礎上[4],進一步研究了該機構的運動情況,并對不同運動形式機構的運動線作出動態模擬,即用點的形式描述出了平面四桿機構的位移、速度和加速度隨原動件位移的變化關系,為四桿機構原理的驗證及設計提供了重要的參考.
由于Flash中坐標的方向,平面四桿機構簡圖如圖1所示,點A、B、C、D分別為機構節點,l1、l2、l3、l4分別為各桿長度,由用戶設定,AD設為水平機架,原動件AB以給定的角速度勻速運動.由于本研究建立在運動模型已建立的基礎上,運動過程中四個節點的坐標已經可以確定.根據平面四桿機構的運動規律[5],各桿運動關系調整如下:
連桿BC加速度

連架桿CD加速度


圖1 平面四桿機構簡圖
根據以上關系,在Flash軟件舞臺中建立一個360*360像素的區域,畫出縱橫柵格,讓一個周期的運動線盡量將主要部分顯示在該區域中.在該區域的左下角建立三個不同顏色的逐漸消失的軌跡點影片剪輯,分別命名為紅色的“ydx1”、綠色的“ydx2”和藍色的“ydx3”;建立17個動態文本框來標識縱橫坐標參數,變量名分別為“hzb1”~“hzb5”和“zzb1”~“zzb9”,及3個圖例顯示文本“tl”,各文本默認值如圖2所示;建立3個按鈕分別用來控制“位置線圖”、“速度線圖”和“加速度線圖”的切換.使用一幀動畫,主程序采用“set Interval”命令,每隔10毫秒讓增加 個角度(其中為輸入的轉速,度/秒),根據不同桿件長度判定情況,計算B、C、D各點的位置,再利用line畫線命令將各點用不同顏色的線連接起來形成各桿件.每10毫秒計算一次并重新劃線,實現機構的連續運動,同樣每10毫秒計算一次各桿件的位移、速度和加速度,用逐漸消失的軌跡點的坐標變化形成動態的機構運動線圖.

圖2 運動線顯示區域情況
主要Action Script程序如下:
duration = 10;
ydzb = 0;//橫坐標為默認值0~360
ydxt1 = 1; //默認位置線圖顯示
ydxt2 = 0;
ydxt3 = 0;
function xh():Void {
…//機構運動程序略
theta1 = -i;//負號將旋轉方向改成傳統逆時針方向
if (theta1<0) {
}
if (xc>=xb && yc<=yb)
{theta2 = Math.atan((yb-yc)/(xc-xb))*180/Math.PI;}if (xc {theta2 = 180-Math.atan((yb-yc)/(xb-xc))*180/Math.PI;} if (xc {theta2 = 180+Math.atan((yc-yb)/(xb-xc))*180/Math.PI;} if (xc>=xb && yc>yb){theta2 = 360-Math.atan((yc-yb)/(xc-xb))*180/Math.PI;} if (xc>=xd && yc<=yd) {theta3 = Math.atan((yd-yc)/(xc-xd))*180/Math.PI;} if (xc {theta3 = 180-Math.atan((yd-yc)/(xd-xc))*180/Math.PI;} if (xc {theta3 = 180+Math.atan((yc-yd)/(xd-xc))*180/Math.PI;} if (xc>=xd && yc>yd) {theta3 = 360-Math.atan((yc-yd)/(xc-xd))*180/Math.PI;} if (ydzb == 180) { hzb1 = -180; hzb2 = -90; hzb3 = 0; hzb4 = 90; hzb5 = 180; } else { hzb1 = 0; hzb2 = 90; hzb3 = 180; hzb4 = 270; hzb5 = 360; }// 當機構為雙搖桿機構的一種特殊情況(l1+l4>l2+l3)時,橫坐標范圍-180~180 omega1 = w*Math.PI/180; omega2 = -omega1*l1*Math.sin((theta1-theta3)*Math.PI/180)/(l2*Math.sin((theta2-theta3)*Math.PI/180)); //速度 omega3 = omega1*l1*Math.sin((theta1-theta2)*Math.PI/180)/(l3*Math.sin((theta3-theta2)*Math.PI/180));//速度 alpha2 = (-Math .pow(omega1, 2)*l1*Math.cos((theta1-theta3)*Math.PI/180)-Math.pow(omega2,2)*l2*Math.cos((theta2-theta3)*Math.PI/180)+Math.pow(omega3, 2)*l3)/(l2*Math.sin((theta2-theta3)*Math.PI/180)); alpha3 = (Math.pow(omega1, 2)*l1*Math.cos((theta1-theta2)*Math.PI/180)+Math.pow(omega2,2)*l2-Math.pow(omega3, 2)*l3*Math.cos((theta3-theta2)*Math.PI/180))/(l3*Math.sin((theta3- //位置線圖按鈕執行 if (ydxt1 == 1) { zzb1 = 0; zzb2 = 60; zzb3 = 120; zzb4 = 180; zzb5 = 240; zzb6 = 300; zzb7 = 360; zzb8 = "(deg)"; zzb9 = " "; tl="θ"; duplicateMovieClip("ydx1", "qx111"+nn, 300+nn); setProperty("qx111"+nn, _x, wzx._x+theta11+ydzb); setProperty("qx111"+nn, _y, wzx._y); duplicateMovieClip("ydx2", "qx222"+nn, 1000+nn); set Property("qx222"+nn, _x, wzx._x+theta11+ydzb); set Property("qx222"+nn, _y, wzx._y-theta22); duplicate Movie Clip("ydx3", "qx333"+nn, 2000+nn); set Property("qx333"+nn, _x, wzx._x+theta11+ydzb); set Property("qx333"+nn, _y, wzx._y-theta33); } //速度線圖按鈕執行 if (ydxt2 == 1) { sdbl = 60; //放大倍數增強顯示 zzb1 = -180/sdbl; zzb2 = -120/sdbl; zzb3 = -60.0/sdbl; zzb4 = 0; zzb5 = 60.0/sdbl; zzb6 = 120.0/sdbl; zzb7 = 180.0/sdbl; zzb8 = "(rad/s)"; zzb9 = " "; tl="ω"; duplicate Movie Clip("ydx1", "qx111"+nn, 300+nn); set Property("qx111"+nn, _x, wzx._x+theta11+ydzb); set Property("qx111"+nn, _y, wzx._y-omega1*sdbl-180); duplicate Movie Clip("ydx2", "qx222"+nn, 1000+nn); set Property("qx222"+nn, _x, wzx._x+theta11+ydzb); set Property("qx222"+nn, _y, wzx._y-omega2*sdbl-180); duplicate Movie Clip("ydx3", "qx333"+nn, 2000+nn); set Property("qx333"+nn, _x, wzx._x+theta11+ydzb); set Property("qx333"+nn, _y, wzx._y-omega3*sdbl-180); } //加速度線圖按鈕執行 if (ydxt3 == 1) { zzb1 = "-18"; zzb2 = "-12"; zzb3 = "-6"; zzb4 = 0; zzb5 = "6"; zzb6 = "12"; zzb7 = "18"; zzb8 = "(rad/s )"; zzb9 = "2"; tl="α"; duplicateMovieClip("ydx1", "qx111"+nn, 300+nn); set Property("qx111"+nn, _x, wzx._x+theta11); set Property("qx111"+nn, _y, wzx._y-180); duplicate Movie Clip("ydx2", "qx222"+nn, 1000+nn); set Property("qx222"+nn, _x, wzx._x+theta11+ydzb); set Property("qx222"+nn, _y, wzx._y-jsd2*10-180); //*10 放大倍數增強顯示 duplicate Movie Clip("ydx3", "qx333"+nn, 2000+nn); set Property("qx333"+nn, _x, wzx._x+theta11+ydzb); set Property("qx333"+nn, _y, wzx._y-jsd3*10-180); } update After Event(); … nn = nn+1; if (nn>=500) { nn = 1; } i = i-v/(1000/duration); if (i<=-360) {i = 0;} } setInterval(this, "xh", duration); “位置線圖”按鈕上程序 on (release) { ydxt1=1; ydxt2=0; ydxt3=0; } “速度線圖”按鈕上程序 on (release) { ydxt1=0; ydxt2=1; ydxt3=0; } “加速度線圖”按鈕上程序 on (release) { ydxt1=0; ydxt2=0; ydxt3=1; } 圖3 不同條件下平面四桿機構運動線圖 對四桿機構運動線的分析是更好地理解和設計四桿機構的一個重要過程,而采用Flash Actionscript技術模擬得到的動態機構運動線,不但將機構的位移、速度和加速度隨原動件位移的變化關系較為真實地反映了出來,而且界面美觀,色彩分明,使用操作簡便,鑒于Flash技術,生成文件體積小質量高,其應用價值在科研、教學等方面具有較好的潛力. [1] 劉均,馮志林.計算機組成原理仿真實驗系統設計與實現[J].浙江工業大學學報,2009,37(5):486-488. [2] Zhenguo Gao,Chunsheng Wang.Constructing virtual hydraulic circuits using Flash[J].Computer Applications in Engineering Education, 2010,18(2): 356-374. [3] 郭德偉,肖天慶.基于Flash Action Script的機械類教學模擬課件研制[J].現代教育技術, 2009,19(8): 93-97. [4] Dewei Guo,Tianqing Xiao.Kinematic Simulation Design of Planar Four-bar Linkage Based on Flash Action Script [A].In: Xueli Zhou.2010 Third International Conference on Education Technology and Training [C].IEEE,Inc.2010.301-304. [5] 孫桓,陳作模.機械原理(第六版)[M].北京:高等教育出版社,2001:61-64. Dynamic Simulation of Planar Four-bar Linkage Mot ion Line Based on Flash Act ion Script GUO De-wei1,2 Dynamic simulation of planar four-bar linkage motion line is realized by using Flash Action script, and some of the simulation charts are analyzed, on the basis of that, the advantages of the simulation method are addressed Action Script; four-bar linkage mot ion line; mechanical teaching; dynamic simulation TP39 A 1008-9128(2012)02-0044-05 2012-01-02 云南省教育廳科研項目(2010C076) 郭德偉(1978-),男,云南通海人,講師,在讀碩士.研究方向:機械數字化設計與制造. [責任編輯 自正發]3 結果分析

4 小結
(1.Engineering College, Honghe University, Mengzi 661100, China;2.Faculty of Mechanical and Electrical Engineering,Kunming University of Science and Technology, Kunming 650093, China)