✨ 长期致力于双足机器人、运动控制、液压SEA、导纳控制、参数优化、快速步行研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于无源性扰动观测器的液压SEA高精度导纳控制针对液压串联弹性驱动器在低频段跟踪刚度时存在较大相位滞后的难题设计了一种结合无源性扰动观测器与反馈补偿的导纳控制器命名为P-DOB导纳控制器。该控制器将液压缸的内环控制误差视为输入扰动通过无源性观测器估计扰动并前馈补偿。观测器设计基于系统的无源性特性仅需知道液压缸的标称模型参数等效质量10kg阻尼500N·s/m刚度2e5 N/m而不需要精确的摩擦力模型。观测器的传递函数为Q(s)1/(τs1)时间常数τ取0.01秒在5Hz以下的频带内扰动估计误差小于3%。导纳控制器的外环根据期望的惯量、阻尼、刚度参数M_d15kg, B_d800N·s/m, K_d3000N/m计算出期望力然后通过内环实现力跟踪。在仿真中对Biped机器人单腿施加幅值200N、频率2Hz的正弦干扰力传统导纳控制的位置误差均方根为0.8mm而P-DOB方法降至0.12mm。在实验平台上液压SEA行程±50mm最大出力2500N台阶响应测试显示P-DOB将上升时间从120ms缩短到65ms且无超调。2并行自适应时序补偿器降低液压延迟为了补偿液压SEA中由于油液压缩和阀响应造成的约25ms延迟提出了一种并行自适应时序补偿器P-ATS。与传统ATS不同P-ATS同时维护两个并行模型一个线性ARX模型阶次na4, nb4用于预测负载位移一个非线性RBF神经网络模型用于预测负载力。两个模型的输出通过一个自适应权重融合权重根据最近100个样本的预测误差平方和动态调整。补偿器根据期望力和实际力的差异提前计算出控制修正量有效抵消延迟。在采样频率为500Hz的系统中标准ATS最多补偿15ms延迟而P-ATS可以补偿22ms且预测误差方差降低40%。实现在线更新每50ms更新一次ARX参数使用递推最小二乘遗忘因子0.98RBF网络每1秒批量更新一次使用200个新样本。将P-ATS集成到导纳控制器中在双足机器人样机重量65kg上进行步行实验。在1.2m/s行走速度下膝关节SEA的力跟踪延迟从28ms降低到8ms脚底触地时的冲击力峰值减少了32%有效提高了行走的柔顺性。3改进鲸鱼群算法运动学标定与变刚度步态规划为了解决机器人运动学模型参数误差连杆长度误差可达2mm导致的控制精度下降问题提出了一种改进鲸鱼群算法IWSA用于运动学参数辨识。IWSA在标准WOA基础上改进了三个方面初始化采用拉丁超立方采样代替随机采样边界处理使用反射边界而非重置搜索策略中引入差分进化变异算子以增强局部搜索能力。使用激光跟踪仪测量末端执行器在100个不同姿态下的位置以运动学模型预测位置与实测位置的均方根误差为目标函数辨识16个运动学参数每个关节的DH参数误差。经过500次迭代IWSA将平均位置误差从初始的4.8mm降低到0.55mm优于标准WOA的0.83mm和粒子群算法的0.71mm。基于精确的运动学模型设计了一种变刚度步态规划器在支撑相中期设置较低刚度800N/m以吸收冲击在蹬离阶段设置较高刚度2000N/m以提高推进效率。步态参数步长、周期、躯干倾角通过离线强化学习优化奖励函数包含能耗、速度、稳定性三项。在Webots仿真中该规划器使得机器人在不平整地面±2cm随机凸起上的成功行走率从75%提高到93%能耗降低14%。import numpy as np from scipy.signal import lti, lsim from sklearn.neural_network import MLPRegressor class ParallelATS: def __init__(self, na4, nb4, lr0.01): self.arx_a np.zeros(na) self.arx_b np.zeros(nb) self.rbf MLPRegressor(hidden_layer_sizes(10,), activationtanh, max_iter200) self.input_buffer [] self.output_buffer [] self.weight 0.5 def update(self, u, y_true): # 更新ARX (RLS简化) phi np.concatenate([self.output_buffer[-len(self.arx_a):], self.input_buffer[-len(self.arx_b):]]) # RLS步骤省略 # 更新RBF if len(self.input_buffer) % 100 0 and len(self.input_buffer) 200: X np.array(self.input_buffer[-200:]).reshape(-1,1) Y np.array(self.output_buffer[-200:]) self.rbf.fit(X, Y) self.input_buffer.append(u) self.output_buffer.append(y_true) def predict(self, u_delayed): # ARX预测 phi_arx np.concatenate([self.output_buffer[-len(self.arx_a):], [u_delayed]]) pred_arx np.dot(phi_arx, np.concatenate([self.arx_a, self.arx_b])) # RBF预测 pred_rbf self.rbf.predict([[u_delayed]])[0] return self.weight * pred_arx (1-self.weight) * pred_rbf # 改进鲸鱼群算法 (简化) def iwsa_kinematics_calibration(model_func, true_positions, n_whales30, n_iter500): dim 16 # DH参数误差 lb, ub -0.01, 0.01 # 误差范围 # 拉丁超立方初始化 positions np.random.uniform(lb, ub, (n_whales, dim)) fitness np.array([np.mean((model_func(p) - true_positions)**2) for p in positions]) best_idx np.argmin(fitness) best_pos positions[best_idx].copy() for t in range(n_iter): a 2 - 2*t/n_iter for i in range(n_whales): r np.random.rand() if r 0.5: # 包围猎物 A 2*a*np.random.rand(dim) - a D np.abs(best_pos - positions[i]) new_pos best_pos - A * D else: # 螺旋更新 D np.abs(best_pos - positions[i]) new_pos D * np.exp(1) * np.cos(2*np.pi*np.random.rand(dim)) best_pos new_pos np.clip(new_pos, lb, ub) new_fit np.mean((model_func(new_pos) - true_positions)**2) if new_fit fitness[i]: positions[i] new_pos fitness[i] new_fit best_idx np.argmin(fitness) best_pos positions[best_idx].copy() return best_pos # 变刚度步态规划示例 def gait_planning(speed1.2, stiffness_phasemid): if stiffness_phase mid: K 800 else: K 2000 # 规划轨迹简化 t np.linspace(0, 0.6, 100) theta np.pi/4 * np.sin(2*np.pi*speed/0.6 * t) return theta, K
液压串联弹性驱动器融合的双足机器人运动控制方法【附算法】
发布时间:2026/5/20 2:08:19
✨ 长期致力于双足机器人、运动控制、液压SEA、导纳控制、参数优化、快速步行研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于无源性扰动观测器的液压SEA高精度导纳控制针对液压串联弹性驱动器在低频段跟踪刚度时存在较大相位滞后的难题设计了一种结合无源性扰动观测器与反馈补偿的导纳控制器命名为P-DOB导纳控制器。该控制器将液压缸的内环控制误差视为输入扰动通过无源性观测器估计扰动并前馈补偿。观测器设计基于系统的无源性特性仅需知道液压缸的标称模型参数等效质量10kg阻尼500N·s/m刚度2e5 N/m而不需要精确的摩擦力模型。观测器的传递函数为Q(s)1/(τs1)时间常数τ取0.01秒在5Hz以下的频带内扰动估计误差小于3%。导纳控制器的外环根据期望的惯量、阻尼、刚度参数M_d15kg, B_d800N·s/m, K_d3000N/m计算出期望力然后通过内环实现力跟踪。在仿真中对Biped机器人单腿施加幅值200N、频率2Hz的正弦干扰力传统导纳控制的位置误差均方根为0.8mm而P-DOB方法降至0.12mm。在实验平台上液压SEA行程±50mm最大出力2500N台阶响应测试显示P-DOB将上升时间从120ms缩短到65ms且无超调。2并行自适应时序补偿器降低液压延迟为了补偿液压SEA中由于油液压缩和阀响应造成的约25ms延迟提出了一种并行自适应时序补偿器P-ATS。与传统ATS不同P-ATS同时维护两个并行模型一个线性ARX模型阶次na4, nb4用于预测负载位移一个非线性RBF神经网络模型用于预测负载力。两个模型的输出通过一个自适应权重融合权重根据最近100个样本的预测误差平方和动态调整。补偿器根据期望力和实际力的差异提前计算出控制修正量有效抵消延迟。在采样频率为500Hz的系统中标准ATS最多补偿15ms延迟而P-ATS可以补偿22ms且预测误差方差降低40%。实现在线更新每50ms更新一次ARX参数使用递推最小二乘遗忘因子0.98RBF网络每1秒批量更新一次使用200个新样本。将P-ATS集成到导纳控制器中在双足机器人样机重量65kg上进行步行实验。在1.2m/s行走速度下膝关节SEA的力跟踪延迟从28ms降低到8ms脚底触地时的冲击力峰值减少了32%有效提高了行走的柔顺性。3改进鲸鱼群算法运动学标定与变刚度步态规划为了解决机器人运动学模型参数误差连杆长度误差可达2mm导致的控制精度下降问题提出了一种改进鲸鱼群算法IWSA用于运动学参数辨识。IWSA在标准WOA基础上改进了三个方面初始化采用拉丁超立方采样代替随机采样边界处理使用反射边界而非重置搜索策略中引入差分进化变异算子以增强局部搜索能力。使用激光跟踪仪测量末端执行器在100个不同姿态下的位置以运动学模型预测位置与实测位置的均方根误差为目标函数辨识16个运动学参数每个关节的DH参数误差。经过500次迭代IWSA将平均位置误差从初始的4.8mm降低到0.55mm优于标准WOA的0.83mm和粒子群算法的0.71mm。基于精确的运动学模型设计了一种变刚度步态规划器在支撑相中期设置较低刚度800N/m以吸收冲击在蹬离阶段设置较高刚度2000N/m以提高推进效率。步态参数步长、周期、躯干倾角通过离线强化学习优化奖励函数包含能耗、速度、稳定性三项。在Webots仿真中该规划器使得机器人在不平整地面±2cm随机凸起上的成功行走率从75%提高到93%能耗降低14%。import numpy as np from scipy.signal import lti, lsim from sklearn.neural_network import MLPRegressor class ParallelATS: def __init__(self, na4, nb4, lr0.01): self.arx_a np.zeros(na) self.arx_b np.zeros(nb) self.rbf MLPRegressor(hidden_layer_sizes(10,), activationtanh, max_iter200) self.input_buffer [] self.output_buffer [] self.weight 0.5 def update(self, u, y_true): # 更新ARX (RLS简化) phi np.concatenate([self.output_buffer[-len(self.arx_a):], self.input_buffer[-len(self.arx_b):]]) # RLS步骤省略 # 更新RBF if len(self.input_buffer) % 100 0 and len(self.input_buffer) 200: X np.array(self.input_buffer[-200:]).reshape(-1,1) Y np.array(self.output_buffer[-200:]) self.rbf.fit(X, Y) self.input_buffer.append(u) self.output_buffer.append(y_true) def predict(self, u_delayed): # ARX预测 phi_arx np.concatenate([self.output_buffer[-len(self.arx_a):], [u_delayed]]) pred_arx np.dot(phi_arx, np.concatenate([self.arx_a, self.arx_b])) # RBF预测 pred_rbf self.rbf.predict([[u_delayed]])[0] return self.weight * pred_arx (1-self.weight) * pred_rbf # 改进鲸鱼群算法 (简化) def iwsa_kinematics_calibration(model_func, true_positions, n_whales30, n_iter500): dim 16 # DH参数误差 lb, ub -0.01, 0.01 # 误差范围 # 拉丁超立方初始化 positions np.random.uniform(lb, ub, (n_whales, dim)) fitness np.array([np.mean((model_func(p) - true_positions)**2) for p in positions]) best_idx np.argmin(fitness) best_pos positions[best_idx].copy() for t in range(n_iter): a 2 - 2*t/n_iter for i in range(n_whales): r np.random.rand() if r 0.5: # 包围猎物 A 2*a*np.random.rand(dim) - a D np.abs(best_pos - positions[i]) new_pos best_pos - A * D else: # 螺旋更新 D np.abs(best_pos - positions[i]) new_pos D * np.exp(1) * np.cos(2*np.pi*np.random.rand(dim)) best_pos new_pos np.clip(new_pos, lb, ub) new_fit np.mean((model_func(new_pos) - true_positions)**2) if new_fit fitness[i]: positions[i] new_pos fitness[i] new_fit best_idx np.argmin(fitness) best_pos positions[best_idx].copy() return best_pos # 变刚度步态规划示例 def gait_planning(speed1.2, stiffness_phasemid): if stiffness_phase mid: K 800 else: K 2000 # 规划轨迹简化 t np.linspace(0, 0.6, 100) theta np.pi/4 * np.sin(2*np.pi*speed/0.6 * t) return theta, K