From 2b214c4add5e1358c4a636f40879ee01646b192d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=95=E6=98=8E=E6=B1=9F?= <246462502@qq.com> Date: Thu, 28 Mar 2024 04:30:33 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E5=88=86=E6=AE=B5pid=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jj_motion.c | 45 +++++++++++++++++++++++------------------- app/page/page_dparam.c | 2 ++ 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/app/jj_motion.c b/app/jj_motion.c index 2ffa746..a60f9c5 100644 --- a/app/jj_motion.c +++ b/app/jj_motion.c @@ -12,46 +12,47 @@ PID_TypeDef far_gyro_pid; PID_TypeDef near_pos_pid; PID_TypeDef speed_pid; -float an_Kp0 = 8.0f; -float an_Ki0 = 1.0f; -float an_Kd0 = 2.0f; +float an_Kp0 = 80.0f; +float an_Ki0 = 1.4f; +float an_Kd0 = 8.0f; -float an_Kp1 = 8.0f; -float an_Ki1 = 1.0f; -float an_Kd1 = 2.0f; +float an_Kp1 = 80.0f; +float an_Ki1 = 1.4f; +float an_Kd1 = 8.0f; float in_angle; float set_angle = 0.0f; float out_angle; -float gy_Kp0 = 1.0f; +float gy_Kp0 = 2.0f; float gy_Ki0 = 0.0f; -float gy_Kd0 = 0.0f; +float gy_Kd0 = 0.3f; -float gy_Kp1 = 1.0f; +float gy_Kp1 = 2.0f; float gy_Ki1 = 0.0f; -float gy_Kd1 = 0.0f; +float gy_Kd1 = 0.3f; float in_gyro; float out_gyro; // float set_gyro = 0.0f; -float po_Kp0 = 1.0f; -float po_Ki0 = 0.0f; -float po_Kd0 = 0.0f; +float po_Kp0 = 827.0f; +float po_Ki0 = 16.0f; +float po_Kd0 = 13.0f; -float po_Kp1 = 1.0f; -float po_Ki1 = 0.0f; -float po_Kd1 = 0.0f; +float po_Kp1 = 500.0f; +float po_Ki1 = 2.0f; +float po_Kd1 = 1.0f; float in_pos; float out_pos; float set_pos = 0.0f; -float sp_Kp = 1.0f; -float sp_Ki = 0.0f; +float sp_Kp = 19.0f; +float sp_Ki = 0.5f; float sp_Kd = 0.0f; float in_speed; float out_speed; -float set_speed0 = 0.0f; -float set_speed1 = 0.0f; + +float set_speed0 = 460.0f; +float set_speed1 = 460.0f; int cnt1 = 0; int cnt2 = 0; uint32_t in_state = 0; @@ -87,8 +88,12 @@ void sport_motion(void) { if (1 == in_state) { PID_SetTunings(&far_gyro_pid, an_Kp1, an_Ki1, an_Kd1); + PID_SetTunings(&near_pos_pid, po_Kp1, po_Ki1, po_Kd1); + PID_SetTunings(&far_gyro_pid, gy_Kp1, gy_Ki1, gy_Kd1); } else { PID_SetTunings(&far_gyro_pid, an_Kp0, an_Ki0, an_Kd0); + PID_SetTunings(&near_pos_pid, po_Kp0, po_Ki0, po_Kd0); + PID_SetTunings(&far_gyro_pid, gy_Kp0, gy_Ki0, gy_Kd0); } /* 动力风扇设置 */ if (1 == bt_run_flag) { diff --git a/app/page/page_dparam.c b/app/page/page_dparam.c index 3a588cd..1fc0bdc 100644 --- a/app/page/page_dparam.c +++ b/app/page/page_dparam.c @@ -42,6 +42,8 @@ static void Exit() */ static void Loop() { + ips200_show_string(0, 20, "outsp:"); + ips200_show_float(80, 20, out_speed, 4, 1); ips200_show_string(0, 40, "angle"); ips200_show_float(80, 40, in_angle, 4, 1); ips200_show_string(0, 60, "near");