找回密码
 注册
关于网站域名变更的通知
查看: 341|回复: 1
打印 上一主题 下一主题

C语言描述PID算法程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-7 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include <C8051F020.H>' q; T0 i( `7 ]9 l$ d3 R) N2 T
#include <string.h>2 u2 f& Z  \+ m: F( _6 [5 y( }
#include <math.h>- M1 N& A( L( m% L
llvoid PIDInit(PID "P)]:
! o) F" x/ F9 z( S4 d- {; x) x尸定义结构体和公用体1
8 L4 m1 G% t3 S- B8 ^0 ]5 V#define N8
4 p# T1 W' z8 z, K' b# D) N$ u3 i+ G1 Xtypedef struct PID{
9 i; o2 m' p4 g1 s6 iunsigned int setpoint:2 z1 F6 f$ g& n! Z
尸设定值1
: R% O0 j# x0 bunsigned int proportion:
; o+ F7 K& S/ @/ I- RI"比例系数1. {0 B+ L$ H/ R% I$ @' b
unsigned int integral;. K# t# d7 H0 R1 G9 c- p
1积分系数”1
5 i( w/ i; G2 a6 Kunsigned int derivative;
' G6 T  n# v: T' U) b: I尸微分系数°1
( n+ I) D( E  i& _# W. {' F. z8 runsigned int lasterror;
8 j2 m) U  a2 b7 N2 v「前一"拍误差"1% w0 \! R  x6 B* O+ s" L2 Y  i9 E% d+ Y
unsigned int preerror,8 b) N7 o- \; e1 E
P前两拍误差1
- G* v0 g/ a6 \( U}PID;, \/ F, M2 o# ^( p% O
union stu{/ a9 {  s1 h( J. R1 H
unsigned int value;
5 B3 w, H9 z) q) X5 n' |unsigned char num[2];
. H0 P; N: D, B}laser;
$ `8 w9 O) v% r* j- U2 x! Hunion dat{
1 |/ A4 b5 D2 V2 nunsigned char dd[2]:
2 a" h/ u; D. Z+ j+ T6 punsigned int number,; H3 |! ?8 d* C
}collect0 [+ g, p1 _, @: N4 d9 J
P函数声明部分"I
$ h! }1 L* ]: ounsigned int PIDcal(PID "pp.int tiser):$ k# N: P! a) L4 U' l& N; t7 A
void PIDInit(PID "P)]:/ z6 ?+ j& Q+ H
void Portinit(void);0 Q9 N8 C  p4 R- D! D% |
unsigned int get ad(void);! l9 r8 E. m+ k4 ^
unsigned int flter valve(void).
0 O: a6 `* k# s( O1 Uvoid Delayms(void);
( r; U8 h# g- W+ \& DP"主函数部分”1! V/ m4 @& ]( k3 Z
void main(void)
, g! K) o' z7 q3 h; w  yPID vPID;
0 `: I+ D* v% A0 n# N1"定义结构体变量名”1  y! {$ K: ^( @
unsigned int verror,. d$ X; f# A5 Z& b& h* L
unsigned int Error,
  O+ M" V6 I- S5 n* |* ~4 Y" Xunsigned int tempi:
3 g3 ]$ G( Z1 ?3 `5 _4 c$ Junsigned5 c$ B+ K  M0 c* e  i2 t
char LASERH,LASERL误差的高低字节变量 “1) V/ U4 |# x- j% ?2 L: L& E
WDTCN=Oxde;
" N6 v3 ~/ j  K7 [9 X! d* |& Q+ z# PWDTCN=Oxad;* h% D' b/ Z# T1 x- P
lporinit);:
: t7 t: G) E  j" x) OPIDInit(&vPID);& Y! M; o6 f5 w/ W
vPID.proportion=10; P 设置PID 比例系数为10°/! D3 t- V: w  u9 k+ C
vPID.integral=10; 1 设定PID 积分系数为10*/
- V% u9 _) T/ l) e5 \( F4 P4 }
游客,如果您要查看本帖隐藏内容请回复

+ l- o. \- O3 [7 I4 K: q/ \( \+ W9 U# Z; g; G
  • TA的每日心情

    2019-11-19 15:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-1-7 17:57 | 只看该作者
    兄弟,你这个偷笑是咋回事?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-11 20:15 , Processed in 0.109375 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表