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

📄 pid373.c

📁 书籍代码:遗传演算法原理与应用_活用MATLAB(Source Code)
💻 C
字号:
/*
 * File : pid373.c
 * 
 *       An example of PID System,
 *       uk = digital_pid(ek, xk)
 *
 * Revised by Chou, Penchen, Aug. 23,2001
 * EE Dept., Da-Yeh University.
 */

float digital_pid(float, float);
#include<dos.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX(i,j)  (i>=j)?i:j
#define MIN(i,j)  (i<=j)?i:j
/***************************************************************
**          ==> USER CAN MODIFY THE FOLLOWING:         *********
****************************************************************/
#define Ts 488e-8
#define Kp 0.16
#define Ki 5
#define Kd 0.001
#define Co_e Kp+Ts*Ki
#define Co_x -0.5*Kd/Ts

#define OUT_min -10
#define OUT_max  10

float digital_pid(float en, float xn)
  {
//    float Co_e=Kp+Ts*Ki, Co_x=-0.5*Kd/Ts;
    float In,Inm1=0,xnm1=0,xnm2=0, output;

    In=Inm1+Ts*Ki*en;
    output=Co_e*en+Inm1+Co_x*(xn-xnm2);
    output=MIN(output, OUT_max);    /* BOUNDED OUTPUT CHECK POINTS */
    output=MAX(output, OUT_min);

    /* Update variables */
    Inm1=In;
    xnm2=xnm1; xnm1=xn;
    return (output);
  }
/************************************************************************
	   END of FUNCTIONS.
*************************************************************************/

⌨️ 快捷键说明

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