2014-03-31 22 views
0

我想要做什麼是保存一個變量(全局或常量)系統時間。我在Simulink中使用S函數。問題是,當我將系統時間值存儲在一個變量中時,它會不斷遞增,因此當我執行當前系統時間與存儲在我的變量中的時間之間的差值時,始終爲0.您認爲解決方案的存儲方式如何在一個變量中的系統時間以及我應該使用全局變量還是常量的變量類型。如果你有任何答案,請給我一個例子,因爲我是新來的Matlab。 P.S我正在使用C語言編寫S函數。S函數在一個變量中存儲系統時間

+0

全局變量很慢,應該避免 – patrik

+0

你如何從C函數(time.h)或Simulink函數參數中讀取C:中的系統時間? – remus

+0

你可以發佈一些示例代碼,並試圖存儲在哪個回調中,並在s函數中進行計算? – Navan

回答

1

聽起來好像您試圖在開始模擬時存儲系統時間,然後在模擬過程中將系統時間與存儲值進行比較。如果是這樣,那麼你應該使用一個R-Work向量來存儲初始系統時間。

所以在mdlInitializeSizes你想

ssSetNumRWork(S, 1); 

然後在mdlStart你想

real_T *P_Tinit=ssGetRWork(S); 

P_Tinit[0]=((real_T) clock())/CLOCKS_PER_SEC; 

然後,當你想使用的值使用,

real_T itime; 
itime=ssGetRWorkValue(S,0); 

(以上假設你知道如何真正獲得系統時間,即包括正確的庫,從你的問題聽起來就像你一樣。)

相關問題