⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_acim_motor.c

📁 STM8S105 BLDC源代码
💻 C
📖 第 1 页 / 共 2 页
字号:

static u16 hVF_Ratio = (u16)(V_F_RATIO*1000);
static u16 hStartUp_VF_Ratio = (u16)(STARTUP_V_F_RATIO*1000);

PACIM_Struct_t Get_ACIM_Struct(void)
{
	return pACIM_Struct;
}

s16 ACIM_GetTargetRotorSpeed_RPM(void)
{
	return sACIM_Struct.pACIM_Var->hTarget_rotor_speed_RPM;
}

void ACIM_SetTargetRotorSpeed_RPM_HzEl(s16 val)
{
  if (val > sACIM_Struct.pACIM_Const->hMax_Speed)
  {}
  else if ( (-val) > sACIM_Struct.pACIM_Const->hMax_Speed)
  {}
  else
  {
    sACIM_Struct.pACIM_Var->hTarget_rotor_speed_RPM = val;
    sACIM_Struct.pACIM_Var->hTarget_rotor_speed_HzEl =
                  (s16)(((s32)val * sACIM_Struct.pACIM_Const->bRPM_to_Hz_Conv)/
                  sACIM_Struct.pACIM_Const->hRPM_to_Hz_Ampl);
  }
}

s16 ACIM_GetTargetRotorSpeed_HzEl(void)
{
  s16 htemp;
  htemp = sACIM_Struct.pACIM_Var->hTarget_rotor_speed_HzEl;
  if (htemp < 0)
  {
    htemp = -htemp;
  }
  return htemp;
}

s16 ACIM_GetMeasuredRotorRpeed_RPM(void)
{
	return sACIM_Struct.pACIM_Var->hMeasured_rotor_speed_RPM;
}

void ACIM_SetMeasuredRotorSpeed_RPM(s16 val)
{
	sACIM_Struct.pACIM_Var->hMeasured_rotor_speed_RPM = val;
}

s16  ACIM_Get_Startup_Slip(void)
{
	return sACIM_Struct.pACIM_Var->hStartUpSlip;
}

void  ACIM_Set_Startup_Slip(s16 val)
{
	sACIM_Struct.pACIM_Var->hStartUpSlip = val;
}

s16 ACIM_Get_Bus_Voltage(void)
{
        return (s16)(sACIM_Struct.pACIM_Var->hBusVoltage);
}

void ACIM_Set_Bus_Voltage(s16 BusVoltage)
{
  sACIM_Struct.pACIM_Var->hBusVoltage = BusVoltage;
}

void ACIM_Set_HeatsinkTemp(u8 bTemperature)
{
  sACIM_Struct.pACIM_Var->bHeatsinkTemp = bTemperature;
}

u8 ACIM_Get_HeatsinkTemp(void)
{
  return (u8)(sACIM_Struct.pACIM_Var->bHeatsinkTemp);
}

void ACIM_Set_Vf_Ratio(s16 val)
{
  u16 htemp;
  hVF_Ratio = val;  
  
  htemp = (u16)(((s32)val * 256)/1000);
  
  sACIM_Struct.pACIM_Var->hVFConstant = (u16)((((u32)VOUT_CONSTANT_A)*htemp)/2);
}

s16 ACIM_Get_Vf_Ratio(void)
{
  return (hVF_Ratio);
}

void ACIM_Set_Startup_Vf_Ratio(s16 val)
{
  u16 htemp;
  hStartUp_VF_Ratio = val;  
  
  htemp = (u16)(((s32)val * 256)/1000);
  
  sACIM_Struct.pACIM_Var->hStartUpVFConstant = 
    (u16)((((u32)VOUT_CONSTANT_A)*htemp)/2);
}

s16 ACIM_Get_Startup_Vf_Ratio(void)
{
  return (hStartUp_VF_Ratio);
}

#ifdef SPEED_CLOSED_LOOP
s16  ACIM_Get_Speed_VF_KP(void)
{
	return sACIM_Struct.pACIM_Const->pPID_VF_Struct->pPID_Var->hKp_Gain;
}

void  ACIM_Set_Speed_VF_KP(s16 val)
{
	sACIM_Struct.pACIM_Const->pPID_VF_Struct->pPID_Var->hKp_Gain = val;
}

s16  ACIM_Get_Speed_VF_KI(void)
{
	return sACIM_Struct.pACIM_Const->pPID_VF_Struct->pPID_Var->hKi_Gain;
}

void  ACIM_Set_Speed_VF_KI(s16 val)
{
	sACIM_Struct.pACIM_Const->pPID_VF_Struct->pPID_Var->hKi_Gain = val;
}

s16  ACIM_Get_Speed_MTPA_KP(void)
{
	return sACIM_Struct.pACIM_Const->pPID_MTPA_Struct->pPID_Var->hKp_Gain;
}

void  ACIM_Set_Speed_MTPA_KP(s16 val)
{
	sACIM_Struct.pACIM_Const->pPID_MTPA_Struct->pPID_Var->hKp_Gain = val;
}

s16  ACIM_Get_Speed_MTPA_KI(void)
{
	return sACIM_Struct.pACIM_Const->pPID_MTPA_Struct->pPID_Var->hKi_Gain;
}

void  ACIM_Set_Speed_MTPA_KI(s16 val)
{
	sACIM_Struct.pACIM_Const->pPID_MTPA_Struct->pPID_Var->hKi_Gain = val;
}

s16  ACIM_Get_MTPA_Slip(void)
{
	return sACIM_Struct.pACIM_Var->hMTPAslip;
}

void  ACIM_Set_MTPA_Slip(s16 val)
{
	sACIM_Struct.pACIM_Var->hMTPAslip = val;
}

void ACIM_Set_MTPA(u8 val)
{
  if (val == 0)
  {
    sACIM_Struct.pACIM_Var->Control_Mode = SPEED_CLOSEDLOOP_VF;
  }
  else
  {
    sACIM_Struct.pACIM_Var->Control_Mode = SPEED_CLOSEDLOOP_MTA;
  }
}

u8 ACIM_Get_MTPA_Mode(void)
{
  u8 btemp;
  control_mode_t Control_Mode = sACIM_Struct.pACIM_Var->Control_Mode;
  if (Control_Mode == SPEED_CLOSEDLOOP_VF)
  {
    btemp = 0;
  }
  else
  {
    btemp = 1;
  }
  return btemp;
}    
    
u8 ACIM_Get_Actual_MTPA_Mode(void)
{
  control_mode_t Control_Mode;
  u8 btemp;
  Control_Mode = sACIM_Struct.pACIM_Var->Actual_Control_Mode;
  if (Control_Mode == SPEED_CLOSEDLOOP_VF)
  {
    btemp = 0;
  }
  else
  {
    btemp = 1;
  }
  return btemp;
}
#elif (defined SPEED_OPEN_LOOP)
s16 ACIM_GetActualRotorRpeed_RPM(void)
{
  return ((sACIM_Struct.pACIM_Var->hActual_rotor_speed_HzEl*6)/
          sACIM_Struct.pACIM_Const->bMotor_pole_Pairs);
}

void  ACIM_Set_Slip(s16 val)
{
	sACIM_Struct.pACIM_Var->hSlip = val;
}

s16  ACIM_Get_Slip(void)
{
	return sACIM_Struct.pACIM_Var->hSlip;
}

#endif

/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -