
用simulink,simscape仿真电力电子时出现这报错,怎么解决呀
关注引自免费微信小程序:皆我百晓生
在MATLAB Simulink中,Simulink Academic Use(官方使用场合)环境中出现以下问题的解决方案通常涉及链接库模块使用、特殊函数和设置以及正确配置外部模块。
Simulink Academy Use环境中的报错提示:
"报警:尝试使用链接库模块。当使用链接库模块时,请创建链接库模块的子系统,然后使用新子系统作为DUT。"
代码示例:
% 创建新的链接库模块
add_module('LinkLib', 'Eql仿真', [], ['powergui/EquivalentModel1'], 'state-Space');
% 检查并加载单相半波整流的模拟模块
load('PowerGUI_Simulator單相HalfWaveRectifier.mat');
% 设置单相半波整流输入电压范围
set([Vref, Vcc], [0, 5]);
% 配置单元内电流源与电压源对称条件
rectifier(numOutput, numInput, 'Sinc', [], ...
'UseSource', 'MΩ', 'Use Voltage Source', 'kOhm', ...
'MinimumValue', 0, 'MaximumValue', Vref);
% 打印初始状态
disp(['Single Phase Half-Wave Rectifier Initial State: ', num2str(Vref), ' V']);
% 设定DUT参数,包括零欧姆电阻
[R_mΩ, U] = get_step_inputs('DUTparameters.m', 'R', 'U', 'SCK');
% 运行仿真
start_time = 0.1; % 开始时间,单位为秒
stop_time = 5; % 结束时间,单位为秒
while (stop_time <= stop_time + step_time) do
% 程序逻辑执行
% ...
% 将输出值写入断路器状态空间
write_sense(iOut, state_space);
% 更新DUT参数
[R_mΩ, U] = get_step_inputs('DUTparameters.m', 'R', 'U', 'SCK');
end
% 退出仿真流程
stopSimulation();
解决方法:
a. 确保使用的链接库模块是正确的类型:
在上述代码中,我们导入了一个名为LinkLib的链接库模块,该模块允许我们在state-Space子系统中引用其他库和模型。single_phase_half_wave_rectifier是一个模拟模块,因此你需要确保在创建或加载此模块时选择正确的LinkLib子系统,并正确地配置其位置(即添加到Simulink Academy Use环境中)。如果你尝试将single_phase_half_wave_rectifier存储为静态变量或全局变量,例如m.SIMULINK.ADMINS(single_phase_half_wave_rectifier),则必须创建一个关联式表达式(ARX)或库引用。
b. 检查和修复Module setup(模块初始化)过程中的设置:
% 创建新的链接库模块
add_module('LinkLib', 'Eql仿真', [], ['powergui/EquivalentModel1'], 'state-Space');
% 确保链接库模块包含`single_phase_half_wave_rectifier`模块的正确路径
set(Param.Value(), [], 'Path', {'linklib/MG_Simulink_StateSpace});
% 检查和修正单相半波整流模块的输入电压范围设置
set([Vref, Vcc], [0, 5]);
% 修改错误的索引设置,因为该类型变量不支持点索引
set([Vref, Vcc], [0, 5], 'SourceIndex', 0);
% 调整任何需要的设置以匹配`Set initial parameters` (initializing DUT parameters)
set([R_mΩ, U], [0, 5], 'useSource', 'MΩ', 'useVoltageSource', 'kOhm', ...
'MinimumValue', 0, 'MaximumValue', Vref);
c. 尝试使用模块成员变量设置SHEM:
% 创建新的链接库模块
add_module('LinkLib', 'SHEM', [], ['powergui/EquivalentModel1'], 'state-Space');
% 调用`simplified_shearmodule`模块实例设置SHEM参数
simplified_shearmodule(numInput, numOutput, 'SHEMConfig', SHELMTwoPhaseTwoTruncate);
% 在SHEM内设置端口电流与电压参数
sim.SHEMnumPortA.set('R', R_mΩ);
sim.SHEMnumPortB.set('V', Vcc);
sim.SHEMnumPortC.set('RdutT1b', 0);
sim.SHEMnumPortC.set('RdutT1a', 0);
d. 重新编译和加载模块:
% 编译和加载链接库模块
add_link_library('LinkLib', 'LinkLib', [], ['powergui/EquivalentModel1']);
compile_and_load_link_lib('LinkLib', 'LinkLib', ['powergui/EquivalentModel1']);
e. 如果上述步骤仍无法解决问题,请参考文献或联系给定的链接库文档查找更详细的API指导。若需要绘制示意图,可能需要使用MATLAB图形库或其他可视化工具,如simplot或plot3d。以下是一个简单的示例,显示了如何使用MATLAB plot3d 和 plotSphere 库绘制单相半波整流模型的断路器节点(见代码示例附后):
% 绘制单相半波整流模型的断路器节点
figure;
plot3d([], [0, Vref, 0], [], 'ro');
hold on;
% 添加断路器输出波形和电压到断路器上下标
subplot(1, 2, 1);
plotSphere([0, 5], [0, Vref, 0], 40, 'r', 'MarkerSize', 20, 'LineWidth', 2);
title('Full-Scale斩波器电感-电压波形');
xlabel('Impedance (Ohms)');
ylabel('Voltage (V)');
zlabel('Frequency (Hz)');
subplot(1, 2, 2);
plotSphere([0, 0], [0, Vref, 0], 40, 'b', 'MarkerSize', 20, 'LineWidth', 2);
title('Short-circuit斩波器电感-电压波形');
xlabel('Impedance (Ohms)');
ylabel('Voltage (V)');
zlabel('Frequency (Hz)');
% 设置标签、轴标签和网格线颜色
legend('Full-Scale (Sinc)', 'Short-circuit (Sinc)', 'Location', 'North East');
legend('Horizontal Line (One Port)', 'Vertical Line (One Port)');
grid on;
end
注意:在上述示例中,`PowerGUI_Simulator_single_phase_half_wave_rectifier.mat` 是一个用于模拟单相半波整流的MATLAB Simulink模块。要修改或应用这个模块的现有设置,确保相应配置已更新,并且可以成功加载此模块。例如,如果你将模块放置在一个单独的``directory`下,修改以下目录结构即可:
```bash
/path/to/module/directory/
├── Eql_SIMULATOR_
│ ├── single_phase_half_wave_rectifier_
│ │ └── PowerGUI_Simulator_single_phase_half_wave_rectifier.mat
└── Simulink_ADMINS_
├── single_phase_half_wave_rectifier_
│ └── single_phase_half_wave_rectifier.xml
在这段代码中,将原始模块'PowerGUI_Simulator_single_phase_half_wave_rectifier.mat'的位置替换为你新定义的模块名称(如'PowerGUI_Simulator_EQL_SIMULATION_one_port_half_wave_rectifier'),并且确保添加了必要的依赖项以从正确的模块路径中导入和加载。对于模板中的代码,只需将其替换为对应模块的代码即可。在single_phase_half_wave_rectifier.xml文件中,您可以修改设置和约束以适应您的特定需求。
希望以上解决方案能帮助您解决Simulink Academy Use环境中单相半波整流的故障问题。如果仍然遇到问题,请提供更多详细信息,以便我们更好地定位问题和提供有效的解决方案。