压缩空气储能仿真simulink模型 适合matlab 2017及以上版本
压缩空气储能仿真simulink模型
适合matlab 2017及以上版本
MATLAB 代码示例
%% 初始化模型
modelName = ‘MyPowerSystem’;
new_system(modelName); % 创建新模型
open_system(modelName); % 打开模型窗口
%% 1. 添加控制回路模块 (左下角部分)
% 添加一个传递函数 (Transfer Fcn) - 对应图中的 2/(0.5s+2)
add_block(‘simulink/Continuous/Transfer Fcn’, [modelName ‘/MyTF1’]);
set_param([modelName ‘/MyTF1’], ‘Numerator’, ‘[2]’, ‘Denominator’, ‘[0.5 2]’);
set_param([modelName ‘/MyTF1’], ‘Position’, [100 300 160 340]);
% 添加一个积分环节 (Integrator) - 对应图中的 1/s
add_block(‘simulink/Continuous/Integrator’, [modelName ‘/Integrator1’]);
set_param([modelName ‘/Integrator1’], ‘Position’, [180 300 210 340]);
% 添加增益 (Gain)
add_block(‘simulink/Math Operations/Gain’, [modelName ‘/Gain1’]);
set_param([modelName ‘/Gain1’], ‘Position’, [250 300 280 330]);
% 添加求和节点 (Sum)
add_block(‘simulink/Math Operations/Sum’, [modelName ‘/Sum1’]);
set_param([modelName ‘/Sum1’], ‘Position’, [50 300 70 320]);
%% 2. 添加主电路/测量模块 (中间部分)
% 这里以添加一个通用桥(Universal Bridge)为例,图中看起来像是一个逆变器或整流器
add_block(‘Simscape/Electrical/Specialized Power Systems/Fundamental Blocks/Power Electronics/Universal Bridge’, [modelName ‘/Universal Bridge’]);
set_param([modelName ‘/Universal Bridge’], ‘Position’, [400 150 500 300]);
% 添加示波器 (Scope)
add_block(‘simulink/Sinks/Scope’, [modelName ‘/Scope_Main’]);
set_param([modelName ‘/Scope_Main’], ‘Position’, [600 100 630 130]);
%% 3. 添加逻辑/信号处理 (左上角部分)
% 添加一个多路复用器 (Mux)
add_block(‘simulink/Signal Routing/Mux’, [modelName ‘/Mux1’]);
set_param([modelName ‘/Mux1’], ‘Position’, [200 100 230 150]);
%% 4. 连接模块 (示例连接)
% 连接 Sum -> Transfer Fcn
add_line(modelName, ‘Sum1/1’, ‘MyTF1/1’);
% 连接 Transfer Fcn -> Integrator
add_line(modelName, ‘MyTF1/1’, ‘Integrator1/1’);
% 连接 Integrator -> Gain
add_line(modelName, ‘Integrator1/1’, ‘Gain1/1’);
% 连接 Gain -> Universal Bridge (假设连接到控制端口)
add_line(modelName, ‘Gain1/1’, ‘Universal Bridge/1’);
%% 整理布局并保存
save_system(modelName);
如何使用这段代码
打开 MATLAB 软件。
点击“新建脚本”。
点击“运行”。
MATLAB 会自动弹出一个名为 MyPowerSystem 的窗口

请在 MATLAB 命令行或脚本中运行以下代码:
function create_motor_model()
% 1. 定义模型名称并新建模型
modelName = ‘Motor_Control_System’;
new_system(modelName, ‘Model’);
open_system(modelName);
% 2. 添加底层控制回路 (左下角部分)
% 添加传递函数模块: 2 / (0.5s + 2)
add_block('simulink/Continuous/Transfer Fcn', [modelName '/Plant_TF']);
set_param([modelName '/Plant_TF'], 'Position', [150 300 230 340], ...
'Numerator', '[2]', 'Denominator', '[0.5 2]');
% 添加积分环节: 1/s
add_block('simulink/Continuous/Integrator', [modelName '/Integrator']);
set_param([modelName '/Integrator'], 'Position', [260 300 290 340]);
% 添加增益 Gain (假设是Kp或Ki)
add_block('simulink/Math Operations/Gain', [modelName '/Gain_K']);
set_param([modelName '/Gain_K'], 'Position', [320 300 350 330], 'Gain', '1');
% 添加求和点 Sum
add_block('simulink/Math Operations/Sum', [modelName '/Sum_Junction']);
set_param([modelName '/Sum_Junction'], 'Position', [100 310 120 330], 'Inputs', '|+-');
% 3. 添加电机主体模块 (中间部分)
% 注意:这里使用通用的异步电机模块作为示例,你需要根据实际库选择 PMSM 或 ASM
add_block('powerlib/Machines/Asynchronous Machine SI Units', [modelName '/Asynchronous Machine']);
set_param([modelName '/Asynchronous Machine'], 'Position', [450 200 550 350]);
% 4. 添加测量与示波器 (右侧部分)
% 添加示波器 Scope
add_block('simulink/Sinks/Scope', [modelName '/Scope_Output']);
set_param([modelName '/Scope_Output'], 'Position', [650 200 680 230]);
% 添加电压测量
add_block('powerlib/Measurements/Voltage Measurement', [modelName '/Voltage_Measurement']);
set_param([modelName '/Voltage_Measurement'], 'Position', [580 180 600 200]);
% 5. 连接模块 (示例连接)
% 连接 Sum -> Plant_TF
add_line(modelName, 'Sum_Junction/1', 'Plant_TF/1');
% 连接 Plant_TF -> Integrator
add_line(modelName, 'Plant_TF/1', 'Integrator/1');
% 连接 Integrator -> Gain
add_line(modelName, 'Integrator/1', 'Gain_K/1');
% 自动排列布局
Simulink.BlockDiagram.arrangeSystem(modelName);
disp(['模型 ' modelName ' 已生成成功!请检查模块参数。']);
end
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)