← ClaudeAtlas

matlab-ai-generatorlisted

根据用户提供的精确参数生成 MATLAB/Simulink 仿真代码。使用场景:用户要求生成 MATLAB 脚本、Simulink 模型、仿真代码,或要求修改现有仿真参数时自动触发。
LiHongwei-cn/lihongwei-cn · ★ 9 · AI & Automation · score 76
Install: claude install-skill LiHongwei-cn/lihongwei-cn
# MATLAB-AI 代码生成器 根据用户提供的精确数值参数,生成兼容 R2016b 的 MATLAB/Simulink 仿真代码。 ## 核心原则 1. **参数精确性**:用户提供的每个数值都必须精确使用,不允许 AI 自行假设或修改 2. **R2016b 兼容**:禁止使用 2017+ 函数(如 `rms`、`arguments`、`string`) 3. **向量化优先**:能用向量化操作的不用循环 4. **前向欧拉法**:数值积分使用显式欧拉法,不依赖隐式求解器 ## 触发条件 当用户消息包含以下关键词时自动触发: - 生成 MATLAB / 生成仿真 / 写一个 MATLAB 脚本 - Simulink 模型 / 搭建模型 / 自动生成模型 - 修改参数 / 调整参数 / 优化参数 - 仿真 / 仿真代码 / 仿真脚本 ## 工作流程 ### Step 1: 收集参数 向用户询问以下信息(如果用户未提供): **必填参数:** - 仿真类型(动力学/电机控制/电池管理/能量管理/自定义) - 关键物理参数(质量、电阻、电感、电容等)及其精确数值 - 仿真时间范围和步长 - 输入信号定义(阶跃/斜坡/正弦/自定义) **可选参数:** - 输出要求(绘图类型、数据导出格式) - 性能指标要求(超调量、调节时间等) - 特殊约束(R2016b 兼容、不含 Simulink 等) ### Step 2: 参数验证 在生成代码前,验证参数的物理合理性: ```matlab % 参数验证示例 assert(param.m > 0, '质量必须为正数'); assert(param.Rs > 0, '电阻必须为正数'); assert(dt > 0 && dt < T, '步长必须在 (0, T) 范围内'); ``` ### Step 3: 生成代码 #### MATLAB 脚本模板 ```matlab %% [仿真名称] % MATLAB R2016b 兼容 % 生成时间: [日期] % 参数来源: 用户精确输入 clear; clc; close all; %% 参数定义(用户精确值) % [根据用户输入填充] %% 仿真设置 dt = [用户值]; % 步长 [s] T = [用户值]; % 总时长 [s] t = 0:dt:T; n = length(t); %% 初始化 % [根据仿真类型初始化状态变量] %% 主仿真循环(前向欧拉法) for i = 2:n % [状态更新方程] end %% 绘图 figure('Position', [100 100 800 600]); % [根据用户要求绘图] %% 输出结果 fprintf('===== 仿真结果 =====\n'); % [输出关键指标] ``` #### 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 '/