的#define S_FUNCTION_NAME myfunction_sFun爲什麼S函數只執行mdlInitializeSizes()並且不執行mdlOutputs(),mdlStart()等?
的#define S_FUNCTION_LEVEL 2
的#define MDL_INITIAL_SIZES
的#define MDL_INITIALIZE_SAMPLE_TIMES
的#include 「tmwtypes.h」
的#include 「simstruc_types.h」
#include「mex.h」
#include「simstruc。H」
空隙mdlInitializeSizes(SimStruct * S)
{
ssPrintf("Initialize\n");
//My code has been removed from here
ssPrintf("End Initialize\n");
}
空隙mdlInitializeSampleTimes(SimStruct * S)
{
ssPrintf("Sample Times\n");
}
的#define MDL_OUTPUTS
的#ifdef MDL_OUTPUTS
空隙mdlOutputs(SimStruct * S,int_T TID)
{
ssPrintf("Outputs\n");
}
#ENDIF
的#define MDL_START
的#ifdef MDL_START
空隙mdlStart(SimStruct * S)
{
ssPrintf("Start\n");
}
#ENDIF
空隙mdlTerminate(SimStruct * S){}
/=============================
必需的S-功能拖車*
=============================/
的#ifdef MATLAB_MEX_FILE/*這是文件被編譯爲MEX文件? */
的#include 「simulink.c」/ * MEX-文件接口機制*/
的#else
的#include 「cg_sfun.h」/ *代碼生成登記功能*/
#endif
當我運行我的s函數(無論是在MATLAB中還是通過simulink圖)時,我只能看到「初始化」和「結束初始化」輸出。 S函數從不執行其他mdl *函數。有誰知道這可能是爲什麼?我還通過將MATLAB過程附加到Visual Studio和調試來驗證這一點 - 每個函數中除mdlInitializeSizes之外的斷點都未到達。 –
您的問題與代碼格式有問題。你的評論也應該是問題本身的一部分。 – sm4