跳到正文
cccskills
免费在 GitHub 公开

simulating-simulink-models

Configures Simulink simulations non-destructively using SimulationInput objects — parameter overrides without modifying the model, batch sweeps via parsim, custom input signals via Dataset, and simulation data retrieval via logsout. Use when running sim()/parsim() with setVariable, setBlockParameter, setExternalInput, or when performing parameter sweeps and multi-run analysis. Not needed for one-shot simulations without configuration.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md5.6 KB
  • manifest.yaml650 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Simulating Simulink Models with the sim Command

Use this skill when you need to configure a simulation non-destructively — parameter overrides, custom inputs, batch execution, or structured output access. For persistent, reusable pass/fail behavioral testing (especially of individual subsystems), use testing-simulink-models instead. For trivial one-shot simulations without configuration, a direct sim() call suffices without this skill.

When to Use

  • Overriding model or block parameters non-destructively (setVariable, setBlockParameter, setModelParameter) — without modifying the .slx file
  • Passing custom input signals to root-level Inport blocks via setExternalInput with a Dataset
  • Running parameter sweeps or batch simulations (SimulationInput arrays, parsim, Fast Restart)
  • Accessing logged signal data (logsout) for analysis after simulation

When NOT to Use

  • Trivial one-shot simulations without parameter overrides or custom inputs — a direct sim('ModelName') call works without this skill
  • Writing declarative Gherkin-based tests → use testing-simulink-models
  • Testing an individual subsystem or component → use testing-simulink-models (requires Simulink Test; auto-creates a harness, compiles only the subsystem — much faster than sim() which always compiles the entire model)
  • Adding, connecting, or deleting blocks → use building-simulink-models
  • Checking model structure for unconnected ports → use model_check tool directly
  • Generating requirements from model behavior → use generate-requirement-drafts

Minimal working pattern

Always simulate using Simulink.SimulationInput and Simulink.SimulationOutput:

in = Simulink.SimulationInput('MyModel');
in = in.setModelParameter('StopTime', '10');
out = sim(in);

Setting parameters

Use SimulationInput methods to configure the simulation:

% Model-level parameters (StopTime, SolverType, SimulationMode, etc.)
in = in.setModelParameter('StopTime', '10', 'SolverType', 'Fixed-step');

% Block parameters — resolve path from blk_X ID (never type block names manually)
blkPath = Simulink.ID.getFullName('MyModel:5');
in = in.setBlockParameter(blkPath, 'Gain', '5');

% MATLAB workspace variables used by the model
in = in.setVariable('Kp', 1.2);

Input signals

Pass input signals through Inport blocks using a Simulink.SimulationData.Dataset. Elements are matched to Inport blocks by index position — the first element maps to the Inport with port number 1, the second to port number 2, and so on.

dt = 0.01;
N = 1000;
t = dt*(0:N)';
u = sin(2*pi*t);

ts = timeseries(u, t);

ds = Simulink.SimulationData.Dataset;
ds{1} = ts;

in = in.setExternalInput(ds);
out = sim(in);

You can also use timetable as an input format:

secs = seconds(t);
tt = timetable(secs, u);

ds = Simulink.SimulationData.Dataset;
ds{1} = tt;

in = in.setExternalInput(ds);

Discovering logged data

First, discover what kinds of logged data the model produces using who, then inspect signal names within logsout:

in = Simulink.SimulationInput('MyModel');
out = sim(in);

% See what logging properties exist (logsout, yout, tout, etc.)
who(out)

% List individual signal names within logsout
disp(out.logsout.getElementNames);

Accessing logged data

Logged signals are available through out.logsout. Access them directly by name:

% Plot a logged signal
plot(out.logsout.get('signalName').Values)

% Get time and data separately
sig = out.logsout.get('signalName').Values;
plot(sig.Time, sig.Data)

Multiple simulations

When running many simulations, create an array of Simulink.SimulationInput objects:

in = repmat(Simulink.SimulationInput('MyModel'),N,1);
for k = 1:N
    in(k) = Simulink.SimulationInput('MyModel');
    in(k) = in(k).setVariable('gain', gains(k));
end
out = sim(in);

To enable fast restart for iterative sweeps (compiles the model only once):

out = sim(in, 'UseFastRestart', 'on');

Parallel simulation (parsim)

To run multiple simulations in parallel, use parsim instead of looping over sim:

for k = 1:N
    in(k) = Simulink.SimulationInput('MyModel');
    in(k) = in(k).setVariable('gain', gains(k));
end
out = parsim(in);

parsim also supports 'UseFastRestart','on' for faster batch runs.

Guardrails

  • Never use set_param, load_system, or open_system to drive simulation — SimulationInput replaces all of these.
  • Never wrap SimulationOutput access in try-catch or isfield — sim either returns a valid object or throws. SimulationOutput has no isfield method.
  • Never create unnecessary intermediate variables for logged data — access directly via out.logsout.get('name').Values.
  • Always use in/out as variable names for SimulationInput/SimulationOutput.
  • Always use setExternalInput with a Dataset — don't pass comma-separated lists of variables.

Copyright 2026 The MathWorks, Inc.


评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Author or upgrade Model Advisor checks for Simulink and System Composer models. Covers the full lifecycle: guideline authoring, check specification, Model Advisor check implementation, and qualification testing. Use when creating new checks (edit-time, standard batch, config-parameter, auto-fix), converting legacy StyleOne/StyleTwo/StyleThree checks to modern DetailStyle, creating a guideline for modeling, enforcing a modeling rule, or testing/qualifying a check. Triggers on any modeling constraint (e.g., "blocks shall...", "signals must match...", "parameters shall be set to...").

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

Synthesize new waveforms from scratch for Simulink inports using createInputDataset. Use ONLY when the user asks to generate, create, or synthesize signals (step, ramp, sine, chirp, pulse, noise) to populate a Dataset for External Inputs or Signal Editor. Covers timeseries and timetable formats with correct data type, interpolation, units, and dimensions. Also covers function-call and trigger inport timing setup. Do NOT use when the user wants to load, import, or read existing data from files (MAT, CSV, spreadsheet) — even if that data will be used as model input. Do NOT use for running simulations or plotting outputs.

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

Common steps for building multi-layer system architecture models using System Composer. Use when implementing architecture models or when interacting with interface dictionaries, allocation sets, stereotypes, and requirements for architecture components.

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

Builds and edits Simulink, System Composer, Stateflow, and Simscape models. Use when modifying model structure, parameters, ports, connections, or Stateflow chart internals.

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

Use this skill when the user asks to check Simulink model compliance against a standard (MISRA, MAB, JMAAB, ISO, DO, IEC, EN, CERT C/CWE, AUTOSAR, Simulink Code Inspector (SLCI)), wants to run Model Advisor checks, or needs a compliance report with fix suggestions. For JMAAB/MAB, supplement deterministic checks with agentic review of uncheckable guidelines.

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

Guide users through creating and managing .satk/block-policy.json for controlling which blocks the agent can use, which are excluded, and which block parameters the agent should not modify. Use when setting up block usage policy for a project.

中文简介正在准备中。当前显示原文说明。

matlab/simulink-agentic-toolkit12382026年10月15日 更新

查看 matlab 的全部技能

报告此技能的问题