How to create a sawtooth signal inside an S-function ?

조회 수: 11 (최근 30일)
Alice
Alice 2012년 9월 10일
Hi,
I'm working with C-MEX S-function (C code). I was wondering if it is possible to create a sawtooth signal inside a C-coded S-function and see the signal with the Simulink scope. If it is possible, how to do it ?
Thanks for your help

채택된 답변

TAB
TAB 2012년 9월 10일
편집: TAB 2012년 9월 10일
A simple demonstration:
  1. Drag a S-function builder block in the model.
  2. Configure S-function having only 1 output (y[0]). No input, No discrete state, No continuous state.
  3. In the output function write code given below
  4. Build the S-function and run the model.
y0[0] = y0[0]+1;
if(y0[0]>UPPER_LIMIT)
{
y0[0] = 0;
}

추가 답변 (1개)

Alice
Alice 2012년 9월 14일
Is it possible to do the same signal inside an S-function without having an output port ? The signal would be compared to the input signal.
  댓글 수: 3
Alice
Alice 2012년 9월 17일
It won't exactly be an output signal. Actually, the sawtooth signal would be created inside the S-function to stay in the block and each point would be compared to the points of the input signal. The output would be the display of on/off leds ont the board I have.
TAB
TAB 2012년 9월 17일
In your S-function builder block
  • 1 output (y[0]) for LED,
  • 1 input (u[0]) for comparing
  • 1 discrete state (xD[0]) for storing Ramp value
  • No continuous state.
In your S-function builder Discrete update field
xD[0] = xD[0] + 1;
if(xD[0]>=UPPER_LIMIT)
{
xD[0] = 0;
}
In your S-function builder Outputs field
if(xD[0]>=u0[0])
{
y0[0] = 1; /*LED ON*/
}
else
{
y0[0] = 0; /*LED OFF*/
}
Please go through the s-function document.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Simulink에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by