2017/3/1

輸入圖表產生器

輸入圖表產生器英文版的名稱為 Input Grapher,
接下來的重點在介紹對話視窗裡面要怎麼設定?跟設定的意義何在?

說實在話,我覺得這個部分當初設計程式的人做得蠻不錯的,
使用者可以透過這個介面輸入需要的資料。

要把每一項解釋完會有點小複雜,需要有點耐心看完,
如果看不懂一定是我寫的不夠清楚,就請留言提醒或詢問,謝謝。"

輸入圖表產生器會用在許多地方,
基本只要在對話視窗中有看到以下的圖案,就是可以啟用輸入圖表產生器。

前面已經用到的例子是用在說明"強制運動"的時序與位置關係設定,
但是如前述,輸入圖表產生器可以用在許多地方,
只要是在動力學模擬環境中需要設定的數值,幾乎都可以用。

說起來好像很多地方可以用到,
但是其實最主要需要輸入的就是在接頭的性質跟負載的力、扭矩這幾項中可以設定而已,也是最主要的輸入條件。

一般的輸入圖表產生器對話視窗如下"接合力"圖所示:
標準接頭性質內部力量的接合力輸入圖表產生器
整個對話視窗左上角會顯示目前設定的項目名稱,例如上圖是"接合力"。
往下是圖表區,顯示目前設定值得函數圖形,上圖中變數為"時間(s)",函數值為力量 "(N)"。

圖表區下左上方有一個"參考",這個"參考"其實是用來指定變數,也就是函數的變數可以不是"時間(s)",可以指定為其他的變數項目如下:
可以參考的變數,基本上是輸出圖表產生器中的所有計算結果,甚至可以是使用者自己定義的變數
實際應用時所有接頭中的數值均可以指定為參考變數
唯一不能修改參考變數的設定項目是強制運動,
強制運動的變數只能是時間,如下圖所示:
強制運動的輸入圖表產生器
注意強制運動與一般輸入圖表產生器的差別:
1. 參考不能設定
2. 多了顯示"位置"、"速度"、"加速度"三個選項,其中因為設定項目為"位置",所以會強制顯示。
3. 曲線規則少了"公式"一項可以選。

參考
變數的參考從時間改為其他變數的應用舉例來說,
例如設定靜摩擦與動摩擦係數。
通常元件開始移動後會比靜止不動時的摩擦係數小,
所以可以把速度當作參考變數,
只要速度小於一個臨界值以下,就設定為較大的靜摩擦係數,
超過臨界值就設定為動摩擦係數,如下圖所示:
乾摩擦係數的輸入圖表產生器
上圖中設定得意義說明如下:
當速度小於 10mm/s 以下時,乾摩擦係數等於 0.3。
當速度大於 20 mm/s 以上時,乾摩擦係數等於 0.24。
至於速度介於 10~20 mm/s之間就讓乾摩擦係數呈線性變化,斜率為 -0.006 s/mm。
實務上,可以評估真正的主要運動速度範圍,讓線性變化區域幾乎不會有任何影響,就可以達到相當於不動時為靜磨擦係數 0.3,動磨擦係數為 0.24 的設定效果。

更進一步的延伸應用,可以指定參考變數到或超過、小於某個值,
讓某個設定值啟用或歸零,將輸入圖表產生器當作一個開關啟用某些力量作用來使用。

參考下方的四個按鈕

由左到右分別是:
1. 縮放窗選:使用滑鼠左鍵窗選要放大顯示的區域,放大後,可以在圖表區中按下滑鼠右鍵選擇"縮放全部"恢復。
2. 清除曲線定義:將設定清除,包括參考變數會回復到預設的 "時間(s)"。
3. 載入曲線:顧名思義,可以讀取曲線設定檔,檔案格式為cgd,是一種壓縮格式的檔案,目前找不到其他可以開啟或編輯的軟體,只能用Inventor動力學模擬進行儲存與載入。
4. 儲存曲線:將目前的曲線定義儲存為cgd格式。

在強制運動的輸入圖表產生器中獨有的"顯示"
可以用來選擇是否要同時顯示預設值外的數值,
基本上速度是位置的微分,加速度是速度的微分,
位置是速度的積分,速度是加速度的積分,
所以位置、速度、加速度只要設定其中一個,
勾選顯示,軟體就會自動進行微分或積分顯示關聯的數值。


起點 X1 & Y1,結束點 X2 & Y2:

用來設定某區段的起始點與結束點的函數(Y)與變數值(X),
軟體會自動調整 X1 & Y1為前一段的結束點,無法任意指定,
所以除了第一段以外,其他建議只要改結束點的值。


區段的性質
最複雜的部份,還好多數情況僅需要用到最簡單的部分。

作用中 / 自由 / 條件
有兩種狀況:
設定強制運動時:

"作用中"表示強制在該時段中無論如何都要強迫元件依設定值進行運動
"條件"跟"自由"是連動的,"自由"是不能選的;
當設定條件符合時,會抑制強制運動,也就是讓元件回復自由運動狀態,依據受力條件進行運動,但是若條件不符合時,還是會依照圖表設定值進行強制運動。

設定力量或其他項目時:
"作用中"會強迫依據設定曲線套用數值
"自由"則是曲線無作用
"條件"則是僅當條件成立時,曲線設定值才有作用,不然就無作用,條件的狀況跟強制運動剛好相反。

曲線的規則

其實就是該區段線的公式,總共有十種線形公式可以選擇進行設定:
線性斜坡、立方斜坡、擺線、正弦、多項式、調和、修改正弦、修改梯形、雲形線、公式,在強制運動中不能使用公式進行設定。
選了以後要記得按向右的箭頭符號指定到規則中。

接下來說明幾個曲線規則。

線性斜坡 (Linear Ramp)
這一個公式最簡單,基本上就是一條直線,公式可以寫為:Y = aX + b,a 是斜率,b 是該區段的初始值如下圖示:
對比到公式 Y=aX+b,a為斜率 = 2000 mm/s,b 為初始值 (Y1) = 50mm
將第一段的強制運動模擬的位置輸出到 Excel 檔
利用 Excel 的趨勢線功能可以找出這一段線的公式就是 y = 2000x + 50
立方斜坡 (Cubic Ramp)
依照軟體說明網頁資料,Cubic ramp是一個三階函數,一般了解到的公式應該是 Y = a1 X3 + a2 X2 + a3 X + a4 的形式,所以將線性斜坡的範例的第一段修改為立方斜坡如下:
第一段為立方斜坡

將結果位置輸出到 Excel 檔,一樣加上趨勢線,使用三階函數,公式如圖示
模擬結果的速度與加速度輸出圖形
很明顯的位置經過兩次微分後的加速度結果,還保留有一次項的變化,將Excel的結果趨勢線公式做兩次微分,可以得到加速度的公式:加速度 A = -150000 x + 30000,跟輸出結果圖形吻合。

擺線 (Cycloid)
所謂擺線指得是一個圓(滾動圓)在直線(底線)上滾動(沒有滑動現象)時,在圓上的點所描繪的軌跡線,稱為擺線 (Cycloid),
圓內部的點描繪出來的軌跡稱為短擺線 (Curtate cycloid),
圓外部點描繪出來的軌跡成為長擺線 (Prolate cycloid),
短擺線跟長擺線又可以合稱為次擺線(Trochoid)。
擺線(黑)、短擺線(紅)、長擺線(藍)
如果滾動圓(直徑較小)是繞著另外一個大圓(直徑較大)的外部轉動,
滾動圓上的點所描繪出來的軌跡稱為外擺線(Epicycloid),
如果是在大圓的內部轉動,描繪出來的軌跡稱為內擺線 (Hypocycloid);
同樣的在滾動圓的內外部的點描繪出來的軌跡可以分別稱為外次擺線 (Epitrochoid) 跟內次擺線 (Hypotrochoid)。
內擺線、內次擺線&外擺線、外次擺線
控制大小圓的比例就可以控制軌跡的週期圈數
如果繼續延伸在其他曲線上滾動,那就會有很多沒完沒了的變化,
還好數量最多的主要應用是滾動圓在直線上的擺線,也是最簡單的擺線。
因為圓周的關係,擺線基本上可以視為一種週期變化的曲線,加上可以用三角函數來表示,所以其實也可以算是三角函數曲線的延伸,例如 x = a(t-sin t),y =  a(1-cos t);這裡的 x 跟 y 指得是軌跡點距離原出發點的距離,跟輸入圖表產生器的 X(參考變數) & Y(設定值)不完全相同。

至於為什麼要用擺線?
在不同領域有不同的需求,
例如齒輪齒型嚙合好(幾何),
依重力沿擺線滾落下降速度最快(最速降性質),擺線鐘(等時性質),
進一步資料可以參考網頁:幾何學中的海倫

所以在Inventor動力學模擬中甚麼情況要用到擺線?
我目前也不知道,但是畫這種塗還蠻有趣的,
有想到甚麼實務上的用途,歡迎留言告訴我。

上述直線運動的範例,將第一區段的線型規則改為擺線如下圖示:
第一段使用擺線曲線進行強制運動
輸出結果的位置變化曲線,擺線在中間階段的速率比較高
前後段的加減速變化也明顯不同
擺線模式下的速度與加速度變化
有三角函數的特性,微分後相位差90度
調和 (Harmonic)
Harmonic翻譯成"調和"其實不太合適,
以背後的數學公式概念來說,應該翻譯成"簡諧"會比較好,
因為這條線是利用正弦跟餘弦三角函數產生的,
曲線的值跟立方斜坡很接近,
設定跟線性斜坡、立方斜坡、擺線很像,
就是直接選然後套用即可,如下圖示:
第一段使用"調和"曲線設定強制運動的位置變化
模擬結果的位置輸出數值
"調和"的值介於"擺線"跟"立方斜坡"之間,跟"立方斜坡"的值非常的接近
速度與加速度的輸出
從加速度的值,就可以很明顯比較出與"立方斜坡"的不同
立方斜坡的加速度是一條直線
以加減速度來說,調和應該會比立方斜坡有效率
在接近靜止的頭尾段加減速度變化也比較緩和
修改正弦 (Modified sine)
顧名思義應該是用正弦函數去產生曲線,
補充前面沒有提到的,
這些曲線的不同產生方式有一個重點就是在於如何銜接頭尾,讓變化可以更順暢,
"修改正弦"設定也很簡單,選擇然後套用即可,模擬結果如下:
"修改正弦"的結果介於"擺線"跟"調和"的中間
看加速度曲線跟"調和"比,在頭尾段的加減速度變化更加緩和
修改梯形 (Modified trapezoid)
完全不知道後面公式在搞甚麼,所以直接設定,很簡單選擇套用就可以:
第一段使用"修改梯形"

"修改梯形"的曲線介於"擺線"跟"修改正弦"的中間
中間段幾乎跟"擺線"疊在一起
頭尾段則跟"修改正弦"很接近
從加速度的圖形曲線就更明顯可以看出跟前面幾種曲線的差異
雲形線 (Spline)
雲形線是設計上經常拿來使用的線形,
相較於前面提到的幾種線形,雲形線多了可以調控與頭尾端相接曲線的斜率設定功能,設定方法如下圖:
雲形線可以設定與頭尾段相接的曲線斜率
上面的例子第一段從靜止開始,接第二段的靜止狀態,斜率(速度)都是0,速度有連續性。
雲形線在哪?
因為雲形線本身也是一條三次方的曲線,當前後銜接處的曲線斜率為零的時候
雲形線跟立方斜坡是相同的雲形線比立方斜坡多了可以調控頭尾端的斜率
設定雲形線的模擬結果輸出結果
從加速度曲線可以明顯看出使用的是三次方曲線
以上這七種曲線,對於點到點的線性設定效果有點類似,
除了"線性斜坡"是固定斜率以外,
其他的設定差別都在於頭尾端的斜率變化情況,
設計人員還是要能夠掌握這幾條曲線的差異,配合需要取得最好的設定。

接下來的幾條曲線規則設定的狀況就跟上面的曲線不同,
在點到點之間斜率的變化可以做到很劇烈。

正弦 (Sine)
三角函數的正弦函數 y = a*sin (nx+θ),軟體中的設定如下圖示:
在0.4 到0.6 秒中間再加入兩個點(0.45 & 0.55秒),用來設定正弦型式的強制運動
a 就是幅度(振幅);n 是週期,等於頻率的倒數 = 1/f ;相位 θ = 0 deg,正弦(sine) +90 deg = 餘弦 (cosine) 0 deg。
如上圖圖示,在0.45秒開始,從既有的位置 (850mm,參考前面),到 0.55秒,在0.1秒內,振幅幅度 a = 100mm,頻率 f = 20 Hz,n=1/20=0.05,相位 θ=0 deg。
可以利用圖表的窗選放大功能來檢視正弦的部分會更清楚:
正弦段圖表圖形放大圖
時間調整為五秒
很明顯正弦的狀況跟前述的線性斜坡、立方斜坡到雲形線的差異還蠻大的,所以在曲線特性不會拿來做比較。

規則疊加
"規則"的另外一種少見的應用
一般是在一個線區段內指定一種線的型式,
但是Inventor動力學模擬也支援將在一個線區段內疊加不同的線型式,
例如在工程數學中的傅立葉級數是將多個不同振幅、週期、相位的正弦或餘弦函數進行疊加,用以模擬力量、訊號等等,
例如取區段為0.5秒,給予不同振幅幅度與頻率:a1=50mm & 2 Hz (T=0.5 sec),a2=25mm & 4Hz (T=0.25 sec),a3=12.5mm & 8 Hz (T=0.125 sec),a4=12.5mm & 10Hz(T=0.1 sec)等等,曲線圖形分別如下:
四種振幅幅度與頻率的正弦曲線
如果把這四個曲線疊加,總振幅幅度 = 50 + 25 +12.5 + 12.5 = 100mm,曲線形狀如下:
四種正弦曲線的疊加曲線
理論上不論是何種波形都有機會可以用傅立葉級數進行疊加逼近。

要疊加規則的方法也很簡單,
如上圖中的紅色框選"+"號,每點選一次就可以增加一個疊加的規則,
所有的線形都可以進行疊加,因此可以用來模擬複雜的輸入條件,
不過實際上很少看到人這樣子用,知道可以這樣用的人也很少。

多項式 (Polynomial)
多項式的公式: y = a5*x5 + a4*x4 + a3*x3 + a2*x2 + a1 x + a0。
使用者可以自行輸入各系數項an來指定公式;
通常不太容易透過解析計算方式獲得這些係數項,
所以另外有一個方法是可以載入數據點,然後指定要使用的階數 n (xn),讓軟體協助計算出各係數項。
例如 (x,y)如下:
0 50
0.1 30
0.2 25
0.3 50
0.4 100
0.5 350
0.6 850
0.7 200
0.8 100
0.9 75
1 0
將資料存成txt檔,使用 5階作計算可以得到如下圖示的係數項目:


透過多項式公式可以做出更複雜的曲線,
但是說實在的,用到的機會好像不多,
可能會用在實際上的量測資料轉換到軟體中,
透過多項式係數計算的設定,讓點跟點之間的資料更平滑,
一般機械上用到的機會不多。

公式 (Formula)
待續...

2017/2/22

自由度的強制運動

機構設計過程中,設計師會根據需求來設計機構的動作,而機構的動作主要就是由元件幾何、連接與受力的關係來完成。

實務上稍微複雜一點的機構(例如多連桿)很難進行手算,因此多數設計從開始到完成過程中經常要反覆進行製作實體模型進行驗證,或者是加入可調整的元件,無形中都會增加機構的複雜度與後續的維修保養工作。
所以如果能夠有適當的工具協助,工程師在設計到一個階段就可以進行一些機構動作的模擬,雖然會增加設計的時間,卻可以大幅度減少後續的作業。

雖然多數 3D CAD 軟體可以在約束下進行機構的移動或轉動來進行干涉與動作檢查,或者是製作動畫來表示機構動作,但是都沒有受力關係,動作設定上也只能作一些很簡單的速度控制,這個部分的操作通常也很多設計師都已經駕輕就熟。

Inventor 的動力學模擬提供了更複雜的位置、速度、加速度的控制,加上可以考慮自由度的內部力量(作用力、阻尼力、彈簧力、摩擦力)跟外部作用力,並據以計算出驅動動作所需要的力量(驅動力)。

軟體進行"強制運動"設定,主要就是在進行位置(角度)或速度(角速度)或加速度(角加速度)對時間變化關係的設定,雖然Inventor動力學模擬在功能上還是有許多不足之處,例如time step的設定,可是對一般機構設計工程師來說也已經算是很好用。

設定元件在該自由度的強制運動功能在標準接頭中自由度性質的第三個頁籤,如下兩圖所示:
圖 1. 使用滑鼠右鍵點選,進入標準接頭下其中一個接頭的性質
圖 2. 要勾選"啟用強制運動"選項,該功能才能進行設定
再強調一次,強制運動的應用主要在模擬機構規格上指定要完成的時序動作,透過設定該自由度的時序動作來模擬關聯機構的運動,並進而計算出所需要驅使動作的力量"驅動力",驅動力結果會顯示在該標準接頭自由度下的 “驅動力 ”下,有設定強制運動才會在結果中出現驅動力項目。
圖 3. 強制運動所需驅動力結果顯示在輸出圖表產生器中
再來說明如何進行強制運動的設定:

要進行強制運動設定要先了解:

1. 自由度的座標軸(方向性)與位置(參考原點)關係

2. 設定數值
定義主要有分為位置(角度) 、速率(角速度) 、加速度(角加速度)三種,如上圖 2所示,在驅動項目下的三個選項;三者之間存在著微積分的關係,速度是位置的微分,加速度是速度的微分,反之位置是速度的積分,速度是加速度的積分,所以這三個設定任何一個都可以,軟體會自動換算;選哪一個就看時序動作規劃的需求來決定,例如平移的動作以位置相對時間來進行設定會比較直覺,高速旋轉動作以轉速來設定比較直覺,當然對慢速的定角度轉動就直接設定角度。
3. 設定值為常數或者是變數?
例如位置設定為常數,那就不會動,速度設定維持常數就是等速度運動,加速度設定為常數就是等加速度運動;若設定為時間的函數,那位置、速度、加速度就會隨著設定而改變。

舉一個簡單的直線運動作為範例說明,一個物體在平板上移動(很像學生時代的物裡常見的題目),圖示如下:
圖 4. 具備柱狀接頭(具有一個平移)自由度)的簡單機構,地板跟上面的方塊
首先先解釋一下上圖 4. 對話視窗幾項設定的意義:

標準接頭的編輯對話視窗是使用滑鼠右鍵點選"標準接頭"下的"柱狀接頭" - "編輯"叫出來的。

對照上圖動畫,"元件1"代表的是不會動的元件(藍色座標),"元件2"代表的是會動的元件(綠色座標)。

"原點"按鈕可以設定座標軸原點在元件上的位置,在上面圖例中原點元件1是選擇了地板的左下角的邊緣面,元件2是選擇了方塊左下角的面。

座標上的三個軸分別有1~3個箭頭指示,1個箭頭是座標軸的X方向,2個箭頭是座標軸的Y方向,3個箭頭是座標軸的Z方向,這是自由度的專屬座標系統方向跟整體座標系統方向不同,所有相關的計算值都會跟這個自由度的座標系統方向有關,而不是整體座標系統。

預設第一個可以移動的自由度會在Z軸,也就是圖中三個箭頭的方向,在對話視窗上面有一個可以翻轉Z軸的按鈕,也有一個可以重新指定X軸方向與反轉X軸方向的按鈕,至於為什麼要自行設定座標原點與方向會另外詳細說明。

確認好自由度的方向以後,接下來才能開始設定自由度的強制運動,若搞不清楚自由度的座標軸方向與原點,設定的強制運動就會跟預期的完全不同,這一點非常的重要,對初學者來說,常常會在這裡出問題。

但是模擬時需要去找出真實機構的參考座標原點,若設計繪圖習慣不好,可能根本搞不清楚原點該設在哪裡,這又是CAD之外的另外一回事。

首先先來設定一個等速度運動,設定很簡單,如下圖示:
圖 5. 選擇"速率",輸入常數1250 mm/s = 75 m/min = 4.5 km/hr
相當於人平地步行速度,以機械設備來說算是很慢的速度
模擬結果如下動畫(有用影像軟體加速處理過,實際執行速度要看電腦計算能力):
圖 6. 地板長度為2米,方塊在移動方向的長度為20公分
等速度運動情況下,驅動力等於零,原因是沒有任何加速度,沒有任何慣性力需要克服,也沒有任何內部作用力,所需要的驅動力等於零,這種情況其實是不合理的,所以可以加上包括摩擦、阻尼等作用,就可以得到驅動等速度運動所需要的力量;另外一個不合理的地方在於元件不可能在停止狀態下瞬間加速到所需要的速度。

再來看另外一種情況,假設規格上,我們需要讓這個方塊在0.5秒內移動到距離目前位置1000的地方,然後再接下來的0.3秒內回到距離出發點700mm的位置,再利用0.2秒回到出發點,以上的描述在實際上的功能上會比較常見而且合理,接下就看一下Inventor動力學模擬如何設定這個動作,因為位置的數值不是固定的,所以必須使用"圖表產生器ˋ"來進行輸入:
圖 7. 開始設定
1. 選擇"驅動"  - "位置"
2. 點選使用"圖表產生器"
有關圖表產生器會有另外一篇文章專門說明
圖 8. 第一段設定
 "X1" 為 "0","Y1"為"50 mm"到 "X2" 為"0.5 s","Y2"為"1050 mm"
X2-X1 = 0.5 sec,Y2-Y1 = 1000mm,符合功能要求的描述
50 mm是目前方塊原點座標距離地板原點座標的位置
這個值也可以從初始條件的位置中獲得獲進行編輯修改
圖 9. 第二段設定
"X1" 為 "0.5 s","Y1"為"1050 mm"到 "X2" 為"0.8 s","Y2"為"750 mm"
第二段的 X1 & Y1 必須是第一段的 X2 & Y2,時間跟位置接在一起才合理,不然就變成瞬間移動
X2-X1 = 0.3 sec,Y2=750 mm,距離出發位置50 mm = 700 mm,符合功能要求的描述
圖 10. 第三段設定
"X1" 為 "0.8 s","Y1"為"750 mm"到 "X2" 為"1 s","Y2"為"50 mm"
同樣,第三段的開端 X1 & Y1 必須是第二段的尾端 X2 & Y2
X2-X1 = 0.2 sec,Y2= 0 mm,回到出發位置50 mm,符合功能要求的描述
模擬結果動畫如下:
圖 11. 模擬結果
動畫分兩段,第一段是軟體執行模擬計算後播放動作的時間
第二段經過影像處理軟體加速到符合真實時間 1 秒鐘
看起來有速度變化,但是驅動力依然是零,原因是三段都是等速度運動,可以從圖表產生器中勾選速度顯示功能看出,如下圖示:
圖 12. 圖表產生器開啟速度顯示(綠色線條)
從上圖中的速度變化也可以明顯看出這種設定也是不太合理,原因是速度在兩段相接的地方變化過於劇烈,實際上很難達到這樣的速度變化,所以我們再利用圖表產生器在區段性質中的"雲形線"進行設定,讓動作更加的合理,設定如下:
圖13. 加上雲形線(Spline)設定
時間與位置設定都不變,但是將"選取的區段的性質"從"線性斜坡"改為"雲形線"
再來要注意的是"初始斜度"跟"最終斜度"
關係到兩端之間的速度連續性,務必要讓兩段在交接處的速度相同
從靜止開始運動,所以初始斜度為 "0 mm/sec"
第一段接第二段運動反向,先停止再往反方向,最終斜度為"0 mm/sec"

圖14. 第二段接第一段運動為反向,需先停止再往反方向,第二段的初始斜度為"0 mm/sec"
第二段接第三段都是相同的反向運動,所以可以保持速度
假設為先前第三段的等速度運動速度,最終斜度 "-3500 mm/s"

圖 15. 第三段接第二段是同樣的反向運動
速度需有連續性,初始斜度相同為" -3500 mm/s"
最後要停止,所以最終斜度為 " 0 mm/s"
模擬的結果如下圖所示:
圖 16. 使用雲形線模擬位置對時間的變化
動畫分兩段,第一段是軟體執行模擬計算後播放動作的時間
第二段經過影像處理軟體加速到符合真實時間 1 秒鐘
所需加速度(慣性力)的變化如下圖示:
圖 17. 加速度變化
圖 18. 驅動力變化
因為沒有加上阻尼、摩擦跟其他彈簧外力等,驅動力跟所需要克服的慣性力相等,所以驅動力跟加速度的曲線形狀幾乎是完全相同,兩者之間僅有方塊質量的比值。

實務上兩段交接處方塊可能會暫停,進行其他的特殊動作,例如組裝、檢測等,所以動作設計上也可以讓位置在交接的 0.1 秒時間為常數(固定位置不動),所以新的強制運動搭配雲形線性質可以設定如下:
圖 19. 增加兩段固定位置
模擬結果如下圖示:
圖 20. 動畫分兩段,第一段是軟體執行模擬計算後播放動作的時間
第二段經過影像處理軟體加速到符合真實時間 1 秒鐘

前面的範例係針對單一自由度進行設定,如果有多個自由度需要進行設定,就是一直不斷的重複進行設定完成需要的自由度設定。

強制運動的應用可以將機構動作根據時間順序進行非常仔細的安排,讓機構動作更接近真實,除了有利於與主管、客戶、跟同事(如電控人員)進行溝通外,若搭配阻尼、摩擦、彈簧等設定,驅動力的計算結果準確性更高,可以參考作為選用馬達、氣缸等驅動裝置的參考。

會另外有一篇專門介紹圖表產生器的設定與使用。





2017/2/15

20170215 18度C巧克力工坊

每年寒暑假Will回學校時,全家就順便來一趟旅遊,今年的打算是住奧萬大、高雄各一晚,回程過台南再放生。
再來開始找要去那些景點跟食物,因為奧萬大幾乎沒有夜生活可言,所以打算在埔里待到15:00再上山,預計16:30~17:00到奧萬大辦入住。
網路上搜尋埔里景點,有兩個以前沒聽過也沒去過的景點,18度C巧克力工坊大黑松倆口元首館,對巧克力比較有興趣,加上土城也有一個大黑松小倆口的觀光工廠,所以就決定以18度C巧克力工坊為優先,有時間再去下個景點。
從板橋接近十點出發,進到埔里市區找到18度C巧克力工坊前已經接近12:40,想說好像不是很熱鬧,會不會已經停業了?

沒想到一轉進慈恩街就出現熱鬧的市集,而且有兩個停車場,然後買單顆要先取號再依序進入店面選購,買盒裝跟冰淇淋則是拉出排隊動線依序結帳,看來在尖峰時間例如假日應該是人聲鼎沸,人潮不斷,不過今天非假日又剛過完年假,幾乎是不太需要排隊。

有茶跟義式咖啡可以免費喝,旁邊是木輪餅乾店,一片餅乾要30,木輪蛋糕好像也不便宜,老婆買了三包條狀餅乾,覺得像土司切條烘乾,我沒什麼興趣,試吃了一小塊木輪蛋糕,還OK,但是不會想買,CP值不高。
買了一盒抹茶巧克力,NTD300有30顆約0.8cm見方大小的抹茶巧克力,盒子設計得很高雅,不便宜但是好吃,不會有那種甜到會覺得牙齒痛的感覺。

離國道六末端不算很遠,來埔里或去清境、合歡山、奧萬大可以順道過來試試。

2017/2/12

自由度的“內力”

有機構=有質量,有質量的元件要動需要力量,從牛頓第二運動定律 F=ma (T=Iα) ,就可以在計算出力量以後得到加速度(角加速度)來描述運動狀態。
至於機構所受到的力量形式可以分成機構本身移動過程中的力量,跟來自外部的力量,其中有關機構本身的力量可以視為機構的內部力量(Internal force)。
這個內部力量的設定可以在Inventor動力學模擬標準接頭的各自由度性質中的"啟用接合力"頁籤中進行設定,設定的力量作用方向一律與自由度方向平行,方向與自由度的座標方向相同,如下圖:
自由度性質頁籤 2 啟用接合力,預設未啟用

自由度性質頁籤 2 啟用接合力,啟用後才能設定
內部力量總共有四種 : 1.作用力,2.阻尼力,3.彈簧力,4.摩擦力等四種方向與自由度平行的內力。

至於跟該自由度所屬元件與其他元件之間的作用力與反作用力,或者以外部力量、力矩施加的外部負載,會由軟體程式依幾何等關係自動計算,這些外部力量會跟自由度內部力量合併成結果中的“接頭作用力”,如下圖紅色框內項目 :
輸出圖表產生中標準接頭自由度的接頭作用力結果
以下簡單介紹四種力量的意義:

1. 作用力:
與自由度平行方向的內部作用力設定,直接給大小,方向與自由度座標方向相同
可以讓工程師直接指定的內部作用力,通常是以下三種力量參數無法設定,又跟該自由度密切相關的力量。

2. 阻尼係數:
單位為 "力 / 速率",力量作用方向與移動方向相反
可以反應元件在該自由度有運動時,速度所造成的阻力效應,速度越快,反作用力越大,類似空氣 (或流體)阻力的情況; 實務上的常見機構元件是避振器,避振器內部透過流體受壓流動通過小孔產生阻尼阻力,動能轉換成流體流動磨擦的熱能。

3. 彈簧作用力:
可以想像在該元件的自由度上掛上一個彈簧,當機構移動時,彈簧會被拉伸或壓縮而產生對應的拉力(將機構循該自由度拉回)或推力(將該機構推出); 需要設定兩個數值,一個是自由位置,意義上是彈簧自由不受力時的自由度位置; 另一個是彈性係數,設成正值,會使機構往自由度正方向移動時受到拉力,設成負值會使機構往自由度正值移動時受到推力。
彈簧力因為會跟位置有關,會隨著位置改變力量大小,在與3D接觸條件同時使用時,很容易會有模擬計算無法收斂的狀況發生。

4. 摩擦力:
顧名思義就是給定磨擦係數,計算與自由度垂直的作用力會產生的摩擦力,注意 “與自由度垂直的作用力 ”這個條件,對水平移動的機構如果沒有設定重力方向,機構本身的重量就不會有摩擦力的作用,但是如果有另外其他正向力作用,就會有該正向力引發的摩擦力作用。

以上的數值都可以給定常數,或以時間為變數的函數,或參考某些變數而改變,同樣會另外有一小節說明輸入圖表產生器的使用。

以上四種數值會加總計算所有自由度的總和列在結果的“關節作用力”項目中。
若啟用接合作用力,輸出圖表產生器的標準接頭自由度結果中會出現"關節作用力",若沒有啟用該項不會出現。


2017/2/9

20170208基隆山

Will前兩天突然說想去爬基隆山(舊稱雞籠山),先前從無耳茶壺山看過去蠻特別的,所以就開始想要找甚麼時間去;因為Lilian剛好 2/8 要回蘇州,帶兩個大行李,那就挑 2/8 順便載去松山機場搭機,順便拉Bryan來去爬山。

印象中基隆山的登山口在九份老街附近,曾經有印象聽人提過是在老街入口公廁旁,但是一直覺得怪怪的,那一邊往上是一堆房子,怎麼可能!

果不其然,登山口位置其實在九份老街往上公車站過後,靠近停車場往金瓜石的路旁:



原本沒打算開車,想說坐火車轉公車上來,但是因為要送Lilian去機場,加上一次四個人,車平常又很少開,不趁此時待何時?路過瑞芳車站,看到排隊等公車上九份的人潮,心中暗喜,還好是開車來,不然不曉得要等多久?

至於開車來可以停哪邊?其實在九份老街往上有停車場,繼續往上也有部分路邊是畫白線,也有少許的車位可以停,到這裡會先看到一堆小黃大哥在這裡休息:

但是因為離老街有一段,加上又在"夜總會"旁邊,所以多半時候是有機會找到車位的,然後往一堆民宅方向隨便找一條路往下走,只要保持九份國小在左邊,通常就可以接到老街去,不過上來時就是爬坡,冬天還好,夏天應該會滿身大汗,所以帶老人小孩還是乖乖繳汽車保護費給當地的業者比較方便。

到九份的時間剛好是中午,雖然是非假日,但是因為學生還在放假,所以整個老街還是滿滿的觀光客跟學生,還是先吃點東西,順便解放一下,免得久沒爬山肚子餓到頭昏眼花,挑了一家老街內的價格還算合理的老麵店,筍絲滷肉飯25、餛飩麵60、陽春麵30、燙青菜40、嘴邊肉60,結帳240,每個人再嗑掉一顆阿蘭草仔粿(紅豆口味)。

解決完後就開始往上,離開老街入口往上走約3~5分鐘,就可以找到入口:
基隆山登山步道入口
路線很單純,就是一路往上:
其實入口目視可及這一段看起來很陡,過了之後就是平緩的路段,但是也是僅有目視可及的一段平緩,再來就是一路陡上直到山頂的電波塔涼亭
手指頭指的地方就是等下要爬上去的涼亭,倒數第二座
真正的頂在這裡,還有一小段,爬到爽!
一開始大概都只能看到山景
正中間的建築是勸濟堂,旁邊有一尊關公像,勸濟堂後面有往無耳茶壺山的步道
再繼續往上會碰到一個大平台可以休息,在這裡就開始可以看到比較多的海景:
下山時碰到一位大哥說,遠方突出在海上的尖角就是鼻頭角,有台灣極北的鼻頭角燈塔
再往上碰到另外一座平台,從這邊可以看到基隆的海洋大學
在兩根豎直的芒草左邊可以看到往和平島的新建拱形大橋,前面就是海洋大學
在這裡看風景時順便跟兩位女生聊天,是真理大學的學生,兩個人從台北坐公車過來;後來天氣開始變,從海上漂起來的水氣碰上冷空氣,凝結成霧氣往上飄,將整個基隆山的上半部完全罩住,四周看出去全部都是白茫茫的一片
往山下已經看不到東西,只有一片白茫


很濃的霧氣
被我們搭訕的兩位女生
下到一定高度,霧就散了,往上看就是一片白


上下含休息大約1小時30分的路程可以走完,陡但是不長,不過對少運動的要小心,很多年輕人往下走時腳都會沒力發抖。

同場加映在老街往上走到停車位置時,路過一間宮廟前的廣場,景色也很讚,Google地圖上的景點標示是玉皇大帝宮廟









2017/2/7

振動學 CH0801 連續系統簡介

Chapter 8 Continuous Systems

連續系統(continuous systems)又稱為分佈系統(distributes systems)。

8.1 Introduction

相對於離散系統(discrete systems)很清楚的可分離出來有限數量的質量、阻尼、彈簧等元件,連續系統(continuous system)中材料的連續性很難將質量、阻尼、彈簧分離成個別元件獨立出來,因此若將連續材料切割成小塊,相對離散系統來說連續系統可以說有無窮多的小塊(自由度)存在。
因為連續系統具有幾乎是無窮多的自由度,相對的存在有無窮多的模態與對應的自然頻率,所以連續系統又可以稱為具有無窮多自由度的系統(a system of infinite degrees of freedom)。

連續系統的運動方程式是偏微分方程式型態,與離散系統運動方程式的常微分方程式相比,大量的偏微分方程式很難進行手算求解;對連續系統要找出模態跟自然頻率時邊界條件更是
非常的重要;雖然困難,但是因為離散系統的簡化模型準確度通常不如連續系統模型,加上電腦計算能力越來越強,可以輔助進行複雜自由度的計算,所以離散系統模型的應用可以說誒來越普遍。
不過還是可以依據模型的狀態,評估分析、設計、計算時間需求與限制來選擇適當的離散系統模型進行分析可以有助於理解振動的原理與特性。

連續系統模型的分析可以先從一些簡單的弦(strings)、柱(bars)、軸(shafts)、樑(beams)跟薄膜(membranes)等開始;可以將一小段的結構如弦、柱、軸、樑或一小片的薄膜視為一個自由物體(free body),利用牛頓第二運動定律導出其受力狀態,再進行積分並代入邊界條件與初始條件使用無窮級數的進行求解,即可獲得無窮多的自由頻率與模態,而系統的反應就是由這窮多的級數相疊加結果所呈現。

一般的結構分析軟體幾乎都有支援連續系統的特徵值模擬計算,例如我比較熟悉的 Inventor 應力分析跟 Nastran In CAD 中的"模態分析"都是在模擬計算連續系統的特徵值。

Inventor應力分析的模態模擬分析簡介可以參考:
模態基本概念
模態模擬設定
模態結果解釋與改善

2017/2/6

自由度的初始條件性質

自由度的初始條件對一個運動系統來說是一個很重要的條件,在Inventor動力學模擬環境中有兩個值可以設定,分別是速度與位置,如下圖所示:
"位置"可以輸入設定值或勾選鎖定限制移動
"速率"可以取消"已計算"的勾選,就可以輸入速率的設定值(初速)
"速度"的定義比"速率"多了方向性,由於選擇"標準接頭"的自由度時,方向已經決定,所以只要輸入速率即可
初始位置與初始速度顧名思義就是用來描述物件模擬的初始狀態,但是這個初始狀態可以跟物件的真實初始狀態不一樣,以用來節省模擬所需要的時間。

舉例來說對衝擊類型的問題,初始速度會決定碰撞時的動量 "p = mV",跟動能 "K=1/2 *mV2"。
而衝量 I 則是動量的變化 "I = F*△t =  △p"。
從衝量跟動量的關係式來看,運動物體的速度變化與所經歷的時間長短是受力大小的關鍵因素之一,因此在模擬時,可以取碰撞前一瞬間的速度來進行碰撞魔以即可,前面還沒有碰撞到的時間過程中,物件可以視為不受力(或僅受地心引力)的狀態。
由"衝量=動量變化=力量乘以作用時間",就可以明顯看出撞擊瞬間的前後速度變化(動量改變)跟速度變化發生的時間長度(力量作用時間長度)決定了受力大小,受力大小就決定了結構變形的情況。

例如常見自由落體類型的碰撞模擬中,決定撞擊地面的負載大小其實主要跟撞擊地面時的速度有關。

所以像自由落體的模擬重點,其實主要在設定撞擊前的速度。
減少自由落下這一段的模擬可以減少從零速度開始到碰撞前所需要的計算時間。
至於碰撞(受力)過程時間的長短就跟物件的材料與結構組成狀態有關。

初始位置對有彈簧作用的系統會影響到彈簧儲存位能的大小;對自由落體所在的起始高度則有儲存位能的影響。

從以上的描述,可以歸納出來以下兩點:
初始速度代表運動系統一開始進行模擬計算時所具備的動能。
初始位置代表運動系統一開始進行模擬計算時所具有的位能。

運動系統一開始所具備的能量總和跟初始速度與位置密切相關,會影響到運動過程的持續時間與反應狀態,在Inventor動力學模擬中預設是交由系統自行計算,基本上大概都是預設從零開始計算,所以如果實際初始速度與實際速度差異很大,有時Inventor動力學模擬計算在剛開始的時候結果會不準,特殊例子甚至會發散而計算失敗。
所以必要時給予適當的初始條件會有助於計算的進行。

至於要如何給適當的初始條件有時就需要一點計算工作來幫助模擬分析可以更有效率地進行。

以自由落體碰撞的模擬為例,假設物體從距離地面1.2公尺高度落下:

使用Inventor動力學模擬計算時若想要省掉1.2公尺到0.1公尺高度這個過程的計算,從撞擊前的0.1公尺才開始進行模擬計算,那可以設定初始位置在碰撞前的0.1公尺高度,初始速度可以使用國高中學過的等加速度公式計算如下:
S = V0*t + 0.5*a*t2
自由落體初速度 V0 = 0 m/sec
a = 重力加速度 (9.8 m/sec2)
距離S = 1.1公尺
可以求得落下經過時間 t = sqrt(1.1 / 0.5 / 9.8) = 0.474 sec
再利用V = V0 * t + a*t計算,V = 0 + 9.8 * 0.474 = 4.643 m/sec

也就是在距地面0.1公尺高度時,物體有初速度4.643 m/sec往下向著地面移動。

另外一個簡單例子是單擺(或鞦韆),直覺上,單擺在初始條件上可以設定初始位置(高度)。
單擺初始條件
在不同的初始高度(位置),會具備有不同的位能,位能在單擺最低點時轉換成動能(速度),盪到最高點時動能則全部轉換成位能,假設過程中沒有任何損失,在任一時間點 U(位能) + K(動能) = C(常數)。


在位置與速率兩個設定下面還有另外兩個設定分別是"最小值"跟"最大值",顧名思義就是用癌指定該自由度位置的上下極限值,每個極限值可以設定"值"、"勁度"、"阻尼"三個數值,分別解釋與說明如下:

最小/大值,指該自由度數值的"最小/大"值,但是不代表計算過程中自由度的數值不可以小於或大於"最小/大"值,這個"最小"值的設定更像是一個"開關",當自由度的位置碰到這個極限值時,軟體會開始計算後面的"勁度"與"阻尼的影響。

勁度值的計算概念可以舉例如下:若設定最小極限是 10 mm,當自由度位置因為幾何與時間解析度關係計算出自由度位置在 9 mm的數值,不代表這個值是錯的,對程式來說會參考"勁度"值,假設為 10 N/mm,這個勁度(Stiffness)會發揮一個類似"彈簧"的作用,提供一個反力  F = (10 mm - 9 mm) * 10 N/mm = 1 mm * 10 N/mm = 10 N 的力量,將機構由 9 mm位置往 10 mm位置推,並來回疊代計算以求符合力學與幾何關係,最後停在一個可能介於9~10 mm之間的位置;實務上這就很像在機構運動極限位置安裝一個彈簧,當機構碰到彈簧後會受到彈簧阻力作用,超過極限越多反彈的作用力越大,反彈力的大小就是由"勁度"設定值所決定,設定值可以為常數(線性彈簧)或以位置/時間/速度等為變數的函數,有關設定值的輸入會另外有一篇專門說明。

阻尼的單位是 N-sec/mm或者是 N-mm sec/deg,簡單從單位來看意義,阻尼力就是跟速度成正比的反作用力/力矩,阻尼係數就是力/力矩跟速度/角速度的比例係數,同樣的這個係數可以是常數或者是某個參考變數的函數;作用上跟勁度彈簧很類似,當自由度位置小於最小值時,跟去機構的速度計算阻尼力(反力)阻止機構繼續往極限後的位置移動,例如阻尼係數為 1 N s/mm,當計算得到 9 mm 位置時,就必須將此時的速度,例如 100 mm/s,去乘以阻尼 1 N s/mm,得到一個反力 100 N用來阻止機構繼續移動。

所以這裡的最小值與最大值並不是鐵板一塊,是一個類似開關的作用,會啟用有關彈簧力與阻尼力的計算來阻止機構繼續往極限後的方向移動。

阻尼的設定會使機構超過極限時的動能被消耗掉,減少機構的總能量,但是如果沒有碰到極限,阻尼消耗能量的作用就不存在,使運動位置會被限制到在極限內的範圍。