關於自訂負載函數
自訂負載應用程式啟動後,應用程式和 Mechanism Dynamics 間的交換行為皆是透過直接函數調用進行的。某些函數是由 Mechanism Dynamics 從自訂負載應用程式中調用的。其他函數則是由 Mechanism Dynamics 所提供,自訂負載應用程式可以調用它們。每個函數都會有一些選用的引數,您可視需要將其新增到函數定義中。
以下簡要說明自訂負載應用程式的專用函數。
由自訂負載應用程式所提供、由自訂負載研發商所撰寫的函數:
CLUSEREvalCustomLoad()
CLUSERDefineInit()
CLUSERRunInit()
CLUSERGetStateVariablesSize()
CLUSERInitStateVariables()
CLUSERGetStateVariableDerivatives()
Mechanism Dynamics 所提供、自訂負載研發商可調用的函數:
CLEvalMeasure()
CLEvalStateVariables()
CLUSEREvalCustomLoad() 是唯一必須一律存在於自訂負載應用程式中的函數。當使用者執行參照自訂負載的分析時,分析的每個時間步長都會調用此函數。它會傳回該時間之自訂負載的值。此值用於計算此時間步長的力和加速度。
因為 CLUSEREvalCustomLoad() 會傳送自訂負載名稱作為引數,所以相同的自訂負載可執行檔可支援許多不同的自訂負載。
使用者可在 CLUSEREvalCustomLoad() 內調用 CLEvalMeasure()CLEvalMeasure() 會採用存在於模型中的量測名稱作為輸入引數。研發自訂負載應用程式時,請確保在您的自訂負載文件中指明想讓使用者在模型中建立的量測類型。
執行分析時會調用數次 CLUSEREvalCustomLoad() 函數,所以該函數最好要能在短時間內儘快完成,否則會大幅降低分析的執行速度。尤其嚴禁在執行分析期間操作 UI 或變更模型。
另一個重要的函數是 CLUSERDefineInit()。當使用者建立新的力馬達或外部力或扭矩時,就會調用它。該函數可讓自訂負載應用程式詢問使用者有關該自訂負載所專用的資料。可儲存這些資料以備未來在 CLUSEREvalCustomLoad() 函數中使用。例如,如果該自訂負載是為彈簧而建立的,則 CLUSERDefineInit() 函數可要求使用者為此負載提供彈簧常數。
使用者執行任何參照自訂負載的分析之前,會先調用 CLUSERRunInit()
剩餘的函數可協助實行使用自訂負載的控制系統。自訂負載應用程式可提供一組在每一個時間步長進行積分的導數值。
* 
由於系統是在執行分析前調用這些初始化常式,因此從常式調用 CLEValMeasure()CLEvalStateVariables() 並不恰當。
CLUSERGetStateVariablesSize() 是在執行分析前調用。如果自訂負載應用程式提供非零的狀態變數大小,則 Mechanism Dynamics 會在執行分析之前調用 CLUSERGetStateVariables()。然後,會在每個時間步長調用 CLUSERGetStateVariableDerivatives() 以取得目前的導數值。
這是否有幫助?