-
1 # 使用者8033834295295
-
2 # 使用者4901841896917
step函式的兩種表示方法
首先簡要介紹下step的形式及其各個引數的物理含義:
格式:STEP (x, x0, h0, x1, h1)
引數說明:
x ―自變數,可以是時間或時間的任一函式
x0 ―自變數的STEP函式開始值,可以是常數或函式表示式或設計變數;
x1 ―自變數的STEP函式結束值,可以是常數、函式表示式或設計變數
h0 ― STEP函式的初始值,可以是常數、設計變數或其它函式表示式
h1 ― STEP函式的最終值,可以是常數、設計變數或其它函式表示式
而在實際的運用過程中,它有兩種表示方法,一種是嵌入式:
STEP (x, x0, h0, x1,
(STEP (x, x1, h1, x2,
(STEP (x, x2, h2, x3, h2) )))) (當然你可以巢狀更多的)
另一種就是增量式:
STEP (x, x0, h0, x1, h1)+
STEP (x, x1, h2, x2, h3)+
STEP (x, x2, h4, x3, h5)+
……
我常用的是後者,下面就舉例(附件請參考step.cmd檔案)說明下他們的區別。其實他們都可以表示同一種你所需要的曲線,如下所示曲線:
用嵌入式可表示為:
step(time,0,0d,3,
(step(time,3,0d,5,
(step(time,5,5d,8,
(step(time,8,5d,10,
(step(time,10,0d,12,0d)))))))))
用增量式表示為:
step(time,3,0,5,5)+
step(time,5,0,8,0)+
step(time,8,0,10,-5)
在使用後者的過程中很多人會誤表示為:
step(time,0,0d,3,0d)+
step(time,3,0d,5,5d)+
step(time,5,5d,8,5d)+
step(time,8,5d,10,0d)+
step(time,10,0d,12,0d)
還有一種是錯誤的:
step(time,3,0d,5,5d)+
step(time,8,5d,10,0d)
回覆列表
在UG運動模擬裡面,用輔助連桿配合step函式可以實現分時分步運動 詳見操作影片,傳輸方便壓縮成rar了. 下面是用到的函式: 我解釋一下上面的step函式 為什麼每個運動控制都要用兩段 因為step函式,又叫"階躍函式",其函式影象是下面左邊這樣的: 將階躍時間設定得極短(比如0.001秒),那麼用兩個階躍函式就能繪製出一個起始時間和結束時間都能確定的"門",就像上圖中的右側圖象,實現對引數的分時控制. 以下為模擬結果: