← ClaudeAtlas

matlab-simulink-generatorlisted

自动生成 Simulink 模型(.slx 文件)。使用场景:用户要求生成 Simulink 模型、搭建仿真模型、创建控制系统模型时自动触发。兼容 R2016b。
LiHongwei-cn/lihongwei-cn · ★ 9 · AI & Automation · score 76
Install: claude install-skill LiHongwei-cn/lihongwei-cn
# Simulink 模型自动生成器 根据用户提供的精确参数,自动生成 Simulink 模型文件(.slx)。 ## 核心原则 1. **R2016b 兼容**:使用 `add_block`、`add_line` 等基础 API 2. **参数精确**:用户提供的每个数值都必须精确设置到模块参数中 3. **自动连线**:根据模块类型自动连接信号线 4. **仿真就绪**:生成后可直接运行 ## 触发条件 当用户消息包含以下关键词时自动触发: - Simulink 模型 / 搭建模型 / 生成模型 - 控制系统 / 反馈系统 / 闭环系统 - 传递函数 / 状态空间 / 框图 ## 工作流程 ### Step 1: 收集模型信息 向用户询问以下信息: **必填信息:** - 模型类型(控制系统/动力学/信号处理/自定义) - 模块组成(输入源、被控对象、控制器、输出等) - 各模块的精确参数值 - 仿真时间范围和步长 **可选信息:** - 模型名称 - 是否需要 Scope 显示 - 是否需要数据导出到 Workspace ### Step 2: 生成 Simulink 模型脚本 使用 MATLAB 脚本自动创建 Simulink 模型: ```matlab %% 自动生成 Simulink 模型 % MATLAB R2016b 兼容 % 生成时间: [日期] modelName = '[模型名称]'; % 检查并关闭已打开的模型 if bdIsLoaded(modelName) close_system(modelName, 0); end % 创建新模型 new_system(modelName); open_system(modelName); % ========== 添加模块 ========== % 输入源 add_block('simulink/Sources/Step', [modelName '/Reference']); set_param([modelName '/Reference'], ... 'Time', '[用户值]', ... 'Before', '[用户值]', ... 'After', '[用户值]'); % 控制器 add_block('simulink/Continuous/Transfer Fcn', [modelName '/Controller']); set_param([modelName '/Controller'], ... 'Numerator', '[用户值]', ... 'Denominator', '[用户值]'); % 被控对象 add_block('simulink/Continuous/Transfer Fcn', [modelName '/Plant']); set_param([modelName '/Plant'], ... 'Numerator', '[用户值]', ... 'Denominator', '[用户值]'); % 输出 add_block('simulink/Sinks/Scope', [modelName '/Scope']); add_block('simulink/Sinks/To Workspace', [modelName '/ToWorkspace']); set_param([modelName '/ToWorkspace'], ..