This six-part tutorial walks through a real Model-Based Design project from zero to deployment using a cheap toy helicopter rotor (the Picooz) as the plant.
You will acquire motor data on a running dsPIC33A target using External Mode, identify a physics-based model from the measurements (using five different methods β four of which need no MATLAB add-on toolbox), design a controller in Simulink, simulate the closed loop, generate embedded C code in one click, and validate on hardware β all with the same model.
This is the 30-minute demo that opens the “Model-Based Design: From Laboratory to Embedded Deployment” session at Γcole Centrale Nantes (December 2025), expanded into a self-paced, reproducible tutorial with downloadable models, scripts, and data.


| # | Page | What you learn | Duration |
|---|---|---|---|
| 1 | Hardware | What the Picooz is, its electronics, why it makes a great MBD teaching example | ~10 min |
| 2 | Acquisition with External Mode | External Mode concept, chirp excitation, capturing live data from a running MCU | ~20 min |
| 3 | Identification β Five Methods | Grey-box physical model and five ways to fit it β from a closed-form backslash on base MATLAB all the way up to the System Identification Toolbox GUI | ~45 min |
| 4 | Controller Design | Closed-loop control β PI baseline, then Super-Twisting sliding-mode for the non-linear plant | ~30 min |
| 5 | Simulate & Deploy | Closed-loop simulation, one-click code generation to the target | ~15 min |
| 6 | Validate & Beyond | Hardware response vs. simulation β the “zero tuning iteration” payoff, then pointers to go further | ~15 min |
Audience. No prior MBD experience required. Basic Simulink familiarity helps. Every concept is introduced when it is first used.
The Picooz is a ~β¬15 toy helicopter. Opening one up reveals a small brushed DC motor driving a plastic rotor against significant aerodynamic drag. As an MBD teaching vehicle it hits every sweet spot:
| Property | Why it matters |
|---|---|
| Cheap (~β¬15) | Buy spares. Break things. |
| Safe | A few grams, a plastic rotor on a bench clamp. |
| Non-trivial dynamics | Non-linear aerodynamic drag β forces grey-box identification, a linear model is not enough. |
| Sensor-less speed | Speed is inferred from back-EMF, the same technique used in industrial brushless controllers. |
| Complete | Every MBD phase (acquisition Β· identification Β· control Β· deployment Β· validation) is demonstrated in an afternoon. |
Once you have the workflow in your hands, apply it to a PMSM motor, a buck converter, or an industrial axis β the four-phase loop is identical.
The four phases you are about to walk through are the loop of every MBD project β Picooz is simply a concrete vehicle for them:
Acquire β Identify β Control β Validate (then Deploy and Validate again on hardware).
Hardware β a Picooz (or any small brushed DC motor) on a clamp, plus one of:
Software
See the Installation page for the complete setup.
Every page ships a self-contained asset bundle: the Simulink model, the recorded dataset, and the scripts. Reproduce, modify, adapt.
| Page | Assets |
|---|---|
| 02 Acquisition | tutorial_picooz_acquire.slx
Β· tutorial_picooz_acquire_extmode.slx
Β· tutorial_picooz_chirp.mat
Β· tutorial_picooz_chirp_log.mat
Β· tutorial_picooz_process_log.m |
| 03 Identification | picooz_motorBlade_m.m
Β· identify_L1_backslash.m
Β· identify_L2_fminsearch.m
Β· identify_L3_lsqnonlin.m |
| 05 Deploy | tutorial_picooz_simulation.slx
Β· tutorial_picooz_deploy_tunable.slx |
Ready? β Start with 1. Hardware .
What is the Picooz? The Picooz is an inexpensive IR-controlled toy helicopter (~β¬15). Inside it you find:
Read more βGoal. Record how the motor reacts to a known PWM input signal, so we have the data needed to fit a mathematical model in the next step. π» Try the β¦
Read more βGoal. Turn the recorded pair \((u(t), \omega(t))\) into a mathematical model we can simulate β and do so without relying on an expensive add-on β¦
Read more βGoal. Design a controller that drives the rotor to a commanded speed setpoint, rejecting disturbances (wind, battery droop, rotor wear), and is cheap β¦
Read more βGoal. Verify on the PC that the identified model + designed controller behave correctly, then generate embedded C code and flash the target β in one β¦
Read more βGoal. Verify that the real hardware response matches the simulated prediction β and draw the conclusion that gives MBD its name. The final check β β¦
Read more β