matlab-ai-generatorlisted
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 '/