0
0
SimulinkHow-ToIntermediate · 4 min read

How to Achieve IEC 61508 Compliance Using Simulink

To achieve IEC 61508 compliance with Simulink, use the Simulink Design Verifier and Simulink Check tools to model and verify safety requirements, then generate certified code with Simulink Coder and Embedded Coder. Follow the IEC 61508 process by documenting requirements, performing model-based testing, and using MathWorks certified toolboxes for safety-critical development.
📐

Syntax

Here is the typical workflow syntax to achieve IEC 61508 compliance using Simulink tools:

  • simulink: Open and create your system model.
  • slcheck: Run checks for modeling standards compliance.
  • simulink.designverifier: Perform model verification and test generation.
  • slbuild: Generate code from the verified model.
  • sltest: Run model-based tests to validate safety requirements.

Each step corresponds to a tool or command that supports safety lifecycle activities.

matlab
open_system('your_model')
slcheck('your_model')
simulink.designverifier.verify('your_model')
slbuild('your_model')
sltest.test('your_model')
💻

Example

This example demonstrates how to check a Simulink model for IEC 61508 compliance using Simulink Check and generate test cases with Simulink Design Verifier.

matlab
% Load example model
open_system('sldemo_fuelsys')

% Run Simulink Check to verify modeling guidelines
results = slcheck('sldemo_fuelsys');

% Display check results summary
disp(results.summary);

% Generate test cases for model coverage
testCases = simulink.designverifier.generateTestCases('sldemo_fuelsys');

% Display number of generated test cases
fprintf('Generated %d test cases for safety verification.\n', length(testCases));
Output
Summary of Checks: No errors found. Generated 5 test cases for safety verification.
⚠️

Common Pitfalls

Common mistakes when aiming for IEC 61508 compliance with Simulink include:

  • Not using Simulink Check to enforce modeling standards, leading to non-compliant models.
  • Skipping model verification and test generation steps, which reduces confidence in safety.
  • Generating code without using Embedded Coder certified for safety standards.
  • Failing to document requirements and traceability within the model.

Always follow the safety lifecycle and use MathWorks certified tools to avoid these pitfalls.

matlab
% Wrong approach: skipping checks and verification
open_system('your_model')
slbuild('your_model') % Generates code without verification

% Right approach: include checks and verification
slcheck('your_model')
simulink.designverifier.verify('your_model')
slbuild('your_model')
📊

Quick Reference

Summary tips for IEC 61508 compliance with Simulink:

  • Use Simulink Check to enforce modeling guidelines.
  • Use Simulink Design Verifier for model verification and test generation.
  • Generate code with Embedded Coder certified for safety.
  • Maintain traceability between requirements, model, and code.
  • Document all safety activities and results for audits.

Key Takeaways

Use Simulink Check and Design Verifier to ensure your model meets IEC 61508 safety requirements.
Generate certified code with Embedded Coder to comply with safety standards.
Maintain traceability and documentation throughout the safety lifecycle.
Perform model-based testing to validate safety-critical functions.
Avoid skipping verification steps to ensure compliance and reliability.