Matlab/Simulink : Modèle minimal vide de S-function
Vous pouvez utiliser cette S-function minimale vide comme modèle pour démarrer avec votre propre S-function.
Cet exemple minimal inclut également un modèle mdlStart().
N’oubliez pas que si vous renommez le fichier, vous devez également mettre à jour le #define S_FUNCTION_NAME en conséquence.
nothing_sfunction.cpp
#define S_FUNCTION_NAME nothing_sfunction
#define S_FUNCTION_LEVEL 2
#include "simstruc.h"
// Function: mdlInitializeSizes ===============================================
// Abstract :
// Configurer la taille des différents vecteurs.
static void mdlInitializeSizes(SimStruct *S)
{
// Ajouter ssSetNumInputPorts() etc. ici
}
#define MDL_START
static void mdlStart(SimStruct *S)
{
// Optionnellement, effectuer des tâches d'initialisation ici
// Si non nécessaire, vous pouvez supprimer cette fonction et #define MDL_START entièrement.
}
// Function: mdlInitializeSampleTimes =========================================
// Abstract :
// Initialiser les temps d'échantillonnage à 1ms (1kHz)
static void mdlInitializeSampleTimes(SimStruct *S)
{
// Pour un exemple de ce qu'il faut ajouter ici, voir https://techoverflow.net/2024/10/20/matlab-level-2-s-function-example-sine-wave-continous-output/
}
// Function: mdlOutputs =======================================================
// Abstract :
// Calculer la sortie de l'onde sinusoïdale en fonction du temps de simulation.
static void mdlOutputs(SimStruct *S, int_T tid)
{
// Pour un exemple de ce qu'il faut ajouter ici, voir https://techoverflow.net/2024/10/20/matlab-level-2-s-function-example-sine-wave-continous-output/
}
// Function: mdlTerminate =====================================================
// Abstract :
// Cette fonction est appelée à la fin de la simulation pour le nettoyage.
static void mdlTerminate(SimStruct *S)
{
// Aucun nettoyage requis pour cet exemple
}
// Trailer requis pour les S-functions
#ifdef MATLAB_MEX_FILE
#include "simulink.c" // Mécanisme d'interface de fichier MEX
#else
#include "cg_sfun.h" // Interface de génération de code
#endifCompiler avec
build_nothing_sfunction.sh
mex -g nothing_sfunction.cpp CXXFLAGS="-std=gnu++17 -fPIC"L’utilisation de -std=gnu++17 ou plus récent est recommandée, mais pas obligatoire.
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