参数修改

This commit is contained in:
ZHAISHUI04 2025-07-09 07:33:59 +08:00
parent de7321138f
commit c4bc8288c7
7 changed files with 48 additions and 21 deletions

View File

@ -135,7 +135,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>CMSIS_AGDI</Key> <Key>CMSIS_AGDI</Key>
<Name>-X"" -O206 -S8 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> <Name>-X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -200,6 +200,16 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>\\R2\../User/task/up_task.c\UP.MID360Context.IsLaunch</ItemText> <ItemText>\\R2\../User/task/up_task.c\UP.MID360Context.IsLaunch</ItemText>
</Ww> </Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>ang_58,0x0A</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>ang_66,0x0A</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
@ -207,7 +217,7 @@
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>0</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>

Binary file not shown.

View File

@ -75,11 +75,11 @@ static const ConfigParam_t param ={
/*投球*/ /*投球*/
.LaunchCfg = { .LaunchCfg = {
.m2006_init = -130.0f, // M2006初始角度 .m2006_init = -125.0f, // M2006初始角度
.m2006_trig = 0.0f, // M2006触发角度 .m2006_trig = 0.0f, // M2006触发角度
.go_pull_pos = -214.0f, // go上升去合并扳机扳机位置 .go_pull_pos = -210.0f, // go上升去合并扳机扳机位置
.go_up_speed = 12.0f, // 上升速度 .go_up_speed = 12.0f, // 上升速度
.go_down_speed = 6.0f, // 下降速度 .go_down_speed = 10.0f, // 下降速度
.Pitch_angle = 58, //俯仰角 .Pitch_angle = 58, //俯仰角
.go_init = -50 .go_init = -50
}, },
@ -89,14 +89,14 @@ static const ConfigParam_t param ={
.go_release_pos=-200, .go_release_pos=-200,
.Pitch_angle =66, .Pitch_angle =66,
.go_up_speed =12, .go_up_speed =12,
.go_down_speed =6, .go_down_speed =10,
}, },
.PassCfg={ .PassCfg={
.go_wait =-10, .go_wait =-10,
.go_release_pos =-150, .go_release_pos =-150,
.Pitch_angle=66, .Pitch_angle=66,
.go_up_speed =12, .go_up_speed =12,
.go_down_speed =6, .go_down_speed =10,
}, },
.MID360Cfg={ .MID360Cfg={

View File

@ -199,7 +199,7 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c)
is_pitch=0; is_pitch=0;
} //初始上电 } //初始上电
//LaunchCfg->go_up_speed=15; //LaunchCfg->go_up_speed=15;
target->Pitch_angle =LaunchCfg->Pitch_angle; // target->Pitch_angle =LaunchCfg->Pitch_angle;
target->go_pull_speed=LaunchCfg->go_up_speed; target->go_pull_speed=LaunchCfg->go_up_speed;
target->Shoot_M2006_angle=LaunchCfg->m2006_init; target->Shoot_M2006_angle=LaunchCfg->m2006_init;
u->PitchContext .PitchState = PITCH_PREPARE; //状态更新 u->PitchContext .PitchState = PITCH_PREPARE; //状态更新
@ -260,7 +260,7 @@ int8_t Pitch_Launch_Sequence(UP_t *u, LaunchContext_t *LaunchContext,fp32 StartP
bool is_GoStartReach=is_reached(u->motorfeedback.go_data.Pos,StartPos,1.0f); //go开始位置 bool is_GoStartReach=is_reached(u->motorfeedback.go_data.Pos,StartPos,1.0f); //go开始位置
bool is_GoSpeedReach=is_reached(u->motorfeedback.go_data.W,0,1.0f) ; //go速度归零判断 bool is_GoSpeedReach=is_reached(u->motorfeedback.go_data.W,0,1.0f) ; //go速度归零判断
bool is_GoEndReach =(u->motorfeedback .go_data .Pos < -209); //go去上拉钩子位置判断到达 bool is_GoEndReach =(u->motorfeedback .go_data .Pos < -209); //go去上拉钩子位置判断到达
bool is_HookDone=(u->motorfeedback .DJmotor_feedback [4].total_angle>-10); //2006钩子放下判断 bool is_HookDone=(u->motorfeedback .DJmotor_feedback [4].total_angle>-5.0f); //2006钩子放下判断
bool is_Shoot=(u->motorfeedback.DJmotor_feedback[4].total_angle<-10);//是否发射判断 bool is_Shoot=(u->motorfeedback.DJmotor_feedback[4].total_angle<-10);//是否发射判断
@ -400,13 +400,20 @@ int8_t UP_AUTO_Control(UP_t *u,CAN_Output_t *out,CMD_t *c){
LaunchContext_t *LaunchContext = &u->LaunchContext; LaunchContext_t *LaunchContext = &u->LaunchContext;
MID360Context_t *MID360Context=&u->MID360Context; MID360Context_t *MID360Context=&u->MID360Context;
MID360Cfg_t *MID360Cfg = &u->MID360Context.MID360Cfg; MID360Cfg_t *MID360Cfg = &u->MID360Context.MID360Cfg;
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.2,4.3,&u->MID360Context.Curve); // MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.2,4.3,&u->MID360Context.Curve);
if(u->MID360Context.Curve==CURVE_58){
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis),3.3,4.3,&u->MID360Context.Curve);
}
else {
MID360Cfg->go_release_pos=CurveChange(LowPassFilter2p_Apply(&u->filled[0],c->cmd_MID360.dis)-0.05f,3.3,4.3,&u->MID360Context.Curve);
}
if (u->MID360Context.Curve == CURVE_58) { if (u->MID360Context.Curve == CURVE_58) {
target->Pitch_angle = 58; target->Pitch_angle = 58;
} else { } else {
target->Pitch_angle = 66; target->Pitch_angle = 66;
} }
LaunchContext->LaunchCfg.go_up_speed=MID360Cfg->go_up_speed; LaunchContext->LaunchCfg.go_up_speed=MID360Cfg->go_up_speed;
LaunchContext->LaunchCfg.go_down_speed=MID360Cfg->go_down_speed; LaunchContext->LaunchCfg.go_down_speed=MID360Cfg->go_down_speed;

View File

@ -68,12 +68,12 @@ int8_t GO_SendData( GO_MotorData_t *go_data,GO_MotorCmd_t *go_cmd,float pos, flo
// 计算66度曲线偏上 // 计算66度曲线偏上
static float curve_66(float d) { static float curve_66(float d) {
return 3.7028f * d * d + 11.2126f * d -142.9446f; return 2.9851104*pow(d,4) -36.164382*pow(d,3) + 159.54844*pow(d,2) -273.62856*d + 43.092452; }
}
// 计算58度曲线偏下 // 计算58度曲线偏下
// 计算58度曲线偏下 // 计算58度曲线偏下
static float curve_58(float d) { static float curve_58(float d) {
return 0.9242f * d * d + 19.4246f * d - 154.9055f; // return 0.9242f * d * d + 19.4246f * d - 154.9055f;
return 2.638517*pow(d,4) -47.996138*pow(d,3) + 325.38515*pow(d,2) -950.18155*d + 919.86543;
} }
/* /*
@ -81,12 +81,15 @@ static float curve_58(float d) {
x-y x-y
线x重合区 线x重合区
*/ */
fp32 ang_58;
fp32 ang_66;
float CurveChange(float d, float x, float y, CurveType *cs) float CurveChange(float d, float x, float y, CurveType *cs)
{ {
if (*cs == CURVE_66) { if (*cs == CURVE_66) {
if (d > y) { if (d > y) {
*cs = CURVE_58;
*cs = CURVE_58;
} }
} else { // CURVE_58 } else { // CURVE_58
if (d < x) { if (d < x) {
@ -96,8 +99,10 @@ float CurveChange(float d, float x, float y, CurveType *cs)
// 根据当前曲线返回结果 // 根据当前曲线返回结果
if (*cs == CURVE_58) { if (*cs == CURVE_58) {
ang_58=d;
return curve_58(d); return curve_58(d);
} else { } else {
ang_66=d;
return curve_66(d); return curve_66(d);
} }
} }

View File

@ -40,10 +40,15 @@ void Task_cmd(void *argument){
/*将各任务接收到的原始数据解析为通用的控制命令*/ /*将各任务接收到的原始数据解析为通用的控制命令*/
/*注意不能将nuc和码盘导航一块使用*/
if(osMessageQueueGet(task_runtime.msgq.cmd.raw.nuc, &Nuc,0 ,0) ==osOK) //nuc
CMD_ParseNuc(&cmd,&Nuc); if((osMessageQueueGet(task_runtime.msgq.cmd.raw.nuc, &Nuc,0 ,0) ==osOK)){ //nuc
}
else
{
memset(&Nuc, 0, sizeof(CMD_NUC_t));
}
CMD_ParseNuc(&cmd,&Nuc);
if(osMessageQueueGet(task_runtime.msgq.cmd.raw.rc, &rc_ctrl, 0, 0) == osOK)//遥控器 if(osMessageQueueGet(task_runtime.msgq.cmd.raw.rc, &rc_ctrl, 0, 0) == osOK)//遥控器

View File

@ -17,7 +17,7 @@
#define TASK_FREQ_CHASSIS (900u) #define TASK_FREQ_CHASSIS (900u)
#define TASK_FREQ_UP (900u) #define TASK_FREQ_UP (900u)
#define TASK_FREQ_CTRL_CMD (500u) #define TASK_FREQ_CTRL_CMD (100u)
#define TASK_FREQ_NUC (100u) #define TASK_FREQ_NUC (100u)
#define TASK_FREQ_CAN (1000u) #define TASK_FREQ_CAN (1000u)
#define TASK_FREQ_RC (100u) #define TASK_FREQ_RC (100u)