使用matlab官网的skills调用claude-待完成

matlab/simulink-agentic-toolkit:Simulink 代理工具包为您的AI代理提供工具和专业知识,使其能够有效使用Simulink和基于模型的设计。

matlab/matlab-agentic-toolkit:MATLAB 代理工具包为人工智能代理带来了值得信赖的 MATLAB 能力,使工程和科学工作流都已准备好代理。

claude安装结果

调用命令:

📌 使用前必读

Simulink 工具需要连接到已运行的 MATLAB 会话。每次使用前:

  1. 启动 MATLAB,然后执行:

addpath("~/.matlab/agentic-toolkits/simulink")

satk_initialize

  1. 重启 Claude Code 会话(让 MCP server 连接到 MATLAB)

  2. 验证:在 MATLAB 中打开一个模型(如 open_system("f14")),然后问我:

▎ "Describe the structure of the currently open model."
注意下以上路径要换成你使用的具体位置,如果不知道也可以让claude查找
贴上我的路径给大家做个参考

在 MATLAB 命令行中执行:

addpath('C:\Users\29785\matlab-agentic-toolkit\simulink-agentic-toolkit')

satk_initialize
matlab输出指令如下

>> test1

Simulink Agentic Toolkit - Installation Check

===============================================

Prerequisites

✓ MATLAB 24.2.0.3212159 (R2024b) Update 9

✓ Simulink installed and licensed

MATLAB Environment

✓ All 7 tool entry points on path

✓ Package resolution correct (+sage, +mbd inside SATK)

MCP Server

✓ matlab-mcp-core-server.exe found: C:\Users\29785\.matlab\agentic-toolkits\bin\matlab-mcp-core-server.exe

MCP Connectivity

✓ shareMATLABSession available (MATLAB-side MCP components installed)

✓ MATLAB connector running (port 31515)

===============================================

Result: PASS

>>

我打开了simulink的一个文件

"Describe the structure of the currently open model." named:Tinf_2.slx

询问cluade结果如下:

我当前的任务是制作simulink模型

指令如下:帮我新建一个simulink模型名字叫Quadrotor_drone

先在Matlab中显示出simulik,我需要看到界面

传感器模型代码完成。设置互补滤波器代码:

Thought for 3s, called simulink 2 times (ctrl+o to expand)

● 所有核心函数代码完成。现在重新连接 Controller 的第二个输入,并搭建 Mixer 子系统:

Thought for 2s, called simulink 2 times (ctrl+o to expand)

● Controller 连接完成。搭建 Mixer 子系统:

Thought for 2s, called simulink 2 times (ctrl+o to expand)

● Mixer 子系统创建完成。设置电机分配代码:

Thought for 3s, called simulink 2 times (ctrl+o to expand)

● 所有模块代码设置完成。现在重新连接顶层子系统:

● Calling simulink... (ctrl+o to expand)

Thought for 3s, called simulink 2 times (ctrl+o to expand)

● 所有连接完成!现在配置仿真参数:

Thought for 1s, called simulink (ctrl+o to expand)

● 仿真参数配置完成。更新任务状态并验证模型结构:

Thought for 3s (ctrl+o to expand)

Thought for 3s (ctrl+o to expand)

Thought for 1s (ctrl+o to expand)

Thought for 3s (ctrl+o to expand)

Thought for 2s (ctrl+o to expand)

Thought for 2s, called MCP (ctrl+o to expand)

● 所有任务完成。验证模型最终结构:

Thought for 3s, called simulink 2 times (ctrl+o to expand)

● 模型结构验证通过!保存模型:

Thought for 2s, called simulink (ctrl+o to expand)

● Quadrotor_drone 四旋翼无人机仿真模型已搭建完成!


模型总体架构

Reference Position ──► Controller ──► Mixer ──► Plant ──► Sensors ──┐

0;0;1 (PID) (分配) (6DOF) (MPU6050) │

▲ │

└──────── Attitude Estimator ◄──────────────┘

(互补滤波)

子系统说明

┌────────────────────┬──────────────────────────────────┬────────────────────────────────┐

│ 子系统 │ 功能 │ 核心算法 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Plant │ 6DOF 刚体动力学 + 电机模型 │ Newton-Euler 方程,12 状态变量 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Sensors │ MPU6050 加速度计/陀螺仪 + 气压计 │ 含噪声和偏置的真实传感器模拟 │

● 所有任务完成。验证模型最终结构:

Thought for 3s, called simulink 2 times (ctrl+o to expand)

● 模型结构验证通过!保存模型:

Thought for 2s, called simulink (ctrl+o to expand)

● Quadrotor_drone 四旋翼无人机仿真模型已搭建完成!


模型总体架构

Reference Position ──► Controller ──► Mixer ──► Plant ──► Sensors ──┐

0;0;1 (PID) (分配) (6DOF) (MPU6050) │

▲ │

└──────── Attitude Estimator ◄──────────────┘

(互补滤波)

子系统说明

┌────────────────────┬──────────────────────────────────┬────────────────────────────────┐

│ 子系统 │ 功能 │ 核心算法 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Plant │ 6DOF 刚体动力学 + 电机模型 │ Newton-Euler 方程,12 状态变量 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Sensors │ MPU6050 加速度计/陀螺仪 + 气压计 │ 含噪声和偏置的真实传感器模拟 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Attitude Estimator │ 姿态解算 │ 互补滤波 (α=0.98) │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Controller │ 级联 PID 控制 │ 位置环→姿态环→高度环 │

├────────────────────┼──────────────────────────────────┼────────────────────────────────┤

│ Mixer │ 电机分配 │ X 型四旋翼混控矩阵 │

└────────────────────┴──────────────────────────────────┴────────────────────────────────┘

仿真配置

  • 求解器:ode4 (固定步长)

  • 步长:0.001s

  • 仿真时长:20s

下一步操作

  1. 运行仿真:在 MATLAB 命令窗口输入 sim('Quadrotor_drone')

  2. 查看结果:plot_results.m 绘制曲线

  3. 调参优化:使用 PID Tuner 调整控制器参数

  4. 增加场景:修改 Reference Position 实现轨迹跟踪

全自动生成结果

第一次报错

=== 仿真 (已用时间: 13 秒) ===

错误:要串联的数组的维度不一致。

函数 'Sensors/MPU6050 + Baro' (#43.1277.1308),行 41,列 14:

"acc_meas; gyro_meas; baro_alt"

启动诊断报告。

错误:数组元素 7 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Attitude Estimator/Complementary Filter' (#50.494.495),行 18,列 24:

"7"

启动诊断报告。

错误:解析 'Quadrotor_drone/Attitude Estimator/Complementary Filter' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Attitude Estimator/Complementary Filter' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.746.747),行 23,列 36:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.764.765),行 23,列 54:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.782.783),行 24,列 15:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Controller/Cascade PID' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.342.343),行 14,列 14:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.374.375),行 15,列 14:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.407.408),行 16,列 14:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Mixer/Motor Mixer' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Mixer/Motor Mixer' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:Simulink 没有足够的信息来确定此模块的输出大小。如果您认为以下错误不准确,请尝试指定模块输入的类型和/或模块输出的大小。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.729.730),行 30,列 20:

"2"

启动诊断报告。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.781.782),行 31,列 27:

"2"

启动诊断报告。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.851.852),行 32,列 52:

"2"

启动诊断报告。

错误:解析 'Quadrotor_drone/Plant/6DOF Dynamics' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Plant/6DOF Dynamics' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:Simulink 没有足够的信息来确定此模块的输出大小。如果您认为以下错误不准确,请尝试指定模块输入的类型和/或模块输出的大小。

错误:要串联的数组的维度不一致。

函数 'Sensors/MPU6050 + Baro' (#43.1277.1308),行 41,列 14:

"acc_meas; gyro_meas; baro_alt"

启动诊断报告。

错误:解析 'Quadrotor_drone/Sensors/MPU6050 + Baro' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Sensors/MPU6050 + Baro' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.746.747),行 23,列 36:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.764.765),行 23,列 54:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.782.783),行 24,列 15:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Controller/Cascade PID' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

第一次修复结果

错误原因是 MATLAB Function

块无法自动推断输入信号的维度。我需要为每个函数块明确定义输入输出的大小和类型。

Thought for 9s, called simulink 2 times (ctrl+o to expand)

● Stateflow API 路径不同。我换一种方法,直接用 coder.newtype 来设置端口规格:

Thought for 32s, called simulink 5 times (ctrl+o to expand)

第二次报错

=== 仿真 (已用时间: 13 秒) ===

错误:要串联的数组的维度不一致。

函数 'Sensors/MPU6050 + Baro' (#43.1277.1308),行 41,列 14:

"acc_meas; gyro_meas; baro_alt"

启动诊断报告。

错误:数组元素 7 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Attitude Estimator/Complementary Filter' (#50.494.495),行 18,列 24:

"7"

启动诊断报告。

错误:解析 'Quadrotor_drone/Attitude Estimator/Complementary Filter' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Attitude Estimator/Complementary Filter' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.746.747),行 23,列 36:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.764.765),行 23,列 54:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.782.783),行 24,列 15:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Controller/Cascade PID' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.342.343),行 14,列 14:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.374.375),行 15,列 14:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Mixer/Motor Mixer' (#65.407.408),行 16,列 14:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Mixer/Motor Mixer' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Mixer/Motor Mixer' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:Simulink 没有足够的信息来确定此模块的输出大小。如果您认为以下错误不准确,请尝试指定模块输入的类型和/或模块输出的大小。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.729.730),行 30,列 20:

"2"

启动诊断报告。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.781.782),行 31,列 27:

"2"

启动诊断报告。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Plant/6DOF Dynamics' (#36.851.852),行 32,列 52:

"2"

启动诊断报告。

错误:解析 'Quadrotor_drone/Plant/6DOF Dynamics' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Plant/6DOF Dynamics' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:Simulink 没有足够的信息来确定此模块的输出大小。如果您认为以下错误不准确,请尝试指定模块输入的类型和/或模块输出的大小。

错误:要串联的数组的维度不一致。

函数 'Sensors/MPU6050 + Baro' (#43.1277.1308),行 41,列 14:

"acc_meas; gyro_meas; baro_alt"

启动诊断报告。

错误:解析 'Quadrotor_drone/Sensors/MPU6050 + Baro' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Sensors/MPU6050 + Baro' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:数组元素 2 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.746.747),行 23,列 36:

"2"

启动诊断报告。

错误:数组元素 3 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.764.765),行 23,列 54:

"3"

启动诊断报告。

错误:数组元素 4 超出边界。请修改索引表达式以访问范围 1-1 内的元素。

详细信息

函数 'Controller/Cascade PID' (#57.782.783),行 24,列 15:

"4"

启动诊断报告。

错误:解析 'Quadrotor_drone/Controller/Cascade PID' 时出错。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

错误:由于模块体中的错误或基础分析的限制,Simulink 无法确定模块 'Quadrotor_drone/Controller/Cascade PID' 的输出大小和/或类型。错误可能不准确。请修复指示的错误,或显式指定所有模块输出的大小和/或类型。

=== 仿真 (已用时间: 12 秒) ===

错误:'Quadrotor_drone/Plant/6DOF Dynamics' 或它引用的模型包含在计算输出时更新持久变量或状态变量的模块,并且在代数环中不受支持。它位于包含以下模块的代数环中。

错误:'Quadrotor_drone/Sensors/MPU6050 + Baro' 或它引用的模型包含在计算输出时更新持久变量或状态变量的模块,并且在代数环中不受支持。它位于包含以下模块的代数环中。

错误:'Quadrotor_drone/Attitude Estimator/Complementary Filter' 或它引用的模型包含在计算输出时更新持久变量或状态变量的模块,并且在代数环中不受支持。它位于包含以下模块的代数环中。

错误:'Quadrotor_drone/Controller/Cascade PID' 或它引用的模型包含在计算输出时更新持久变量或状态变量的模块,并且在代数环中不受支持。它位于包含以下模块的代数环中。

错误:'Quadrotor_drone/Plant/6DOF Dynamics' 的输入端口(1) 涉及该代数环。

错误:'Quadrotor_drone/Sensors/MPU6050 + Baro' 的输入端口(1) 涉及该代数环。

错误:'Quadrotor_drone/Attitude Estimator/Complementary Filter' 的输入端口(1) 涉及该代数环。

错误:'Quadrotor_drone/Controller/Cascade PID' 的输入端口(2) 涉及该代数环。

错误:'Quadrotor_drone/Mixer/Motor Mixer' 的输入端口(1) 涉及该代数环。

第二次修复结果

版本一,可输出sim_out数据,添加功能可视化界面

按照淘宝商家界面对模型进行优化

memory功能存储这次的命令

GitHub - thedotmack/claude-mem: Persistent Context Across Sessions for Every Agent -- Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More · GitHubPersistent Context Across Sessions for Every Agent -- Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More - thedotmack/claude-memhttps://github.com/thedotmack/claude-mem

相关推荐
Cthy_hy1 小时前
Python算法竞赛:排列组合核心用法
开发语言·python·算法
大圣编程1 小时前
面向对象深度理解
java·开发语言·算法
爱喝水的鱼丶1 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第四篇:SAP 报表异常处理机制:数据校验与消息提示规范落地
开发语言·数据库·学习·算法·sap·abap
影寂ldy1 小时前
C# const 常量 / readonly 只读 / static readonly
java·开发语言·c#
iCxhust2 小时前
c#多串口重量采集上位机程序
开发语言·汇编·c#·微机原理·8088单板机
QK_002 小时前
volatile 关键字核心作用
开发语言
Dxy12393102162 小时前
Python Tensor 向量入门:从零理解深度学习的“数据语言“
开发语言·python·深度学习
林森lsjs2 小时前
【日耕一题】3. 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
java·开发语言