simulink-configure-real-time-model
Configure a Simulink model for Simulink Real-Time code generation and deployment
Install / Use
npx skills add matlab/simulink-agentic-toolkit --skill simulink-configure-real-time-modelInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
OperationsSupported Platforms
Tags
Our assessment of simulink-configure-real-time-model
simulink-configure-real-time-model scores 88/100 on our quality scale, 420th of 752 Operations skills we index.
Its SKILL.md is 16 KB long, well organised into 20 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
With 1,148 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 26 days ago, so simulink-configure-real-time-model is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
simulink-configure-real-time-model compared with similar skills
All 4 of these similar skills score higher than simulink-configure-real-time-model; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| simulink-configure-real-time-model (this skill)by matlab | 88 | 1.1k | 26d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 21d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 21d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 133.6k | 10d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 133.6k | 10d ago | SKILL.md |
Frequently asked questions
- How do I install simulink-configure-real-time-model?
- Run
npx skills add matlab/simulink-agentic-toolkit --skill simulink-configure-real-time-model. The install tabs above show the steps for each supported agent. - Which AI agents does simulink-configure-real-time-model work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is simulink-configure-real-time-model safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is simulink-configure-real-time-model still maintained?
- The repository was last updated 26 days ago, so simulink-configure-real-time-model is actively maintained.
Skill content
View source on GitHubname: simulink-configure-real-time-model description: Configure a Simulink model for Simulink Real-Time code generation and deployment. Use when setting up a model for Simulink Real-Time, selecting the correct system target file, fixing TLC/STF mismatches, applying fixed-step solver settings, validating target-platform compatibility, or configuring Simulink Real-Time build options before model build. license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "1.0"
Configure Simulink Real-Time Models
Prepare an existing Simulink model to build as a Simulink Real-Time application — configuring it consistently with the selected target platform, solver requirements, and Simulink Real-Time build options.
Release compatibility: Designed and validated for MATLAB R2026a and later. Earlier releases differ in APIs, system target files, and workflows — use that release's product documentation instead.
When to Use
- Setting up a Simulink model for Simulink Real-Time, or preparing it before
slbuild - Selecting or correcting the system target file (STF/TLC), including models on
grt.tlcorert.tlc - Reviewing or setting fixed-step solver options for real-time execution while preserving the model's intended dynamics and sample-time behavior
- Configuring model parameters for a selected Speedgoat target computer or compatible Linux device — toolchain details, or Simulink Real-Time options (log level, polling mode, max file log runs, GCC
-ffast-math) - Handling errors about incompatible target platforms or missing target platform selection
- Running Upgrade Advisor for an older Simulink Real-Time model
When NOT to Use
If the task crosses one of these lines, load the named skill before writing that code, then come back.
- Defining or editing a target (IP, credentials,
TargetSettings,addTarget), RTOS update, network/SSH setup, or troubleshooting a target that will not connect →simulink-configure-real-time-target. Selecting an already-defined target and callingconnect(tg)with the user's consent stays in this skill (Step 1). slbuild,tg.load,tg.start,tg.stop,tg.Stimulation→simulink-run-real-time-application- Capturing signal values during a run (
slrealtime.Instrument, file log, SDI, MATLAB callbacks) →simulink-instrument-real-time-application - Test-pointing or canvas-badging signals (
set_param(port, 'TestPoint', ...),markSignalForStreaming) →simulink-instrument-real-time-application(setup-phase ops, not this skill) - Editing model structure (blocks, connections), or desktop simulation with
simorparsim
STF values — do not hard-code; call getSTFName(tg) and let the installed support package decide. Never use slrealtime.tlc for Speedgoat hardware in R2026a+. When tg is unreachable, see references/disconnected-workflow.md; for which value each support package resolves to, see references/stf-by-target.md.
Prerequisites
- MATLAB R2026a or newer
- Simulink Real-Time installed (
verlists "Simulink Real-Time") - A relevant support package installed for the target hardware:
- Speedgoat hardware → Speedgoat Add-On (provides
speedgoat.tlcfor standard targets andspeedgoat_aarch64.tlcfor Speedgoat Pulse) - Linux x86-64 devices → Embedded Coder Support Package for Real-Time Linux (requires Embedded Coder and provides
slrtlinux_x64.tlc)
- Speedgoat hardware → Speedgoat Add-On (provides
- Model is loaded in Simulink (
load_systemoropen_system) - Read
references/api-reference.mdbefore writing code. It lists the only APIs and model configuration parameters this skill uses; do not invent variants.
Workflow
| Step | What | Detail |
|---|---|---|
| 1 | Choose the target — ask before connecting | below |
| 2 | Load the model | below |
| 3 | Inspect the existing configuration | below |
| 4 | Check for a referenced config set | below |
| 5 | Run Upgrade Advisor when the model is legacy | references/upgrade-advisor.md |
| 6 | Configure for the target platform (default path) | below |
| 7 | Resolve the STF manually (fallback only) | references/stf-by-target.md |
| 8 | Configure solver settings | below |
| 9 | Preserve user intent around stop time | below |
| 10 | Configure Simulink Real-Time options | references/slrt-options.md, references/compiler-options.md |
| 11 | Validate product and add-on assumptions | below |
| 12 | Validate configuration before saving | below |
| 13 | Run update diagram (ask first) | below |
| 14 | Save only after the user agrees | below |
No reachable target at any point → references/disconnected-workflow.md.
1. Choose the Target — Ask Before Connecting
Never call connect(tg) without user consent, and never pick a target on the user's behalf. Even if only one target is defined, surface it and confirm.
- User named a target (e.g., "configure for target
sg") —tg = slrealtime("sg"), then ask permission beforeconnect(tg). - User did not name a target — list
getTargetNames(slrealtime.Targets)and ask which one to use. If only one exists, still confirm. - No targets are defined, and the user described their hardware — give the best STF guess from that description (Speedgoat →
speedgoat.tlcunless it is a Speedgoat Pulse; Speedgoat Pulse →speedgoat_aarch64.tlc; Real-Time Linux x86-64 →slrtlinux_x64.tlc) and recommend defining a target withsimulink-configure-real-time-targetfor more accurate results. If they proceed without one, followreferences/disconnected-workflow.mdinstead ofgetSTFName. - No target is reachable and the user has not described their hardware — stop before any
SystemTargetFilewrite. Name the options (Speedgoat / Speedgoat Add-On, including the Pulse exception; Real-Time Linux x86-64 / Embedded Coder Support Package for Real-Time Linux), ask which applies, then loadsimulink-configure-real-time-targetto define the target. Do not resolve this gate from installed products — see the Never list.
The following Simulink Real-Time targets are defined on this machine:
<name1>,<name2>, ... Which one should I configure<model>for? I will ask before connecting.
An authorized connect(tg) can still fail or block. Guard the call; when it fails, report err.identifier and the cause (never the raw error block) and switch to the disconnected fallback rather than retrying blindly or leaving the model half-configured.
2. Load the Model
Run load_system(model) and confirm with bdIsLoaded(model). If the model is not on the MATLAB path, locate it or ask the user to confirm the path before changing settings.
3. Inspect Existing Configuration
Read SystemTargetFile, SolverType, Solver, and FixedStep before changing anything, so the change can be explained before saving. Also read StopTime and the Simulink Real-Time options if the user asked about runtime duration, logging, polling mode, or compiler behavior.
A model already on a Simulink Real-Time family target file is not necessarily wrong — verify it against the selected target. A legacy target file (slrealtime.tlc, slrt.tlc, slrtert.tlc, xpctarget.tlc, xpctargetert.tlc) goes to Step 5 before any STF change. Step 5 does not depend on the target or the support package: run it even when Step 1 or Step 11 stops the STF write.
4. Check for External or Referenced Configuration Sets
cs = getActiveConfigSet(model);
usesConfigSetRef = isa(cs, "Simulink.ConfigSetRef");
A referenced config set can be shared by every model that references it. Do not silently detach or replace it — ask for explicit permission unless the user already requested that behavior.
5. Run Upgrade Advisor When Needed
Run upgradeadvisor(model) before any SystemTargetFile write when the model is legacy — created in an older release, reporting migration errors, or on one of the legacy target files above. references/upgrade-advisor.md has the trigger list, handling order, and the two valid check IDs. Warn the user that the advisor fixes may migrate or discard legacy settings; upgrade first, then configure, and never build from a legacy target file. The target-selection and support-package stops (Steps 1 and 11) gate the SystemTargetFile write, not Upgrade Advisor — run the advisor first, then ask.
6. Configure Model for Target Platform (Default Path)
Use this unless the user explicitly asked for manual STF control.
model = "myModel";
tg = slrealtime("targetName");
load_system(model);
try
connect(tg); % only after the user approved this specific target name
configureModelForTargetPlatform(tg, model);
catch err
% Report err.identifier + cause; then use references/disconnected-workflow.md
end
It sets SystemTargetFile to the STF that getSTFName(tg) returns and switches SolverType to Fixed-step in one call. Do not also write SolverType, and do not call getSTFName(tg) first to "confirm" — that adds noise to the narrative.
It can prompt interactively. When it cannot resolve the platform it opens the modal Speedgoat Target Platform Selector, which blocks a non-interactive session. Call it only against a connected target whose platform resolves; otherwise take the disconnected fallback.
7. Resolve the System Target File (Manual Fallback Only)
Only when the user asked to drive SystemTargetFile themselves, or another workflow needs the STF string first: modelSTF = getSTFName(tg);, write it to SystemTargetFile, and verify before saving. Never hard-code an STF without going through the support-package question.
8. Configure Solver Settings
After Step 6, SolverType is already Fixed-step — skip it. After a manual or disconnected STF write, set SolverType to Fixed-step.
Set FixedStep only to a value the user gave; otherwise preserve the current value unless it is invalid. auto infers the fundamental sample time from the model. Solver choice depends on the model: FixedStepDiscrete for a fully discrete model, ode1/ode3/ode4 when continuous states are present, or FixedStepAuto to let Simulink choose.
Do not switch continuous to discrete dynamics, change solver order, or change the base rate as a silent cleanup — those change numerical behavior, real-time load, and test results. Involve the user when the tradeoff is not obvious; for structured regression checks, use testing-simulink-models.
9. Preserve User Intent Around Stop Time
Desktop StopTime does not govern target execution; runtime stop-time control (setStopTime(tg, ...), start(tg, "StopTime", ...)) belongs to simulink-run-real-time-application. Write model-level StopTime only when the user wants the saved model to carry that value, then verify the readback.
10. Configure Simulink Real-Time Options
The Simulink Real-Time Options pane appears only after a Simulink Real-Time STF is selected. The five option names in references/api-reference.md are the only ones this skill names. Read an option's current value before writing it; if the active config set does not expose it, report the mismatch instead of writing. Enable UseGCCFastMath only on explicit request. Do not override target-managed toolchain, make-command, or target-language parameters. Dialog names and per-option guidance: references/slrt-options.md; custom compiler flags: references/compiler-options.md.
11. Validate Product and Add-On Assumptions
Before diagnosing STF errors, check v = ver; installedNames = string({v.Name}); for MATLAB, Simulink, Simulink Coder, and Simulink Real-Time. Speedgoat hardware also needs the Speedgoat Add-On for speedgoat.tlc and speedgoat_aarch64.tlc.
This check establishes capability, not intent — never use it to infer which hardware the user is targeting.
A missing support package stops this workflow. When the user has named their hardware and the add-
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
133.6kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
133.6kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
