Advertisement

手把手教你学Simulink实例——基于Simulink的电力电子系统故障诊断与保护仿真实例

阅读量:

目录

从入门到精通:通过构建基于Simulink的电力电子系统的故障诊断与保护模型来进行仿真实例分析

引言

故障类型简介

1. 过电流

2. 过电压

3. 短路

4. 开路

系统框架

1. 系统架构概述

Simulink建模过程

1. 创建新模型

2. 添加模块

3. 连接各模块

参数设置与仿真运行

1. 参数设置

2. 仿真设置

3. 开始仿真

结果分析与优化

1. 观察结果

2. 性能评估

3. 参数优化


从入门到精通:Simulink实例教学——基于Simulink的电力电子系统故障诊断与保护仿真实例

引言

电力电子系统中的故障检测与保护机制扮演着保障系统安全可靠的 key 角色。其常见故障类型包括过电流;过电压;短路;以及开路等多种情况。为增强系统的容错能力和稳定性;开展故障模拟及相应的保护策略设计与仿真研究具有重要意义。本文将深入探讨如何利用 MATLAB 的 Simulink 工具对电力电子系统进行故障诊断与保护仿真;涵盖从模型构建到参数配置;从故障模拟到策略设计等多个环节。

故障类型简介
1. 过电流

过电流被定义为电路中的电流超出其额定值;这可能引起设备损坏并引发火灾。常见的诱因包括短路的负载、电源电压过高以及操作失误等情况。

2. 过电压

过电压被称为电路中电压超出额定值的情况,在这种情况下可能会导致绝缘层被击穿从而引发设备损坏。这种现象通常由雷电 strikes、电网 oscillations 或操作失误等因素引起;其中雷电 strikes 是最常见且危险的一种情况;此外电网中的 voltage fluctuations 和操作失误也可能加剧这一问题;通过采取适当的保护措施可以有效降低过电压事件的发生风险

3. 短路

过流或短路通常指电路中两点间出现意外低电阻连接而导致电流急剧上升的情况。当电路发生短路故障时,可能会导致设备严重损坏或引发火灾。

4. 开路

开路通常被定义为电路中某部分断开的状态,从而使电流无法正常流动。开路故障可能会引发负载无法正常工作的状况。

系统框架
1. 系统架构概述

本示例将基于一个典型的直流逆变器供电系统的案例来阐述Simulink在故障诊断与保护方面的作用及其实现过程。该系统由以下部分组成:

  • 直流电源模块 输出固定电压系统。
    • 逆变器部分 生成PWM信号并控制设备运行。
    • 负载模块 模仿真实工作状态以测试性能。
    • 故障检测系统 负责识别系统中的潜在问题(例如过压、电流异常等)。
    • 保护装置 根据故障分析结果实施相应的安全措施(例如切断电路或限制输出参数)。

系统架构视图

复制代码

plaintext

深色版本

复制代码
 +-------------------+      +------------------+      +-----------------+      +--------------+

    
||||||||

    
|DC Power Supply|----->|Inverter|----->|Load Module|||

    
|(Vdc=24V)|(PWM Signal)|(R, L, C, Motor)|||||

    
||||||||

    
 +-------------------+      +------------------+      +-----------------+      +--------------+
    
||

    
                                                                                   v
    
                                                                         +------------------+
    
||

    
|Fault Detection|

    
|(Overcurrent,|

    
|Overvoltage,|

    
|Short Circuit,|

    
|Open Circuit)|

    
||

    
                                                                         +------------------+
    
||

    
                                                                                   v
    
                                                                         +------------------+
    
||

    
|Protection|

    
|(Circuit Breaker|

    
|or Limiter)|

    
||

    
                                                                         +------------------+
Simulink建模过程
1. 创建新模型
  • 建立一个MATLAB环境,并在其中打开Simulink界面。
    • 在打开的Simulink窗口中选择选项‘Blank Model’后,系统会自动创建一个新的空白模型。
2. 添加模块

接下来按照系统架构添加所需的Simulink模块:

直流电源 * 在Simscape资源库中的Electrical > Specialized Power Systems > Fundamental Blocks > Electrical Sources子资源库中搜索并拖放DC Voltage Source组件至模型工作区。

  • 将电压设置为24伏特。

逆变器Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Power Electronics库中查找IGBT/Diode模块,并根据需求复制多个IGBT模块以构建逆变器电路。
设置IGBT模块的导通电阻等参数。
Simulink > Discontinuities库中查找PWM Generator模块并将其添加到模型中。
设置PWM信号频率为20kHz,并将初始占空比设置为50%。

负载模块中:

  • 首先处理的是电阻性负载:通过访问Simulink> sinks子库中的Load模块,并将其参数设置为仅有阻值10Ω的电阻即可实现此功能。

  • 接下来是电感性负载:需要从Simscape> Electrical>Specialized Power Systems>Fundamental Blocks>Elements子库中选择Series RLC Branch模块,并将其参数设置为仅有1mH的电感值。

  • 然后是处理的容性负载:同样地,在上述相同的子库中选择Series RLC Branch模块,并将其参数设置为仅有100μF的电容值即可完成任务。

  • 最后是针对机械系统的应用,在Simscape> Electrical>Specialized Power Systems>Fundamental Blocks>Machines子库中找到并连接DC Machine模型,并根据其额定电压和额定转速等参数进行相应的设置以完成最终的功能连接与测试工作流程。

故障检测模块 * 过电流检测 :在Simulink > Logic and Bit Operations库中查找并配置Relay模块以判断电路中的电流是否超出预设范围。

  • 过电压检测 :在指定库中查找并设置Relay模块以监测电路电压是否超过设定值。

  • 短路检测:通过分析电流波形的变化情况来识别是否存在短路故障。

  • 开路检测:持续监控电路中的电流值以判断是否存在断路现象

保护功能 * 隔离断路器:从Simulink > Extras库中找到该模块,并按照指示设置其参数以确保在发生故障时电路被及时切断。
* 电流限制模块:从Simulink > Continuous库中找到该模块,并按照指示设置其参数以限制电流的最大值。

测量装置 可从Simulink的Sinks子库中获取Scope模块,并将其添加到模型架构中以观察负载电压和电流的变化情况。

3. 连接各模块

通过鼠标左键拖动连接线,按照系统架构图指示实现模块间的连接,从而构建完整的故障诊断与保护系统。

以下是详细的Simulink模型脚本示例:

复制代码

matlab

深色版本

复制代码
 % 清除当前工作区的所有变量

    
 clear all; close all;
    
  
    
 % 定义PWM频率和周期
    
 PWM_Frequency = 20e3; % PWM频率为20kHz
    
 Initial_Duty_Cycle = 0.5; % 初始占空比为50%
    
  
    
 % 创建一个新的Simulink模型
    
 modelName = 'FaultDiagnosisAndProtection';
    
 new_system(modelName);
    
 open_system(modelName);
    
  
    
 % 添加直流电源模块
    
 add_block('simulink/Sources/DC Voltage Source', [modelName '/DC_Voltage']);
    
 set_param([modelName '/DC_Voltage'], 'Amplitude', '24'); % 设定直流电压为24V
    
  
    
 % 添加逆变器模块
    
 for i = 1:6 % 假设是三相逆变器,每相两个开关
    
     add_block('simulink/Extras/Ideal Switch', [modelName sprintf('/Switch_%d', i)]);
    
     set_param([modelName sprintf('/Switch_%d', i)], 'Ron', '0.1'); % 开关导通电阻
    
 end
    
  
    
 % 添加PWM Generator模块
    
 for i = 1:6
    
     add_block('simulink/Discontinuities/PWM Generator', [modelName sprintf('/PWM_Generator_%d', i)]);
    
     set_param([modelName sprintf('/PWM_Generator_%d', i)], 'Frequency', num2str(PWM_Frequency));
    
     set_param([modelName sprintf('/PWM_Generator_%d', i)], 'Amplitude', '1');
    
     set_param([modelName sprintf('/PWM_Generator_%d', i)], 'PhaseDelay', '0');
    
     set_param([modelName sprintf('/PWM_Generator_%d', i)], 'SampleTime', '1e-6');
    
 end
    
  
    
 % 添加负载模块
    
 % 电阻性负载
    
 add_block('simulink/Sinks/Load', [modelName '/Resistive_Load']);
    
 set_param([modelName '/Resistive_Load'], 'R', '10'); % 设置电阻值为10Ω
    
  
    
 % 电感性负载
    
 add_block('simulink/Continuous/LC Filter', [modelName '/Inductive_Load']);
    
 set_param([modelName '/Inductive_Load'], 'L', '1e-3'); % 设置电感值为1mH
    
  
    
 % 容性负载
    
 add_block('simulink/Continuous/LC Filter', [modelName '/Capacitive_Load']);
    
 set_param([modelName '/Capacitive_Load'], 'C', '100e-6'); % 设置电容值为100μF
    
  
    
 % 电机负载
    
 add_block('simulink/Machines/DC Machine', [modelName '/Motor_Load']);
    
 set_param([modelName '/Motor_Load'], 'RatedVoltage', '24'); % 设置电机额定电压为24V
    
 set_param([modelName '/Motor_Load'], 'RatedSpeed', '1500'); % 设置电机额定转速为1500rpm
    
  
    
 % 添加故障检测模块
    
 % 过电流检测
    
 add_block('simulink/Logic and Bit Operations/Relay', [modelName '/Overcurrent_Detection']);
    
 set_param([modelName '/Overcurrent_Detection'], 'SwitchOnPoint', '5'); % 设置电流阈值为5A
    
  
    
 % 过电压检测
    
 add_block('simulink/Logic and Bit Operations/Relay', [modelName '/Overvoltage_Detection']);
    
 set_param([modelName '/Overvoltage_Detection'], 'SwitchOnPoint', '30'); % 设置电压阈值为30V
    
  
    
 % 添加保护模块
    
 % 断路器
    
 add_block('simulink/Extras/Ideal Switch', [modelName '/Circuit_Breaker']);
    
 set_param([modelName '/Circuit_Breaker'], 'Ron', '0.1'); % 设置断路器导通电阻
    
  
    
 % 限流器
    
 add_block('simulink/Continuous/Saturation', [modelName '/Current_Limiter']);
    
 set_param([modelName '/Current_Limiter'], 'UpperLimit', '5'); % 设置最大电流为5A
    
  
    
 % 添加示波器
    
 add_block('simulink/Sinks/Scope', [modelName '/Scope']);
    
  
    
 % 设置仿真参数
    
 set_param(modelName, 'StopTime', '0.1');
    
 set_param(modelName, 'Solver', 'ode45');
    
  
    
 % 保存模型
    
 save_system(modelName);
    
  
    
 % 运行仿真
    
 sim(modelName);
参数设置与仿真运行
1. 参数设置
  • 直流电源电路:配置输出电压参数设为24伏特。

  • 逆变器电路:详细配置IGBT导通电阻等关键参数设置。

  • 负载模块:

    • 纯电阻型负载:设定阻抗值具体为10欧姆。
    • 电感型负载:精确设定线圈电感量至1毫亨利(mH)。
    • 电容型负载:准确设定滤波电容容量至100微法(μF)。
    • 电动机加载模块:指定额定工况电压和转速指标设定。
  • 故障诊断模块

  • 当电路电流超过设定值时进行过电流保护。

  • 当电路电压超过设定值时发出过电压保护信号。

    • 保护模块
      • 断路器 :设置导通电阻。
      • 限流器 :设置最大电流为5A。
2. 仿真设置
  • 在Simulink菜单栏中进入Simulation > Model Configuration Parameters设置。
    • 配置合适的仿真停止时间和求解器类型(其中最常用的是ode45)。
3. 开始仿真

启动工具栏中的Run按钮以进行仿真,并验证仿真结果是否与预期一致。利用Scope模块可以查看负载上的电压和电流波形。

结果分析与优化
1. 观察结果
  • 通过示波器观察负载上的电压和电流波形,并对系统的运行状态进行评估。
    • 对包括过电流、过电压、短路和开路在内的各种故障情况进行模拟,并关注故障检测模块的反应以及保护模块的操作流程。

例如,在遇到过电流时, 电流波形必须超出预设界限, 从而自动启动保护机制; 当出现过电压情况时, 相对应的电压波形也需达到预设临界点, 同样会触发相应的保护措施。

2. 性能评估
  • 对该系统的故障检测模块的关键性能指标——灵敏度和响应时间进行评估, 以确保其能够快速而准确地识别出各类故障。
    • 验证保护模块的有效性, 确保当发生故障时能够立即启动相应的保护措施, 防止造成进一步的损害。
3. 参数优化

若发现某些防护措施存在不足,则可通过调节保护模块的相关参数来实现优化。例如,在电路中调节电流与电压的设定值,并通过优化断路器及限流器的工作原理来提升整体防护水平。

全部评论 (0)

还没有任何评论哟~