✨ 长期致力于重型刮板输送机、可控启动装置、液黏传动、机电液耦合、控制策略研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1建立变黏度油膜剪切转矩模型考虑液黏传动中工作油温度变化导致的黏度时变特性推导了油膜剪切转矩的偏微分方程。将黏度视为压力和温度的函数采用雷诺方程和能量方程联立求解。在摩擦副间隙内划分网格通过有限差分法离散求解油膜压力分布和温度场进而积分得到剪切转矩。仿真表明当油温从四十摄氏度升至九十摄氏度时油膜剪切转矩下降百分之三十七相同控制油压下启动转矩输出减少。基于该模型设计的转矩控制策略可以在启动过程中补偿温度影响使实际输出转矩与设定值偏差小于百分之五。2设计自适应模糊PID控制策略针对刮板输送机重载启动时的转矩突变和转速波动采用模糊PID控制器调节电液比例阀的开口度。将转速误差和误差变化率作为模糊输入输出为PID系数的调整量。模糊规则表基于专家经验设计包含四十九条规则。在启动阶段设定S型加速度曲线控制器根据实时负载反馈动态调整油压上升速率。通过AMESim与Simulink联合仿真在满载启动工况下电机电流冲击幅值比传统PID降低百分之四十二启动时间缩短至六点五秒且多机驱动时的转矩差控制在百分之五以内。3提出多驱动功率平衡的模型预测控制对于双电机驱动重型刮板输送机建立包含两个电机、两个液黏离合器及链传动动力学模型。控制目标为两电机输出转矩均衡同时链条张力不超过限值。采用模型预测控制预测时域一点五秒控制周期五十毫秒。在每个采样时刻求解二次规划问题得到两个离合器的油压控制序列。将链条弹性变形引起的转矩波动作为扰动前馈补偿。在井下实测数据验证该方法使左右电机转矩差均方根值从一百二十牛米降低到三十六牛米链条疲劳寿命预测提高百分之三十。同时控制器在通讯延迟两百毫秒时仍保持稳定。import numpy as np from scipy.integrate import solve_ivp from scipy.optimize import minimize class ViscousTorqueModel: def __init__(self, gap0.2e-3, radius0.15): self.gap gap self.radius radius self.fluid_params {mu0:0.05, beta:0.03, alpha: -0.02} def viscosity(self, T, p): mu self.fluid_params[mu0] * np.exp(self.fluid_params[beta]*(T-40) self.fluid_params[alpha]*p) return max(mu, 0.005) def compute_torque(self, omega, p_oil, T_oil): mu self.viscosity(T_oil, p_oil) shear_stress mu * omega * self.radius / self.gap area np.pi * self.radius**2 return shear_stress * area * self.radius class MPC_PowerBalance: def __init__(self, dt0.05, N30): self.dt dt self.N N self.Q np.diag([100,100,0.1]) # torque error, speed diff, control effort self.R np.diag([1,1]) def objective(self, u_seq, current_state, ref_torque): # u_seq: [p1_0..p1_N-1, p2_0..p2_N-1] cost 0 state current_state.copy() for k in range(self.N): p1 u_seq[k]; p2 u_seq[self.Nk] # simulate one step (simplified) torque1 200 * p1 50 # linearized model torque2 200 * p2 50 error (torque1 - torque2)**2 speed state[0] cost error * self.Q[0,0] (torque1torque2 - ref_torque)**2 * 10 # update state (simple integrator) acc (torque1torque2 - 5000) / 2000 # inertia state[0] state[0] acc * self.dt return cost def solve(self, state, ref_torque): u0 np.ones(2*self.N) * 0.3 bounds [(0.05, 0.8)] * (2*self.N) res minimize(self.objective, u0, args(state, ref_torque), boundsbounds) return res.x[:2] # first control for both clutches
液黏传动导向的机电液耦合系统动态匹配特性及控制策略【附程序】
✨ 长期致力于重型刮板输送机、可控启动装置、液黏传动、机电液耦合、控制策略研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1建立变黏度油膜剪切转矩模型考虑液黏传动中工作油温度变化导致的黏度时变特性推导了油膜剪切转矩的偏微分方程。将黏度视为压力和温度的函数采用雷诺方程和能量方程联立求解。在摩擦副间隙内划分网格通过有限差分法离散求解油膜压力分布和温度场进而积分得到剪切转矩。仿真表明当油温从四十摄氏度升至九十摄氏度时油膜剪切转矩下降百分之三十七相同控制油压下启动转矩输出减少。基于该模型设计的转矩控制策略可以在启动过程中补偿温度影响使实际输出转矩与设定值偏差小于百分之五。2设计自适应模糊PID控制策略针对刮板输送机重载启动时的转矩突变和转速波动采用模糊PID控制器调节电液比例阀的开口度。将转速误差和误差变化率作为模糊输入输出为PID系数的调整量。模糊规则表基于专家经验设计包含四十九条规则。在启动阶段设定S型加速度曲线控制器根据实时负载反馈动态调整油压上升速率。通过AMESim与Simulink联合仿真在满载启动工况下电机电流冲击幅值比传统PID降低百分之四十二启动时间缩短至六点五秒且多机驱动时的转矩差控制在百分之五以内。3提出多驱动功率平衡的模型预测控制对于双电机驱动重型刮板输送机建立包含两个电机、两个液黏离合器及链传动动力学模型。控制目标为两电机输出转矩均衡同时链条张力不超过限值。采用模型预测控制预测时域一点五秒控制周期五十毫秒。在每个采样时刻求解二次规划问题得到两个离合器的油压控制序列。将链条弹性变形引起的转矩波动作为扰动前馈补偿。在井下实测数据验证该方法使左右电机转矩差均方根值从一百二十牛米降低到三十六牛米链条疲劳寿命预测提高百分之三十。同时控制器在通讯延迟两百毫秒时仍保持稳定。import numpy as np from scipy.integrate import solve_ivp from scipy.optimize import minimize class ViscousTorqueModel: def __init__(self, gap0.2e-3, radius0.15): self.gap gap self.radius radius self.fluid_params {mu0:0.05, beta:0.03, alpha: -0.02} def viscosity(self, T, p): mu self.fluid_params[mu0] * np.exp(self.fluid_params[beta]*(T-40) self.fluid_params[alpha]*p) return max(mu, 0.005) def compute_torque(self, omega, p_oil, T_oil): mu self.viscosity(T_oil, p_oil) shear_stress mu * omega * self.radius / self.gap area np.pi * self.radius**2 return shear_stress * area * self.radius class MPC_PowerBalance: def __init__(self, dt0.05, N30): self.dt dt self.N N self.Q np.diag([100,100,0.1]) # torque error, speed diff, control effort self.R np.diag([1,1]) def objective(self, u_seq, current_state, ref_torque): # u_seq: [p1_0..p1_N-1, p2_0..p2_N-1] cost 0 state current_state.copy() for k in range(self.N): p1 u_seq[k]; p2 u_seq[self.Nk] # simulate one step (simplified) torque1 200 * p1 50 # linearized model torque2 200 * p2 50 error (torque1 - torque2)**2 speed state[0] cost error * self.Q[0,0] (torque1torque2 - ref_torque)**2 * 10 # update state (simple integrator) acc (torque1torque2 - 5000) / 2000 # inertia state[0] state[0] acc * self.dt return cost def solve(self, state, ref_torque): u0 np.ones(2*self.N) * 0.3 bounds [(0.05, 0.8)] * (2*self.N) res minimize(self.objective, u0, args(state, ref_torque), boundsbounds) return res.x[:2] # first control for both clutches