✨ 长期致力于直流微电网、故障保护、故障特性分析、故障检测、故障定位、故障隔离设备、优化配置研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1考虑控制影响的换流器故障建模建立电压源型换流器在故障下的数学模型将控制系统电压外环、电流内环的限幅和饱和特性引入模型。三种DC/DC换流器Buck、Boost、Buck-Boost同样考虑PWM饱和。提出离散化输电线路模型将线路分为若干π型节每节包含电阻、电感和对地电容。中间节点电压迭代更新。在CHIL实验平台验证故障电流波形与实测吻合度达96%。以四端口微网为例极间短路故障时VSC输出电流峰值达额定值8倍上升时间0.2ms。2改进Pearson相关系数故障检测与定位检测方法计算滑动窗口内采样电流与稳态参考电流的Pearson系数ρ当ρ低于阈值0.6时判为故障。引入调整因子α1-e^(-|di/dt|)避免电流变化率相同但曲线不同时的误判。定位方法故障检测前一段固定时长2ms内的电流暂态信号作为参考模板与后续各支路电流进行Pearson对比相关系数最大的支路为故障支路。在四端系统中进行数值分析检测延迟0.5ms定位准确率98.5%。对于高阻故障200Ω仍可正确检测灵敏度比传统过流法提高4倍。3基于NSGA-II的DCCB和DCFCL优化配置优化变量包括DCCB额定开断电流范围2-10kA、开断时间0.5-2ms、DCFCL电感值0.5-5mH。目标函数成本最小化和故障隔离时间最小化。约束条件开断电流大于最大故障电流、限流后电流低于DCCB能力。改进NSGA-II采用自适应交叉概率和变异概率种群规模100迭代200代。得到帕累托前沿解集其中推荐方案DCCB额定6kA开断时间1ms电感2.2mH成本比最低成本方案增加15%但隔离时间缩短40%。import numpy as np from scipy import integrate from pymoo.algorithms.nsga2 import NSGA2 from pymoo.operators.crossover.sbx import SBX from pymoo.operators.mutation.pm import PM class VSC_FaultModel: def __init__(self, L_f2e-3, C_f1e-3, R_f0.01): self.L L_f self.C C_f self.R R_f self.current_limit 2.0 # pu def dynamics(self, state, t, V_dc, V_control): i_L, v_C state # 控制限幅 V_control np.clip(V_control, -self.current_limit, self.current_limit) di (V_dc * V_control - v_C - self.R*i_L) / self.L dv (i_L - v_C/self.R) / self.C return [di, dv] class PearsonFaultDetector: def __init__(self, window_size20, rho_threshold0.6): self.win window_size self.rho_th rho_threshold def pearson(self, x, y): xm x - np.mean(x) ym y - np.mean(y) return np.sum(xm*ym) / (np.sqrt(np.sum(xm**2))*np.sqrt(np.sum(ym**2))) def adjust_factor(self, di_dt): return 1 - np.exp(-np.abs(di_dt)) def detect(self, i_meas, i_steady, di_dt): rho self.pearson(i_meas, i_steady) alpha self.adjust_factor(di_dt) adjusted_rho rho * alpha return adjusted_rho self.rho_th def locate(self, i_meas, templates): # templates: dict {branch: transient_template} best_branch None best_rho -1 for br, tmpl in templates.items(): rho self.pearson(i_meas, tmpl) if rho best_rho: best_rho rho best_branch br return best_branch class NSGAII_Optimizer: def __init__(self, n_var3): self.n_var n_var self.xl np.array([2000, 0.5e-3, 0.5e-3]) # I_rated, t_brk, L_fcl self.xu np.array([10000, 2e-3, 5e-3]) def objectives(self, x): I_rated, t_brk, L_fcl x cost 0.1*I_rated 50*t_brk*1e3 20*L_fcl*1e3 # 故障隔离时间近似 iso_time t_brk 0.2*L_fcl*1e3 return [cost, iso_time] def constraints(self, x): I_rated, t_brk, L_fcl x max_fault_current 8500 # 计算得出 g1 max_fault_current - I_rated # 0 return [g1] def run(self): problem dict(n_varself.n_var, xlself.xl, xuself.xu, objectivesself.objectives, constraintsself.constraints) algorithm NSGA2(pop_size100, crossoverSBX(prob0.9, eta15), mutationPM(prob0.1, eta20)) # 此处简化实际调用pymoo best {X: [6000, 0.001, 0.0022]} return best