資料介紹
PID例子
[電機與驅(qū)動] 一個簡單的PID
PID
#include 《hidef.h》 /* common defines and macros */
#include “derivative.h” /* derivative-specific definitions */
#include 《mc9s12xs128.h》
//定義PID參數(shù)
#define VV_KPVALUE 3 //比例
#define VV_KIVALUE 40 //積分
#define VV_KDVALUE 3 //微分
#define VV_MAX 10000 //返回的最大值,是pwm的周期值
#define VV_MIN 0
#define VV_DEADLINE 0X08 //速度PID,設(shè)置死區(qū)范圍
typedef struct PID //定義數(shù)法核心數(shù)據(jù)
{
signed int vi_Ref; //速度PID,速度設(shè)定值
signed int vi_FeedBack; //速度PID,速度反饋值
signed long vi_PreError; //速度PID,前一次,速度誤差,,vi_Ref - vi_FeedBack
signed long vi_PreDerror; //速度PID,前一次,速度誤差之差,d_error-PreDerror;
unsigned int v_Kp; //速度PID,Ka = Kp
unsigned int v_Ki; //速度PID,Kb = Kp * ( T / Ti )
unsigned int v_Kd; //速度PID,
signed long vl_PreU; //電機控制輸出值
}PID;
PID sPID; // PID Control Structure
void PIDInit(void)
{
sPID.vi_Ref = 0 ; //速度設(shè)定值
sPID.vi_FeedBack = 0 ; //速度反饋值
sPID.vi_PreError = 0 ; //前一次,速度誤差,,vi_Ref - vi_FeedBack
sPID.vi_PreDerror = 0 ; //前一次,速度誤差之差,d_error-PreDerror;
sPID.v_Kp = VV_KPVALUE;
sPID.v_Ki = VV_KIVALUE;
sPID.v_Kd = VV_KDVALUE;
sPID.vl_PreU = 0 ; //電機控制輸出值
}
unsigned int v_PIDCalc( PID *pp )
{
signed long error,d_error,dd_error;
error = (signed long)(pp-》vi_Ref - pp-》vi_FeedBack); // 偏差計算
d_error = error - pp-》vi_PreError;
dd_error = d_error - pp-》vi_PreDerror;
pp-》vi_PreError = error; //存儲當前偏差
pp-》vi_PreDerror = d_error;
if( ( error 《 VV_DEADLINE ) && ( error 》 -VV_DEADLINE ) ); //設(shè)置調(diào)節(jié)死區(qū)
//速度PID計算
pp-》vl_PreU += (signed long)( pp -》 v_Kp * d_error + pp -》 v_Ki * error + pp-》v_Kd*dd_error);
else if( pp-》vl_PreU 》= VV_MAX ) //速度PID,防止調(diào)節(jié)最高溢出
pp-》vl_PreU = VV_MAX;
else if( pp-》vl_PreU 《= VV_MIN ) //速度PID,防止調(diào)節(jié)最低溢出
pp-》vl_PreU = VV_MIN;
else
;
return ( pp-》vl_PreU ); // 返回預調(diào)節(jié)占空比
}
void main(void) {
/* put your own code here */
InitMCu();
IncPIDInit();
int g_CurrentVelocity=0; //全局變量也初始化
int g_Flag=0; //全局變量也初始化
EnableInterrupts;
While(1)
{
if (g_Flag&&vi_FeedBack)
{
PWMOUT+= v_PIDCalc( PID *pp );
g_Flag&=~ vi_FeedBack;
}
}
}
for(;;) {
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
掃碼添加小助手
加入工程師交流群
- PID控制詳解(可下載)
- [單片機]一個例子說PID算法
- 經(jīng)典的PID控制技術(shù)圖書《Advanced PID Control》pdf 0次下載
- 基于PID控制的DC-DC升壓開關(guān)電源 29次下載
- 基于FPGA的PID系統(tǒng)源碼下載 81次下載
- PID控制中如何整定PID參數(shù) 70次下載
- PID調(diào)節(jié)及PID調(diào)節(jié)的基本原理 51次下載
- Labview Excel例子文件下載 157次下載
- 改進的足球機器人PID調(diào)節(jié)器設(shè)計 9次下載
- 到底什么是串級PID
- 使用單片機和Arduino實現(xiàn)增量式PID位置式PID算法和PID庫免費下載 69次下載
- PID控制經(jīng)典教程之位置式PID控制原理(上) 0次下載
- PID控制經(jīng)典教程之位置式PID控制原理(下) 0次下載
- PID_REG3 11次下載
- PID_通俗教程 0次下載
- 位置式PID與增量式PID的區(qū)別 1w次閱讀
- PID項目實例詳解 3.3k次閱讀
- 一個模擬解像力圖表的例子 1.6k次閱讀
- 串級PID的相關(guān)概念 2.7k次閱讀
- 什么是PID?位置式PID與增量式PID有何不同 3.9w次閱讀
- 變頻器的PID控制原理框圖_變頻器的PID的作用 1.4w次閱讀
- 什么是PID控制? 3.5w次閱讀
- PID是什么PID的形象說明和調(diào)試口訣詳細說明 2w次閱讀
- 一文詳解工業(yè)自動化控制中PID的應用和整定方法 7.5k次閱讀
- pid控制器的輸入輸出_PID控制器的控制實現(xiàn) 3.1w次閱讀
- 如何從逆變器側(cè)防治PID效應 2w次閱讀
- 光伏組件PID效應 7.1k次閱讀
- 增量式pid參數(shù)調(diào)整公式及策略 5.8w次閱讀
- 深度解析PID 6.1k次閱讀
- PID理論詳解 8.5k次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論