📖 Scenario: You are designing a simple traffic light controller using a Stateflow chart in Simulink. The traffic light has three states: Red, Green, and Yellow. The controller will switch states in a fixed sequence to manage traffic flow safely.
🎯 Goal: Create a Stateflow chart with the three states Red, Green, and Yellow. Configure the transitions so the traffic light cycles through these states in order: Red → Green → Yellow → Red.
📋 What You'll Learn
Create a Stateflow chart named TrafficLight inside a Simulink model.
Add three states named Red, Green, and Yellow.
Set the initial state to Red.
Add transitions from Red to Green, Green to Yellow, and Yellow to Red.
Use a simple condition or event to trigger each transition.
💡 Why This Matters
🌍 Real World
Traffic light controllers are common examples of state machines used in real-world traffic management systems to ensure safe and efficient vehicle flow.
💼 Career
Understanding Stateflow charts is important for engineers working in embedded systems, automotive software, and control system design.
Progress0 / 4 steps
1
Create a Simulink model and add a Stateflow chart
Open Simulink and create a new model. Add a Stateflow chart block to the model and name it TrafficLight.
Simulink
Hint
Use new_system to create a model and add_block to add a Stateflow chart block.
2
Add three states named Red, Green, and Yellow
Inside the TrafficLight Stateflow chart, add three states named Red, Green, and Yellow. Set the initial state to Red.
Simulink
Hint
Use sfroot to get the chart and addState to add states. Use set('InitialState', ...) to set the starting state.
3
Add transitions between the states
Add transitions from Red to Green, from Green to Yellow, and from Yellow to Red. Use a simple condition true to trigger each transition.
Simulink
Hint
Use addTransition to connect states and set the Condition property to 'true' to trigger transitions immediately.
4
Display the Stateflow chart and verify transitions
Print the names of the states and their outgoing transitions with conditions to verify the Stateflow chart setup.
Simulink
Hint
Use fprintf to print the state names and their outgoing transitions with conditions.
Practice
(1/5)
1. What is the main purpose of creating a Stateflow chart in Simulink?
easy
A. To design graphical user interfaces
B. To model systems with different states and transitions
C. To perform numerical calculations on data arrays
D. To create 3D animations
Solution
Step 1: Understand the role of Stateflow charts
Stateflow charts are used to represent systems that have multiple states and rules for moving between those states.
Step 2: Compare with other options
Options A, B, and D describe tasks unrelated to Stateflow charts, which focus on state-based system modeling.
Final Answer:
To model systems with different states and transitions -> Option B
Quick Check:
Stateflow charts = state and transition modeling [OK]
Hint: Stateflow = states + transitions modeling [OK]
Common Mistakes:
Confusing Stateflow with data processing blocks
Thinking Stateflow creates GUIs
Assuming Stateflow is for animations
2. Which of the following is the correct way to create a new state in a Stateflow chart?
easy
A. Drag a 'State' block from the Simulink library browser
B. Double-click the Simulink block to add a state
C. Use the MATLAB command addstate() in the command window
D. Right-click inside the chart and select 'Add State'
Solution
Step 1: Identify how to add states in Stateflow
In Stateflow, you add states by right-clicking inside the chart and choosing 'Add State' from the menu.
Step 2: Evaluate other options
Double-clicking a Simulink block or dragging blocks from Simulink library does not add states in Stateflow. The addstate() command does not exist.
Final Answer:
Right-click inside the chart and select 'Add State' -> Option D
Quick Check:
Add state = right-click menu [OK]
Hint: Right-click inside chart to add states [OK]
Common Mistakes:
Trying to add states from Simulink library
Using nonexistent MATLAB commands
Double-clicking blocks expecting to add states
3. Consider a Stateflow chart with two states: Idle and Active. The transition from Idle to Active occurs when start == 1. If start is 0 initially and then changes to 1, what will be the active state after simulation?
medium
A. Active
B. Idle
C. Both Idle and Active
D. No active state
Solution
Step 1: Understand the transition condition
The chart starts in Idle. When start == 1, it transitions to Active.
Step 2: Analyze the simulation behavior
Initially, start is 0, so the chart stays in Idle. When start changes to 1, the transition triggers, moving the chart to Active.
Final Answer:
Active -> Option A
Quick Check:
start=1 triggers transition to Active [OK]
Hint: Transition triggers when condition true [OK]
Common Mistakes:
Assuming state changes before condition is true
Thinking both states can be active simultaneously
Ignoring transition conditions
4. You created a Stateflow chart but the simulation does not switch states as expected. Which of the following is a likely cause?
medium
A. The chart has too many states
B. The Simulink model is not saved
C. Transition condition is missing or incorrect
D. The MATLAB version is outdated
Solution
Step 1: Identify common reasons for no state switching
If transitions do not have correct conditions, the chart will not move between states.
Step 2: Evaluate other options
Having many states does not prevent switching. Not saving the model or MATLAB version usually does not cause this specific issue.
Final Answer:
Transition condition is missing or incorrect -> Option C
Quick Check:
Missing transition condition blocks state change [OK]
Hint: Check transition conditions first [OK]
Common Mistakes:
Blaming number of states for no transitions
Ignoring transition conditions
Assuming saving fixes simulation logic
5. You want to create a Stateflow chart that models a traffic light with states Red, Green, and Yellow. The light should cycle through these states every 5 seconds. Which approach correctly implements this behavior?
hard
A. Create states for Red, Green, Yellow with transitions triggered by a timer event every 5 seconds
B. Create one state with a variable counting seconds and use if-else inside it
C. Use Simulink blocks only without Stateflow to model timing
D. Create states but transitions happen manually by user input
The traffic light cycles through states automatically every 5 seconds, so timed transitions are needed.
Step 2: Evaluate implementation options
Create states for Red, Green, Yellow with transitions triggered by a timer event every 5 seconds uses states and timer-triggered transitions, which fits the requirement. Create one state with a variable counting seconds and use if-else inside it uses one state and if-else, which is less clear and harder to manage. Use Simulink blocks only without Stateflow to model timing ignores Stateflow, losing state logic. Create states but transitions happen manually by user input requires manual input, not automatic cycling.
Final Answer:
Create states for Red, Green, Yellow with transitions triggered by a timer event every 5 seconds -> Option A
Quick Check:
Timed transitions cycle states automatically [OK]
Hint: Use timer events for automatic state cycling [OK]
Common Mistakes:
Using manual input instead of timer events
Trying to do all logic in one state
Ignoring Stateflow for state-based timing
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.