Matlab S-Function:为什么 ssGetInputPortSignal() 返回 NULL?

ssGetInputPortSignal() 返回 NULL 或 nullptr 有几个不同的原因:

  • 你可能向 ssGetInputPortSignal() 传递了错误的参数。典型用法是
ssgetinput_example.cpp
real_T *input = ssGetInputPortSignal(S, 0);
  • 输入端口可能未连接。在这种情况下,ssGetInputPortSignal() 将返回 NULL 或 nullptr。你可以使用 ssGetInputPortConnected() 检查端口是否连接:
check_input_port_connected.cpp
if (!ssGetInputPortConnected(S, 0)) {
    mexPrintf("Input port 0 is not connected\n");
}
  • 你可能在错误的地方调用 ssGetInputPortSignal()。例如,如果你在 mdlInitializeSizes() 或 mdlOutputs() 函数中调用它,它将返回 NULL 或 nullptr。你应该在 mdlStart() 或 mdlUpdate() 函数中调用它。

按类别查看类似文章: Matlab/Simulink