|
分別有增量式PID調節程序、積分限幅調節程序、位置式PID調節程序- #include<stdio.h>
- struct _pid
- {
- float Setspeed;//定義設定值
- float ActualSpeed;//定義實際值
- float err;//定義偏差值
- float err_last;//定義上上個偏差值
- float Kp,Ki,Kd;//定義比例、積分、微分系數
- float err_next;//定義上一個偏差值
- }pid;
- void PID_init()
- {
- printf("PID_init begin \n");
- pid.Setspeed=0.0;
- pid.ActualSpeed=0.0;
- pid.err=0.0;
- pid.err_last=0.0;
- pid.err_next=0.0;
- pid.Kp=0.2;
- pid.Ki=0.015;
- pid.Kd=0.2;
- printf("PID_init end\n");
- }
- float PID_realize(float speed)
- {
- float incrementSpeed;
- pid.Setspeed =speed;
- pid.err=pid.Setspeed-pid.ActualSpeed;
- incrementSpeed=pid.Kp*(pid.err-pid.err_next)+pid.Ki*pid.err+pid.Kd*(pid.err-2*pid.err_next+pid.err_last);
- pid.ActualSpeed+=incrementSpeed;
- pid.err_last=pid.err_next;
- pid.err_next=pid.err;
- return pid.ActualSpeed;
- }
- int main()
- {
- int count;
- printf("System begin\n");
- PID_init();
- count=0;
- while(count<1000)
- {
- float speed=PID_realize(50);
- printf("%f\t",speed);
- count++;
- }
- getchar();
- return 0;
- }
復制代碼
|
-
-
積分限幅PID.rar
2023-5-16 19:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
677.47 KB, 下載次數: 60, 下載積分: 黑幣 -5
-
-
增量式PID.rar
2023-5-16 19:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
543.92 KB, 下載次數: 68, 下載積分: 黑幣 -5
-
-
位置式PID.rar
2023-5-16 19:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
5.52 MB, 下載次數: 65, 下載積分: 黑幣 -5
|