0
0
SimulinkHow-ToBeginner · 3 min read

How to Reduce Simulation Time in Simulink Efficiently

To reduce simulation time in Simulink, use a fixed-step solver with a larger step size, simplify your model by removing unnecessary blocks, and limit data logging. Adjusting solver settings and model complexity directly speeds up simulations.
📐

Syntax

Key settings to control simulation speed in Simulink include:

  • Solver Type: Choose between fixed-step and variable-step solvers.
  • Step Size: Larger step sizes reduce computation but may reduce accuracy.
  • Data Logging: Enable or disable logging to reduce overhead.
  • Model Simplification: Remove or replace complex blocks.
matlab
set_param('model_name', 'Solver', 'FixedStepDiscrete')
set_param('model_name', 'FixedStep', '0.01')
set_param('model_name', 'SaveOutput', 'off')
💻

Example

This example shows how to set a fixed-step solver with a step size of 0.01 seconds and disable output logging to speed up simulation.

matlab
model = 'simulink';
load_system(model);

% Set solver to fixed-step discrete
set_param(model, 'Solver', 'FixedStepDiscrete');

% Set fixed step size to 0.01 seconds
set_param(model, 'FixedStep', '0.01');

% Disable output logging
set_param(model, 'SaveOutput', 'off');

% Run simulation
simOut = sim(model);

% Close system without saving
close_system(model, 0);
Output
Simulation completed successfully with reduced simulation time.
⚠️

Common Pitfalls

Common mistakes that slow down simulation include:

  • Using a variable-step solver with very small step sizes unnecessarily.
  • Logging large amounts of data during simulation.
  • Including complex blocks or unnecessary subsystems that increase computation.
  • Not using model referencing or enabling accelerator modes.

Always balance speed with required accuracy.

matlab
%% Wrong approach: variable-step solver with small step size
set_param('model_name', 'Solver', 'VariableStepAuto');
set_param('model_name', 'MaxStep', '1e-5');

%% Right approach: fixed-step solver with reasonable step size
set_param('model_name', 'Solver', 'FixedStepDiscrete');
set_param('model_name', 'FixedStep', '0.01');
📊

Quick Reference

  • Use Fixed-Step Solver: Faster and predictable simulation time.
  • Increase Step Size: Reduces number of calculations.
  • Disable Unnecessary Logging: Saves memory and time.
  • Simplify Model: Remove or replace complex blocks.
  • Use Accelerator Mode: Speeds up execution.

Key Takeaways

Use fixed-step solvers with larger step sizes to speed up simulation.
Disable or limit data logging to reduce overhead.
Simplify your model by removing unnecessary or complex blocks.
Enable accelerator mode for faster execution when possible.
Balance simulation speed with the accuracy you need.