How to Trace Requirements in Simulink: Step-by-Step Guide
To trace requirements in Simulink, use
Requirement blocks from the Requirements Toolbox to link your model elements to specific requirements. You can then use the Requirements Traceability tool to view and manage these links, ensuring your design meets all specified requirements.Syntax
In Simulink, requirements tracing involves these key elements:
Requirementblock: Represents a requirement in your model.Link to Requirement: Connects model elements to a requirement.Requirements Traceability Tool: Visualizes and manages requirement links.
Basic usage syntax for adding a requirement block programmatically:
matlab
req = slreq.requirement('req1'); req.Text = 'The system shall maintain temperature within limits.'; add_block('slreq/Requirement', 'model/Requirement1'); link = slreq.link(req, 'model/Subsystem1');
Example
This example shows how to create a requirement, add a Requirement block to a Simulink model, and link it to a subsystem for traceability.
matlab
model = 'myModel'; new_system(model); open_system(model); add_block('simulink/Commonly Used Blocks/Subsystem', [model '/Subsystem1']); % Create a requirement object req = slreq.requirement('req1'); req.Text = 'Subsystem must respond within 100 ms'; % Add Requirement block to model add_block('slreq/Requirement', [model '/Requirement1']); % Link requirement to Subsystem link = slreq.link(req, [model '/Subsystem1']); % Save and open Requirements Traceability tool save_system(model); slreq.viewRequirements(model);
Output
Simulink model 'myModel' opened with a subsystem and a linked requirement block.
Requirements Traceability tool launched showing the link between 'Requirement1' and 'Subsystem1'.
Common Pitfalls
Common mistakes when tracing requirements in Simulink include:
- Not using the Requirements Toolbox, which is needed for
Requirementblocks and traceability features. - Failing to link requirements properly to model elements, causing incomplete traceability.
- Not saving the model after adding links, which can cause loss of trace data.
- Confusing
Requirementblocks with annotations; onlyRequirementblocks support traceability.
Correct linking ensures traceability works as expected.
matlab
%% Wrong way: Using annotation instead of Requirement block add_block('simulink/Annotations/Note', 'model/Note1'); % This does NOT support requirement traceability %% Right way: Use Requirement block add_block('slreq/Requirement', 'model/Requirement1');
Quick Reference
Summary tips for tracing requirements in Simulink:
- Always use
Requirementblocks from the Requirements Toolbox. - Link requirements to model elements using
slreq.linkor the Requirements Editor. - Use the
Requirements Traceabilitytool to visualize and verify links. - Save your model frequently to preserve traceability data.
Key Takeaways
Use Requirement blocks from the Requirements Toolbox to represent and trace requirements in Simulink.
Link requirements explicitly to model elements to maintain clear traceability.
Use the Requirements Traceability tool to view and manage requirement links.
Avoid using annotations for requirements as they do not support traceability.
Save your model after linking to preserve requirement trace data.