PID算法控制電機轉速仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
PID仿真.JPG (339.59 KB, 下載次數: 83)
下載附件
PID仿真截圖
2018-12-29 17:51 上傳
PID程序截圖.JPG (102.96 KB, 下載次數: 84)
下載附件
PID程序截圖
2018-12-29 17:53 上傳
單片機源程序如下:
- //=== C文件 ==========
- /*
- * PID管理程序,PID manager
- */
- #include "PID_Mgr.h"
- /*-----------------------------------------
- * 位置式PID
- ------------------------------------------*/
- float PID_Deal(PID_STR *pid)
- {
- float re_val;
- pid->offset_sum += (pid->set - pid->now); //更新“累計偏差”(在原來的基礎上加“當前偏差”)
- //位置式PID公式
- re_val = pid->kp*(pid->set - pid->now) + /* 比例系數*當前偏差 */ \
- pid->ki*(pid->offset_sum) + /* 積分系數*累計偏差 */ \
- pid->kd*((pid->set - pid->now) - pid->offset_b); /* 微分系數*偏差變化率 */
- pid->offset_b = pid->set - pid->now;
- return re_val;
- }
- //=== H文件 ======
- #ifndef _PID_MGR_H_
- #define _PID_MGR_H_
- #include "system.h"
- //=== 位置式PID結構體 =============
- typedef struct
- {
- float kp;
- float ki;
- float kd;
- float set; //設定值
- float now; //當前值 (注:設定值-當前值 = 當前偏差)
- float offset_b; //上次偏差
- float offset_sum; //累計偏差
- }
- PID_STR;
- /*---------------------------------
- * 函數聲明
- ---------------------------------*/
- float PID_Deal(PID_STR *pid);
- #endif
復制代碼
0.png (43.55 KB, 下載次數: 81)
下載附件
2018-12-29 21:11 上傳
所有資料51hei提供下載:
PID算法控制電機轉速 proteus仿真 v2.0.rar
(95.59 KB, 下載次數: 227)
2018-12-29 17:49 上傳
點擊文件名下載附件
輔助學習PID 下載積分: 黑幣 -5
|