Browse Source

添加曲线加减速相关变量

2
JIU JIALIN 1 month ago
parent
commit
affddd874b
4 changed files with 330 additions and 843 deletions
  1. +17
    -0
      PLSR/PLSR/Core/Inc/tim.h
  2. +0
    -34
      PLSR/PLSR/Core/Src/tim.c
  3. +313
    -809
      PLSR/PLSR/EWARM/test.1.dep
  4. BIN
      PLSR/PLSR/EWARM/test.1/Exe/test.1.sim

+ 17
- 0
PLSR/PLSR/Core/Inc/tim.h View File

@@ -116,6 +116,22 @@ void MX_TIM14_Init(void);

void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);

typedef struct {
/* 加速段参数 */
uint32_t accel_jerk; // 加加速度 (Hz/ms²)
uint32_t accel_max; // 最大加速度 (Hz/ms)
uint32_t accel_jerk_time_ms; // 单边jerk时间 (ms)
uint32_t accel_phase1_pulses; // 加速第一阶段脉冲数
uint32_t accel_phase2_pulses; // 加速第二阶段脉冲数
/* 减速段参数 */
uint32_t decel_jerk; // 减加速度 (Hz/ms²)
uint32_t decel_max; // 最大减速度 (Hz/ms)
uint32_t decel_jerk_time_ms; // 单边jerk时间 (ms)
uint32_t decel_phase1_pulses; // 减速第一阶段脉冲数
uint32_t decel_phase2_pulses; // 减速第二阶段脉冲数
} SCurve_Params_t;

typedef struct
{
PLSR_WaitType_t wait_type; ///< 等待条件类型
@@ -172,6 +188,7 @@ typedef struct
uint16_t start_section; ///< 起始段数
PLSR_RouteState_t route_state; ///< 路径状态
SCurve_Params_t scurve;
PLSR_RunState_t run_state; ///< 当前运行状态
PLSR_RunState_t part1_state; ///< 第一部分状态(ACCEL/DECEL/CONST)
PLSR_RunState_t part2_state; ///< 第二部分状态(通常是CONST)


+ 0
- 34
PLSR/PLSR/Core/Src/tim.c View File

@@ -587,7 +587,6 @@ void PLSR_PWM_Init(void)
BackupSRAM_RestoreData();
}


/**
* @brief 启动PWM输出
* @retval None
@@ -2004,39 +2003,6 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route)
}
}

/**
* @brief 更新加减速度
* @param route: 路径控制结构体指针
* @retval None
* @note 根据默认频率和加减速时间重新计算加减速度
* 计算得到的加速度单位为Hz/ms,在PLSR_Calculate_FreqByPosition函数中
* 会将其转换为Hz/s^2以符合物理公式要求
*/
void PLSR_Accel_UpdateRates(PLSR_RouteConfig_t* route)
{
if (route == NULL) return;
// 计算加速度 (Hz/ms)
if (route->default_accel_time_ms > 0)
{
route->accel_rate = route->default_freq / route->default_accel_time_ms;
}
else
{
route->accel_rate = 0; // 避免除零错误
}
// 计算减速度 (Hz/ms)
if (route->default_decel_time_ms > 0)
{
route->decel_rate = route->default_freq / route->default_decel_time_ms;
}
else
{
route->decel_rate = 0; // 避免除零错误
}
}

/**
* @brief 设置默认加减速参数
* @param route: 路径控制结构体指针


+ 313
- 809
PLSR/PLSR/EWARM/test.1.dep
File diff suppressed because it is too large
View File


BIN
PLSR/PLSR/EWARM/test.1/Exe/test.1.sim View File


Loading…
Cancel
Save