Matlab/Simulink: S-function template minimal vazia
Você pode usar esta s-function minimal e vazia como um template para começar com sua própria S-function.
Este exemplo minimal também inclui um template mdlStart().
Lembre-se de que se você renomear o arquivo, você também precisa atualizar o #define S_FUNCTION_NAME adequadamente.
nothing_sfunction.cpp
#define S_FUNCTION_NAME nothing_sfunction
#define S_FUNCTION_LEVEL 2
#include "simstruc.h"
// Function: mdlInitializeSizes ===============================================
// Abstract:
// Configurar tamanhos dos vários vetores.
static void mdlInitializeSizes(SimStruct *S)
{
// Adicione ssSetNumInputPorts() etc aqui
}
#define MDL_START
static void mdlStart(SimStruct *S)
{
// Opcionalmente, execute tarefas de inicialização aqui
// Se não necessário, você pode remover esta função e #define MDL_START inteiramente.
}
// Function: mdlInitializeSampleTimes =========================================
// Abstract:
// Inicializar os tempos de amostragem para 1ms (1kHz)
static void mdlInitializeSampleTimes(SimStruct *S)
{
// Para um exemplo do que adicionar aqui, veja https://techoverflow.net/2024/10/20/matlab-level-2-s-function-example-sine-wave-continous-output/
}
// Function: mdlOutputs =======================================================
// Abstract:
// Calcular a saída de onda senoidal baseada no tempo de simulação.
static void mdlOutputs(SimStruct *S, int_T tid)
{
// Para um exemplo do que adicionar aqui, veja https://techoverflow.net/2024/10/20/matlab-level-2-s-function-example-sine-wave-continous-output/
}
// Function: mdlTerminate =====================================================
// Abstract:
// Esta função é chamada no final da simulação para limpeza.
static void mdlTerminate(SimStruct *S)
{
// Nenhuma limpeza necessária para este exemplo
}
// Trailer necessário da S-function
#ifdef MATLAB_MEX_FILE
#include "simulink.c" // Mecanismo de interface MEX-file
#else
#include "cg_sfun.h" // Interface de geração de código
#endifCompile usando
build_nothing_sfunction.sh
mex -g nothing_sfunction.cpp CXXFLAGS="-std=gnu++17 -fPIC"Usar -std=gnu++17 ou mais recente é recomendado, mas não obrigatório.
Check out similar posts by category:
Matlab/Simulink, C++
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow