Bird
Raised Fist0
Simulinkdata~5 mins

Sample time configuration in Simulink

Choose your learning style10 modes available
Introduction

Sample time configuration tells Simulink how often to run parts of your model. It helps control when data updates happen.

When you want to run a part of your model every fixed time interval, like every 0.1 seconds.
When different parts of your model need to run at different speeds, like one fast sensor and one slow controller.
When you want to simulate events that happen at specific times, like a clock tick or a button press.
When you want to improve simulation speed by running some blocks less often.
When you need to synchronize your model with real-world hardware sampling rates.
Syntax
Simulink
In Simulink block parameters, set 'Sample time' to a value:
- Positive number (e.g., 0.1) for fixed-step sample time
- 0 for continuous sample time
- -1 for inherited sample time
- Inf for triggered or event-based sample time

Sample time is usually set in seconds.

Inherited (-1) means the block uses the sample time of connected blocks.

Examples
The block runs every 0.05 seconds (20 times per second).
Simulink
Sample time = 0.05
The block runs continuously, updating at every solver step.
Simulink
Sample time = 0
The block inherits sample time from upstream blocks.
Simulink
Sample time = -1
The block runs only when triggered by an event.
Simulink
Sample time = Inf
Sample Program

This code creates a simple Simulink model with two blocks. The Sine Wave block runs every 0.1 seconds. The Gain block inherits its sample time from the Sine Wave block. The model runs for 1 second, then prints the sample times of both blocks.

Simulink
%% Simulink Sample Time Configuration Example
% Create a simple model programmatically
model = 'sample_time_example';
new_system(model);
open_system(model);

% Add a Sine Wave block with sample time 0.1
add_block('simulink/Sources/Sine Wave', [model '/Sine Wave'], 'SampleTime', '0.1');

% Add a Gain block with inherited sample time
add_block('simulink/Math Operations/Gain', [model '/Gain'], 'SampleTime', '-1');

% Connect blocks
add_line(model, 'Sine Wave/1', 'Gain/1');

% Simulate the model for 1 second
simOut = sim(model, 'StopTime', '1');

% Display sample times
sampleTimeSine = get_param([model '/Sine Wave'], 'SampleTime');
sampleTimeGain = get_param([model '/Gain'], 'SampleTime');

fprintf('Sine Wave sample time: %s\n', sampleTimeSine);
fprintf('Gain sample time: %s\n', sampleTimeGain);

% Close model without saving
close_system(model, 0);
OutputSuccess
Important Notes

Setting sample time correctly is important for accurate simulation results.

Continuous sample time (0) is used for blocks that need to update all the time.

Triggered sample time (Inf) is useful for event-driven systems.

Summary

Sample time controls how often blocks run in Simulink.

You can set fixed, continuous, inherited, or triggered sample times.

Proper sample time setup helps balance accuracy and simulation speed.

Practice

(1/5)
1. What does the sample time in Simulink control?
easy
A. The color of the block in the model
B. How often a block executes during simulation
C. The size of the block on the screen
D. The type of data the block processes

Solution

  1. Step 1: Understand sample time meaning

    Sample time defines the frequency at which a block runs during simulation.
  2. Step 2: Match sample time to options

    Only How often a block executes during simulation describes execution frequency, others describe unrelated features.
  3. Final Answer:

    How often a block executes during simulation -> Option B
  4. Quick Check:

    Sample time = execution frequency [OK]
Hint: Sample time means block run frequency [OK]
Common Mistakes:
  • Confusing sample time with block appearance
  • Thinking sample time controls data type
  • Assuming sample time affects block size
2. Which of the following is the correct way to set a fixed sample time of 0.1 seconds in a Simulink block?
easy
A. Set Sample time to 'inf'
B. Set Sample time to '-1'
C. Set Sample time to '0.1'
D. Set Sample time to 'triggered'

Solution

  1. Step 1: Identify fixed sample time syntax

    Fixed sample time is set by a positive number representing seconds, e.g., 0.1.
  2. Step 2: Evaluate options

    '-1' means inherited, 'inf' means continuous, 'triggered' is not a numeric value.
  3. Final Answer:

    Set Sample time to '0.1' -> Option C
  4. Quick Check:

    Fixed sample time = positive number [OK]
Hint: Fixed sample time is a positive number [OK]
Common Mistakes:
  • Using '-1' for fixed sample time
  • Confusing 'inf' with fixed sample time
  • Entering non-numeric values for sample time
3. Consider a Simulink model with two blocks: Block A has a sample time of 0.05 seconds, and Block B has a sample time of 0.1 seconds. If the simulation runs for 0.2 seconds, how many times will Block A execute?
medium
A. 4 times
B. 3 times
C. 5 times
D. 2 times

Solution

  1. Step 1: Calculate executions for Block A

    Block A runs every 0.05 seconds. Total simulation time is 0.2 seconds. Executions occur at t=0, 0.05, 0.1, 0.15 (not at 0.20 since simulation ends at 0.2).
  2. Step 2: Divide total time by sample time

    Number of executions = (0.2 / 0.05) = 4 (executions at 0, 0.05, 0.1, 0.15).
  3. Final Answer:

    4 times -> Option A
  4. Quick Check:

    Executions at t=0, 0.05, 0.1, 0.15 = 4 times [OK]
Hint: Number of executions = floor(total time / sample time) + 1 [OK]
Common Mistakes:
  • Forgetting the initial execution at t=0
  • Confusing Block A's sample time with Block B's
  • Counting execution at simulation end time incorrectly
4. You set a block's sample time to '-1' but the block does not inherit the sample time as expected. What is the most likely cause?
medium
A. The block has a fixed sample time set elsewhere
B. The sample time value '-1' is invalid
C. The block is set to continuous sample time
D. The block is inside a triggered subsystem

Solution

  1. Step 1: Understand '-1' sample time meaning

    Sample time '-1' means inherit from parent or driving block.
  2. Step 2: Identify why inheritance fails

    If block is inside a triggered subsystem, inheritance may not work because triggered subsystems have their own timing.
  3. Final Answer:

    The block is inside a triggered subsystem -> Option D
  4. Quick Check:

    Triggered subsystem blocks may block inheritance [OK]
Hint: Triggered subsystems block sample time inheritance [OK]
Common Mistakes:
  • Thinking '-1' is invalid
  • Ignoring subsystem context
  • Assuming continuous sample time causes issue
5. You want to speed up your simulation by reducing the number of block executions but keep accuracy high. Which sample time configuration strategy is best?
hard
A. Use a larger fixed sample time for less critical blocks and smaller for critical ones
B. Set all blocks to continuous sample time
C. Set all blocks to inherited sample time '-1'
D. Use triggered sample time for all blocks

Solution

  1. Step 1: Understand trade-off between speed and accuracy

    Larger sample times reduce executions but may reduce accuracy; smaller sample times increase accuracy but slow simulation.
  2. Step 2: Apply selective sample time setting

    Assign larger sample times to less critical blocks and smaller to critical blocks to balance speed and accuracy.
  3. Final Answer:

    Use a larger fixed sample time for less critical blocks and smaller for critical ones -> Option A
  4. Quick Check:

    Selective sample time balances speed and accuracy [OK]
Hint: Adjust sample times by block importance [OK]
Common Mistakes:
  • Setting all blocks to continuous slows simulation
  • Using inherited sample time everywhere loses control
  • Triggering all blocks may cause unnecessary executions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard