
线控转向CarSim与Simulink联合仿真模型。 模型包括定横摆角速度增益变传动比模块、永磁同步电机FOC控制策略模型以及CarSim输入、输出Cpar文件等。 该模型仅供参考使用!线控转向仿真架构示意图示意图CarSim负责车辆动力学计算Simulink处理控制算法搞过线控转向的兄弟都知道传动比动态调节和电机精准控制是两个硬骨头。今天咱们拆解的这个联合仿真模型直接把CarSim的物理引擎和Simulink的控制算法焊死了对接。先看这个魔改版的传动比算法% 定横摆角速度增益变传动比核心逻辑 function gear_ratio dynamic_gear_ratio(vx, yaw_rate) base_ratio 16; % 基础传动比 adaptive_gain 0.3*abs(vx)/30; % 车速自适应增益 yaw_gain 1/(1 0.5*abs(yaw_rate)); % 横摆角速度抑制系数 gear_ratio base_ratio * (1 adaptive_gain) * yaw_gain; end这个骚操作实现了两个效果车速超过30km/h后传动比逐渐变小方向盘更灵敏而当横摆角速度突变时自动增大传动比抑制甩尾。注意这里的0.5是个经验值实测在冰雪路面要调到0.8更稳妥。电机控制部分直接上永磁同步电机的FOC全家桶// 永磁同步电机FOC核心片段 void FOC_Control(float iq_ref) { ClarkeTransform(ia, ib, i_alpha, i_beta); // 克拉克变换 ParkTransform(i_alpha, i_beta, theta, id, iq); // 帕克变换 vd PID_Regulator(id_ref - id, pid_d); // d轴电流环 vq PID_Regulator(iq_ref - iq, pid_q); // q轴电流环 InverseParkTransform(vd, vq, theta, v_alpha, v_beta); // 逆变换 SVM_Generate(v_alpha, v_beta); // 空间矢量调制 }这里藏着个魔鬼细节——当方向盘打死时iq_ref会突然飙到限幅值此时PID积分项必须加抗饱和处理。实测用变积分系数法比单纯的积分限幅更跟手。线控转向CarSim与Simulink联合仿真模型。 模型包括定横摆角速度增益变传动比模块、永磁同步电机FOC控制策略模型以及CarSim输入、输出Cpar文件等。 该模型仅供参考使用CarSim接口配置才是真正的深坑看这个Cpar文件的关键参数[Steering_System] Steer_by_wire_mode 1 ; 0-传统转向 1-线控转向 Max_steer_angle 480 ; 方向盘最大转角(deg) EPS_torque_gain 0.0 ; 必须置零避免机械干预 [External_Interface] Input_vars 3 ; 方向盘转角请求/电机实际转角/故障标志 Output_vars 2 ; 横摆角速度/侧向加速度 Sampling_time 0.002 ; 2ms同步周期特别注意CarSim 2021之后的版本要求时间戳严格对齐建议在Simulink里用Triggered Subsystem处理数据交换。上次有个兄弟没注意这个仿真结果抖得跟筛糠似的。整套模型跑起来后在双移线工况下能看到转向电机电流呈现明显双峰特性如图这说明传动比动态调节确实在起作用。不过要提醒各位模型里的电机参数对应的是某型号国产电机直接套用到其他品牌小心炸机。!双移线工况仿真结果仿真结果蓝色为横摆角速度红色为电机q轴电流最后说句掏心窝的这模型里的故障注入模块才是真宝藏能模拟从CAN通信丢帧到电机相间短路的18种故障模式。不过千万别手贱同时激活三个以上故障模式别问我怎么知道的——上周刚烧了台工控机电源。