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 Checkto 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 Codercertified 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.