• PID控制算法的C语言实现八 变积分的PID控制算法C语言实现


     

       变积分PID可以看成是积分分离的PID算法的更一般的形式。在普通的PID控制算法中,由于积分系数ki是常数,所以在整个控制过程中,积分增量是不变的。但是,系统对于积分项的要求是,系统偏差大时,积分作用应该减弱甚至是全无,而在偏差小时,则应该加强。积分系数取大了会产生超调,甚至积分饱和,取小了又不能短时间内消除静差。因此,根据系统的偏差大小改变积分速度是有必要的。

       变积分PID的基本思想是设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分越慢; 偏差越小,积分越快。

       这里给积分系数前加上一个比例值index:

       当abs(err)<180时,index=1;

       当180<abs(err)<200时,index=(200-abs(err))/20;

       当abs(err)>200时,index=0;

       最终的比例环节的比例系数值为ki*index;

       具体PID实现代码如下:

        pid.Kp=0.4;
        pid.Ki=0.2;    //增加了积分系数
        pid.Kd=0.2;

     

       float PID_realize(float speed){
        float index;
        pid.SetSpeed=speed;
        pid.err=pid.SetSpeed-pid.ActualSpeed;

        if(abs(pid.err)>200)           //变积分过程
        {
        index=0.0;
        }else if(abs(pid.err)<180){
        index=1.0;
        pid.integral+=pid.err;
        }else{
        index=(200-abs(pid.err))/20;
        pid.integral+=pid.err;
        }
        pid.voltage=pid.Kp*pid.err+index*pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last);

        pid.err_last=pid.err;
        pid.ActualSpeed=pid.voltage*1.0;
        return pid.ActualSpeed;
    }

    最终结果可以看出,系统的稳定速度非常快(测试程序参见本系列教程3):

    120.000000
    64.000000
    148.800003
    96.959999
    165.632004
    120.934395
    177.300476
    139.081223
    185.469742
    152.898834
    191.139313
    163.452988
    195.022278
    171.538986
    197.635025
    177.753738
    199.350967
    182.546188
    200.439255
    186.254608
    201.093094
    189.134460
    201.450439
    191.379044
    201.609268
    193.135010
    201.638611
    194.513870
    201.586670
    195.600708
    201.486694
    196.460571
    201.361328
    197.143387
    201.225632
    197.687561
    201.089340
    198.122787
    200.958511
    198.472076
    200.836655
    198.753296
    200.725555
    198.980423
    200.625870
    199.164398
    200.537506
    199.313843
    200.459900
    199.435547
    200.392258
    199.534912
    200.333679
    199.616211
    200.283203
    199.682877
    200.239899
    199.737640
    200.202866
    199.782700
    200.171295
    199.819855
    200.144470
    199.850525
    200.121704
    199.875870
    200.102432
    199.896851
    200.086136
    199.914230
    200.072372
    199.928635
    200.060776
    199.940582
    200.051010
    199.950500
    200.042801
    199.958755
    200.035904
    199.965622
    200.030090
    199.971344
    200.025223
    199.976105
    200.021118
    199.980057
    200.017700
    199.983353
    200.014832
    199.986099
    200.012421
    199.988403
    200.010391
    199.990326
    200.008698
    199.991928
    200.007263
    199.993256
    200.006088
    199.994370
    200.005081
    199.995300
    200.004257
    199.996063
    200.003555
    199.996719
    200.002975
    199.997253
    200.002487
    199.997711
    200.002075
    199.998077
    200.001740
    199.998398
    200.001465
    199.998657
    200.001221
    199.998886
    200.001007
    199.999084
    200.000839
    199.999237
    200.000702
    199.999359
    200.000580
    199.999451
    200.000488
    199.999542
    200.000397
    199.999619
    200.000336
    199.999680
    200.000275
    199.999725
    200.000229
    199.999756
    200.000198
    199.999802
    200.000168
    199.999832
    200.000137
    199.999863
    200.000107
    199.999893
    200.000092
    199.999908
    200.000076
    199.999924
    200.000061
    199.999939
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
    199.999954
    200.000046
     

     

  • 相关阅读:
    json数据读取后自动进行模板生成
    json数据排序
    fastjson json数据处理
    xml数据转Json
    jackson-dataformat-xml xml转json
    jar工具打包
    工具操作
    IBM MQ
    RabbitMq
    Excel4J
  • 原文地址:https://www.cnblogs.com/ITGUANCHAZHE/p/14319748.html
Copyright © 2020-2023  润新知