91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7.51 KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2025-01-05
  • 語言: 其他
  • 標簽: 開發技術??C??

資源簡介

模糊PID源程序,C語言編寫,內有詳細說明,適用于初學者-Fuzzy PID source

資源截圖

代碼片段和文件信息

#include?
#include?“systick.h“
#include?“motor.h“
#include?“PID.h“

__IO?uint32_t?CaptureNumber1;
__IO?uint32_t?CaptureNumber2;
__IO?uint32_t?CaptureNumber3;
__IO?uint32_t?CaptureNumber4;

typedef?struct?
{
__IO?int??????SetPoint;?????????????????????????????????//設定目標?Desired?Value
__IO?double???Proportion;???????????????????????????????//比例常數?Proportional?Const
__IO?double???Integral;?????????????????????????????????//積分常數?Integral?Const
__IO?double???Derivative;???????????????????????????????//微分常數?Derivative?Const
__IO?int??????LastError1;????????????????????????????????//Error[-1]
__IO?int??????PrevError1;????????????????????????????????//Error[-2]
__IO?int??????LastError2;????????????????????????????????//Error[-1]
__IO?int??????PrevError2;????????????????????????????????//Error[-2]
__IO?int??????LastError3;????????????????????????????????//Error[-1]
__IO?int??????PrevError3;????????????????????????????????//Error[-2]
__IO?int??????LastError4;????????????????????????????????//Error[-1]
__IO?int??????PrevError4;????????????????????????????????//Error[-2]
}PID;

/*?私有宏定義?----------------------------------------------------------------*/
/*************************************/
//定義PID相關宏

/*************************************/
//定義PID相關宏
//?這三個參數設定對電機運行影響非常大
/*************************************/
#define??P_DATA??????3.2?????????????????????????????????//P參數
#define??I_DATA??????1.1????????????????????????????????//I參數
#define??D_DATA??????-0.15??????????????????????????????//D參數



static?PID?sPID;
static?PID?*sptr?=?&sPID;

/*?私有函數原形?--------------------------------------------------------------*/
/*?函數體?--------------------------------------------------------------------*/

/**************PID參數初始化********************************/
void?IncPIDInit(void)?
{
????sptr->LastError1=0;????????????//Error[-1]
????sptr->PrevError1=0;????????????//Error[-2]
sptr->LastError2=0;????????????//Error[-1]
sptr->PrevError2=0;????????????//Error[-2]
????sptr->LastError3=0;????????????//Error[-1]
????sptr->PrevError3=0;????????????//Error[-2]
sptr->LastError4=0;????????????//Error[-1]
sptr->PrevError4=0;????????????//Error[-2]
????sptr->Proportion=P_DATA;??????//比例常數?Proportional?Const
????sptr->Integral=I_DATA;????????//積分常數??Integral?Const
????sptr->Derivative=D_DATA;??????//微分常數?Derivative?Const
????sptr->SetPoint=100;???????????//設定目標Desired?Value
}
/********************增量式PID控制設計************************************/
int?IncPIDCalc1(int?NextPoint1)?
{
??int?iErroriIncpid;?????????????????????????????????//當前誤差
??iError=sptr->SetPoint-NextPoint1;????????????????????//增量計算
??iIncpid=(sptr->Proportion?*?iError)?????????????????//E[k]項
??????????????-(sptr->Integral?*?sptr->LastError1)?????//E[k-1]項
??????????????+(sptr->Derivative?*?sptr->PrevError1);??//E[k-2]項
??????????????
??sptr->PrevError1=sptr->LastError1;????????????????????//存儲誤差,用于下次計算
??sptr->Last

評論

共有 條評論