SkillAgentSearch skills...

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-model

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

88/100

Category

Operations

Supported Platforms

Universal

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.

Substance
30/30
Structure
18/20
Description
12/15
Adoption
13/20
Freshness
15/15

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.

SkillScoreStarsUpdatedFormat
simulink-configure-real-time-model (this skill)by matlab881.1k26d agoSKILL.md
algorithmic-artby anthropics100177.9k21d agoSKILL.md
pptxby anthropics100177.9k21d agoSKILL.md
designby nextlevelbuilder100133.6k10d agoSKILL.md
ui-ux-pro-maxby nextlevelbuilder100133.6k10d agoSKILL.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.

name: 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.tlc or ert.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 calling connect(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 sim or parsim

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 (ver lists "Simulink Real-Time")
  • A relevant support package installed for the target hardware:
    • Speedgoat hardware → Speedgoat Add-On (provides speedgoat.tlc for standard targets and speedgoat_aarch64.tlc for Speedgoat Pulse)
    • Linux x86-64 devices → Embedded Coder Support Package for Real-Time Linux (requires Embedded Coder and provides slrtlinux_x64.tlc)
  • Model is loaded in Simulink (load_system or open_system)
  • Read references/api-reference.md before 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.

  1. User named a target (e.g., "configure for target sg") — tg = slrealtime("sg"), then ask permission before connect(tg).
  2. User did not name a target — list getTargetNames(slrealtime.Targets) and ask which one to use. If only one exists, still confirm.
  3. No targets are defined, and the user described their hardware — give the best STF guess from that description (Speedgoat → speedgoat.tlc unless it is a Speedgoat Pulse; Speedgoat Pulse → speedgoat_aarch64.tlc; Real-Time Linux x86-64 → slrtlinux_x64.tlc) and recommend defining a target with simulink-configure-real-time-target for more accurate results. If they proceed without one, follow references/disconnected-workflow.md instead of getSTFName.
  4. No target is reachable and the user has not described their hardware — stop before any SystemTargetFile write. 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 load simulink-configure-real-time-target to 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

View on GitHub
GitHub Stars1.1k
CategoryOperations
Updated26d ago
Forks106

Languages

HTML

Trust signals

88/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium