- I would think it would be wrong to specify the returned sine value to be an integer
 - Once the s-function is compiled and built, it will be executed at every simulation step. With this in mind, you would need the C function just calculate one value, y=sin(x), and leave the rest to Simulink. Calculating the full cycle of sine wave in C makes it impossible to be used to build the s-function.
 
Simulink model not plotting my Sine
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Pierre-Olivier Desrosiers
 le 30 Juin 2022
  
    
    
    
    
    Commenté : Pierre-Olivier Desrosiers
 le 2 Juil 2022
            Hi, I'm trying to build a simulink model working with S-function written in C. However, when I run the Simulink model, the scope is just a straight line, but it's suppose to be a sine wave. I used Legacy Code Toolbox to generate my S-function. My header file is just 
int Sine_value(double amplitude, double vitesse_ang, double phase);
and my main file is 
#include "Sine_value.h"
#include <math.h>
int Sine_value(double amplitude,
			double vitesse_ang,
			double phase,
            )
{
    int t[101];
    int i;
    int y0[101]
    for (i = 0; i <= 100 ; i++) {
        t[i] = i;
        y0[i] = amplitude * sin(vitesse_ang * t[i] + phase);
     }
     return *y0;
}
To compile these file into the S-function, i used all these commands from the Legacy Code Toolbox :
def = legacy_code('initialize')
def.SFunctionName = 'S_function1'
def.OutputFcnSpec = 'y0 = Sine_value(double u1, double u2, double u3)'
def.HeaderFiles = {'Sine_value.h'}
def.SourceFiles = {'main.c'}
legacy_code('sfcn_cmex_generate', def)
legacy_code('compile', def)
I also attached all my files required.
0 commentaires
Réponse acceptée
  Fangjun Jiang
      
      
 le 30 Juin 2022
        
      Modifié(e) : Fangjun Jiang
      
      
 le 30 Juin 2022
  
      I understand this might be just an exercise to learn Legacy Code Toolbox and S-function, but there are a couple of things wrong
4 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Simulink Coder dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!