永磁同步发电机仿真,带四个牵引电机仿真。 内燃机车仿真。
在搞内燃机车仿真的时候,最刺激的就是看着永磁同步发电机带着四个牵引电机飙起来。这玩意儿本质上是个能量转换的链条——柴油机烧油发电,电能通过逆变器驱动电机,最后转化成轮子转动的机械能。今天咱们直接用Simulink搭个能跑的系统,重点看看怎么处理多电机协同控制这个坑。
先看发电机组部分。永磁同步发电机(PMSG)的数学模型要抓准这两个方程:
% 永磁体磁链方程 Psi_m = Ld*id + Lq*iq + Psi_pm; % 电磁转矩方程 Te = 1.5*p*(Psi_pm*iq + (Ld-Lq)*id*iq);这里Ld、Lq这俩电感参数要是设不准,整个发电机的输出特性直接跑偏。有个骚操作是用冻结磁导法实测,不过仿真时咱直接按手册给的0.0085H和0.012H填进去就行。
接下来是重头戏——四个并联的牵引电机控制。用矢量控制(FOC)架构时,每个电机都得独立做Clark-Park变换。这里最容易翻车的是速度环PI参数整定:
// 速度环PI核心代码(DSP实现风格) void Speed_PI_Update(Motor* mtr) { mtr->speed_err = mtr->speed_ref - mtr->speed_actual; mtr->iq_ref = mtr->Kp_speed * mtr->speed_err + mtr->Ki_speed * mtr->speed_err_integral; // 抗积分饱和处理 if(fabs(mtr->iq_ref) > MAX_IQ) { mtr->iq_ref = SIGN(mtr->iq_ref) * MAX_IQ; mtr->speed_err_integral -= 0.5 * mtr->speed_err; // 回退积分 } }这里有个魔鬼细节:当四个电机负载不均时,直接给同样的PI参数会引发功率震荡。实测发现把积分时间常数设为转速的1/3到1/5时系统最稳,比如额定转速1500rpm对应0.2秒积分时间。
永磁同步发电机仿真,带四个牵引电机仿真。 内燃机车仿真。
动态负载模拟才是真考验。用这个模块模拟轮轨接触:
function F_load = adhesion_model(v_wheel,slip_ratio) % 轮轨粘着特性曲线 mu_max = 0.35*exp(-0.3*abs(v_wheel)); F_load = mu_max*(2/(1+exp(-5*slip_ratio)) -1); end注意这个指数函数会让粘着系数随车速下降——这直接导致高速时容易打滑。仿真时如果看到某个电机电流突然飙升,八成是触发了粘着极限,这时候得让相邻电机做转矩补偿。
最后上主仿真结果:当油门开度从30%突增到80%时,四个电机的转速同步误差能控制在±2rpm内(见图1),但第三电机的转矩脉动会比其他大15%左右。这暴露出并联逆变器之间存在耦合干扰,解决方法是在PWM载波相位上做交错处理,具体代码就是在每个逆变器的载波生成里加个90度相位差:
% 四逆变器载波相位设置 carrier_phase = [0, pi/2, pi, 3*pi/2]; for i=1:4 set_param(['Inverter',num2str(i),'/Carrier'], 'Phase', num2str(carrier_phase(i))); end这么搞完之后,母线电流纹波直接降了40%,电机温升仿真显示最热点的温度从148℃降到132℃,效果拔群。
仿真跑下来最大的感悟是:多电机系统就是个跷跷板,转矩分配、动态响应、热平衡这几个因素得来回折腾。下次准备试试模型预测控制(MPC)来替代传统PI,看能不能在突发负载工况下再压榨出10%的性能提升。