✨ 长期致力于电动汽车、混合励磁电机、容错设计、无刷谐波励磁、有限元、容错控制策略、直接转矩控制、空间矢量脉宽调制、无位置传感器控制、滑模观测器、脉冲转矩注入、dSPACE研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。
✅ 专业定制毕设、代码
✅如需沟通交流,点击《获取方式》
(1)五相无刷混合励磁容错电机本体设计与有限元验证:
设计转子V型永磁与谐波励磁绕组混合结构,定子采用隔齿绕制单层集中绕组,实现相间隔离。不均匀气隙设计使反电势正弦畸变率从8%降到3%。有限元分析显示,一相开路时剩余四相仍能输出85%额定转矩,容错能力优于传统五相电机(75%)。励磁绕组通入10A电流可使气隙磁通密度从0.6T提升到0.85T,弱磁扩速能力从3倍基速扩展到4.5倍。
(2)基于SVPWM的直接转矩容错控制:
一相开路故障后,通过空间电压矢量重构,将五相系统映射为类三相系统。计算剩余健康相的最大电压矢量幅值,采用SVPWM生成开关信号。容错控制算法保持转矩平均值不降,转矩脉动从滞环比较控制的0.8Nm降到0.25Nm。在dSPACE DS1007平台实验,电机从300rpm加速到1200rpm,故障前后转速超调量仅增加5%。
(3)宽转速范围无位置传感器滑模观测器:
采用sigmoid函数改进符号函数,削弱抖振。设计反电势自适应反馈增益,增益系数随转速从0.1线性增加到0.8。零低速区域采用脉冲转矩注入法,高频脉冲幅值5%额定转矩,根据响应电流峰值估计转子位置。两者平滑切换点设在150rpm。实验表明,在中高速时位置估计误差小于2°,零速时误差小于5°,全速域都能启动和运行。
import numpy as np class FivePhaseFaultTolerantDTC: def __init__(self, flux_ref=0.15): self.flux_ref = flux_ref self.tau_ref = 0.0 self.fault_map = [1,1,1,1,1] # 1表示健康 def voltage_reconstruction(self, phase_currents): # 检测开路故障 for i, i_ph in enumerate(phase_currents): if abs(i_ph) < 0.1 and self.fault_map[i]==1: self.fault_map[i] = 0 healthy_idx = [i for i,m in enumerate(self.fault_map) if m==1] # 重构电压矢量变换矩阵 T = np.zeros((2,5)) for j, idx in enumerate(healthy_idx[:4]): angle = 2*np.pi/5 * idx T[0, idx] = np.cos(angle) T[1, idx] = np.sin(angle) return T / np.linalg.norm(T, axis=0) def svm_dtc(self, flux_est, torque_est, vdc=300): err_flux = self.flux_ref - flux_est err_tau = self.tau_ref - torque_est # 选择电压矢量扇区 angle_flux = np.arctan2(flux_est[1], flux_est[0]) sector = int(angle_flux / (np.pi/5)) % 10 V_opt = self.generate_vector(sector, np.sign(err_flux), np.sign(err_tau)) return V_opt class SlidingModeObserver: def __init__(self): self.theta_hat = 0.0 self.omega_hat = 0.0 def update(self, v_alpha, v_beta, i_alpha, i_beta, dt): # 电流观测误差 di_alpha = v_alpha - 2.0*i_alpha + 0.5*self.omega_hat*np.sin(self.theta_hat) di_beta = v_beta - 2.0*i_beta - 0.5*self.omega_hat*np.cos(self.theta_hat) # sigmoid函数替代符号函数 z_alpha = 10.0 * (2/(1+np.exp(-20*di_alpha)) - 1) z_beta = 10.0 * (2/(1+np.exp(-20*di_beta)) - 1) self.theta_hat = self.theta_hat + dt * (self.omega_hat + 0.1*z_alpha*np.cos(self.theta_hat)) self.omega_hat = self.omega_hat + dt * 0.5*z_alpha return self.theta_hat, self.omega_hat