Sample time configuration tells Simulink how often to run parts of your model. It helps control when data updates happen.
Sample time configuration in 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.
Sample time = 0.05Sample time = 0Sample time = -1Sample time = Inf
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 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);
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.
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
Solution
Step 1: Understand sample time meaning
Sample time defines the frequency at which a block runs during simulation.Step 2: Match sample time to options
Only How often a block executes during simulation describes execution frequency, others describe unrelated features.Final Answer:
How often a block executes during simulation -> Option BQuick Check:
Sample time = execution frequency [OK]
- Confusing sample time with block appearance
- Thinking sample time controls data type
- Assuming sample time affects block size
Solution
Step 1: Identify fixed sample time syntax
Fixed sample time is set by a positive number representing seconds, e.g., 0.1.Step 2: Evaluate options
'-1' means inherited, 'inf' means continuous, 'triggered' is not a numeric value.Final Answer:
Set Sample time to '0.1' -> Option CQuick Check:
Fixed sample time = positive number [OK]
- Using '-1' for fixed sample time
- Confusing 'inf' with fixed sample time
- Entering non-numeric values for sample time
Solution
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).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).Final Answer:
4 times -> Option AQuick Check:
Executions at t=0, 0.05, 0.1, 0.15 = 4 times [OK]
- Forgetting the initial execution at t=0
- Confusing Block A's sample time with Block B's
- Counting execution at simulation end time incorrectly
Solution
Step 1: Understand '-1' sample time meaning
Sample time '-1' means inherit from parent or driving block.Step 2: Identify why inheritance fails
If block is inside a triggered subsystem, inheritance may not work because triggered subsystems have their own timing.Final Answer:
The block is inside a triggered subsystem -> Option DQuick Check:
Triggered subsystem blocks may block inheritance [OK]
- Thinking '-1' is invalid
- Ignoring subsystem context
- Assuming continuous sample time causes issue
Solution
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.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.Final Answer:
Use a larger fixed sample time for less critical blocks and smaller for critical ones -> Option AQuick Check:
Selective sample time balances speed and accuracy [OK]
- Setting all blocks to continuous slows simulation
- Using inherited sample time everywhere loses control
- Triggering all blocks may cause unnecessary executions
Ready to prove it?
Pass the test and this pattern moves unknown
