0

我想要做的是将系统时间保存在一个变量(全局或常量)中。我在 Simulink 中使用 S-Function。问题是,当我将系统时间的值存储在一个变量中时,它会不断增加,所以当我执行当前系统时间和存储在我的变量中的时间之间的差异时,它始终为 0。你认为存储的解决方案是什么变量中的系统时间以及我应该使用全局变量还是常量。如果您有任何答案,请给我一个例子,因为我是 Matlab 的新手。PS 我正在使用 C 语言作为 S-function。

4

1 回答 1

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);

(以上假设您知道如何实际获取系统时间,即包含正确的库,从您的问题来看,这听起来好像您这样做了。)

于 2014-03-31T16:41:59.387 回答