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

C语言描述PID算法程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include <C8051F020.H>7 {6 n7 P6 B  j* C) W' v, b' l5 U
#include <string.h>0 }! q( ?" @# o' c" k
#include <math.h>1 [, h$ q8 ^* ^$ }& w9 W
llvoid PIDInit(PID "P)]:
6 v  K8 }1 S: b4 M# \' R( \* r尸定义结构体和公用体1+ p* [  M- B' X: ~* f+ y9 b2 @
#define N8
* `; d. `# l5 \. d8 ltypedef struct PID{# H/ H/ A+ T' C
unsigned int setpoint:
9 \* p; I1 X. c# [尸设定值1
/ k3 p- G, [8 v8 b9 Q2 }unsigned int proportion:
2 J( t: v0 f" r% R* }I"比例系数1
$ s1 t0 _8 P1 d0 s  runsigned int integral;
% C& n  X1 r) F$ ?' ^( Z) ~; Q1积分系数”1
+ Z- G' y/ t* J. q$ [% vunsigned int derivative;( E/ w9 B' w  h# P. c5 w5 g+ @
尸微分系数°1+ {2 G6 M2 J4 b+ l  N1 H' i' m
unsigned int lasterror;, H5 q6 a4 Y$ b5 Y" h
「前一"拍误差"1
1 Q$ L# {, E5 [' U- S' kunsigned int preerror," [7 P% F* R0 s$ i. u( A
P前两拍误差1
0 V# J1 n% m/ j( T: {5 p! A}PID;
  t' Y4 V) \& w3 O7 @union stu{
' l' Y5 [/ ]% d4 R+ X4 Hunsigned int value;. ]1 O1 s; e  {+ O
unsigned char num[2];  |' x6 R/ i7 C& W# u
}laser;
. T7 T5 r- L& e+ R8 }union dat{! V! I* y( y3 s  [
unsigned char dd[2]:
7 s0 Q% O" Z) Eunsigned int number,
' c, |8 S: L* P0 Y# e& f}collect0 D( o9 C0 u5 s+ C& x
P函数声明部分"I
7 G4 n3 x' J8 O; R' B/ M5 [unsigned int PIDcal(PID "pp.int tiser):) A. n% u# C; v& e5 e
void PIDInit(PID "P)]:) C' V$ y8 N9 b4 n
void Portinit(void);* k5 Z6 V7 A0 ?& l* h! ~  q6 Z; |
unsigned int get ad(void);
( Q8 M$ F- l) ^. C( E/ Sunsigned int flter valve(void).& b# b: n) _- K- z* Z$ Y& e* H" E
void Delayms(void);
' a6 |3 q7 Y$ n* L5 R3 e' qP"主函数部分”1
8 ~# N" [0 k" s0 d0 @void main(void)
) d5 }4 h2 M" x3 L9 RPID vPID;
7 p: `$ n! K* ^) Z; ^1"定义结构体变量名”1. j1 o0 H6 x1 C2 _: n
unsigned int verror,# G; ^3 U0 @/ f, K1 \
unsigned int Error,2 k/ [* l/ C9 P3 o3 ~$ \6 H
unsigned int tempi:* D7 |& f% \9 X7 m2 d2 S' R: G
unsigned
' A7 I8 [3 _& e0 b  G8 y) Tchar LASERH,LASERL误差的高低字节变量 “1
* u# w( o( f/ z- m" d9 rWDTCN=Oxde;
# j* b1 e6 a% H, Y, KWDTCN=Oxad;/ Z8 S+ M# G5 y; r2 ?$ F; Z
lporinit);:' {$ w( f0 ]2 x; Z
PIDInit(&vPID);
! h+ W7 V8 z1 g& uvPID.proportion=10; P 设置PID 比例系数为10°/0 S) G# D! s2 v* l4 \
vPID.integral=10; 1 设定PID 积分系数为10*/$ N8 n/ D5 o" j
游客,如果您要查看本帖隐藏内容请回复
3 U6 i$ l6 P' }- d5 J5 ~4 @
; h6 X. L8 v  Q9 o
  • TA的每日心情

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

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-5 09:26 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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