PID算法数字化

在上一节中讨论了连续PID控制的原理,但是计算机没有办法直接处理连续信号,只能根据采样时刻对连续信号进行采样,将采样之后的信号送给计算机处理。
  按模拟PID控制算法,以一系列的采样时刻点,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即
  t≈kT(k=0,1,2,⋅⋅⋅)t≈ kT (k=0,1,2,···)t≈kT(k=0,1,2,⋅⋅⋅)  ∫0terror(t)dt≈T∑j=0kerror(T)=T∑j=0kerror(j)\int_{0}^{t}error(t)dt ≈ T\sum_{j=0}^{k}error(T) = T\sum_{j=0}^{k}error(j)∫0t​error(t)dt≈Tj=0∑k​error(T)=Tj=0∑k​error(j) derror(t)dt≈error(kT)−error((k−1)T)T=error(k)−error(k−1)T\frac{derror(t)}{dt}≈\frac{error(kT)-error((k-1)T)}{T} = \frac{error(k)-error(k-1)}{T}dtderror(t)​≈Terror(kT)−error((k−1)T)​=Terror(k)−error(k−1)​
可得离散的PID表达式:
u(k)=kp(error(k)+TTI∑j=0kerror(j)+TDT(error(k)−error(k−1)))u(k)=k_p(error(k)+\frac{T}{T_I}\sum_{j=0}^{k}error(j)+\frac{T_D}{T}(error(k)-error(k-1)))u(k)=kp​(error(k)+TI​T​j=0∑k​error(j)+TTD​​(error(k)−error(k−1))) =kperror(k)+ki∑j=0kerror(j)T+kderror(k)−error(k−1)T=k_perror(k)+k_i\sum_{j=0}^{k}error(j)T+k_d\frac{error(k)-error(k-1)}{T} =kp​error(k)+ki​j=0∑k​error(j)T+kd​Terror(k)−error(k−1)​
式中,ki=kpTI,kd=kpTD。T为采样周期,k为采样序号,k=1,2,⋅⋅⋅,error(k−1)和error(k)分别为第(k−1)和第k时刻所得的偏差信号。k_i=\frac{k_p}{T_I},k_d=k_pT_D。T为采样周期,k为采样序号,k=1,2,···,error(k-1)和error(k)分别为第(k-1)和第k时刻所得的偏差信号。ki​=TI​kp​​,kd​=kp​TD​。T为采样周期,k为采样序号,k=1,2,⋅⋅⋅,error(k−1)和error(k)分别为第(k−1)和第k时刻所得的偏差信号。

位置式PID的C语言代码实现

在Qt的环境中实现了位置式的PID,代码如下:

typedef struct tagPID{float   m_SetValue;             //定义设定值float   m_PidOutputValue;       //PID计算输出结果值,用来驱动执行机构float   m_err;                //当前的误差值float   m_err_last;           //上一次计算的偏差值float   m_Kp;                 //比例系数float   m_Ki;                  //积分系数float   m_Kd;                 //微分系数float   m_integral;             //积分值
}PID;   //PID结构体int main()
{PID MyPid;PID_Init(&MyPid);float outval = 0;float actval = 0;for(int i =0 ;i< 600; i++){float outval = PID_Abs_Calc(&MyPid, 100, actval);actval = outval;qDebug() <<"i = "<<i<< "actval = "<<actval;}
}/** 初始化PID控制器的参数,
*/
void PID_Init(PID* pPID)
{qDebug()<<"PID_Init begin";pPID->m_SetValue = 0;           //期望值设置为0pPID->m_PidOutputValue = 0;     //PID调节器输出设置为0pPID->m_err = 0;                //当前偏差值设置为0pPID->m_err_last = 0;           //上一次的偏差值设置为0pPID->m_integral = 0;           //积分值设置为0pPID->m_Kp = 0.1;               //比例系数设置为0.1pPID->m_Ki = 0.02;              //积分系数设置为0.02pPID->m_Kd = 0.17;              //微分系数设置为0.17qDebug()<<"PID_Init end";
}/** 位置式PID运算核心,输入参数是PID结构体的指针,* set_value是用户期望的设定值,* actual_value是当前的采样值,* 返回值是PID控制器的运算输出结果
*/
float PID_Abs_Calc(PID* pPID, float set_value, float actual_value)
{pPID->m_SetValue = set_value;                       //设置用于期望值pPID->m_err = pPID->m_SetValue - actual_value;      //期望值减去当前值pPID->m_integral += pPID->m_err;                    //PID的积分运算pPID->m_PidOutputValue = (pPID->m_Kp * pPID->m_err) +       \(pPID->m_Ki * pPID->m_integral) +                   \pPID->m_Kd *(pPID->m_err - pPID->m_err_last);/*PID运算完成一次之后,当前偏差作为下一次偏差*/pPID->m_err_last = pPID->m_err;/*返回PID运算结果*/return pPID->m_PidOutputValue;
}
输出结果
PID_Init begin
PID_Init end
i =  0 actval =  29
i =  1 actval =  5.59
i =  2 actval =  18.7289
i =  3 actval =  12.8271
i =  4 actval =  18.3977
i =  5 actval =  17.5224
i =  6 actval =  20.3552
i =  7 actval =  21.0345
i =  8 actval =  22.912
i =  9 actval =  24.0623
i =  10 actval =  25.5896
i =  11 actval =  26.861
i =  12 actval =  28.2402
i =  13 actval =  29.5191
i =  14 actval =  30.8179
i =  15 actval =  32.0683
i =  16 actval =  33.3101
i =  17 actval =  34.5212
i =  18 actval =  35.7149
i =  19 actval =  36.8841
i =  20 actval =  38.0337
i =  21 actval =  39.1614
i =  22 actval =  40.2691
i =  23 actval =  41.3564
i =  24 actval =  42.424
i =  25 actval =  43.4721
i =  26 actval =  44.5012
i =  27 actval =  45.5115
i =  28 actval =  46.5034
i =  29 actval =  47.4773
i =  30 actval =  48.4334
i =  31 actval =  49.3721
i =  32 actval =  50.2938
i =  33 actval =  51.1986
i =  34 actval =  52.087
i =  35 actval =  52.9593
i =  36 actval =  53.8156
i =  37 actval =  54.6563
i =  38 actval =  55.4818
i =  39 actval =  56.2922
i =  40 actval =  57.0879
i =  41 actval =  57.8691
i =  42 actval =  58.636
i =  43 actval =  59.389
i =  44 actval =  60.1283
i =  45 actval =  60.8542
i =  46 actval =  61.5668
i =  47 actval =  62.2664
i =  48 actval =  62.9533
i =  49 actval =  63.6277
i =  50 actval =  64.2899
i =  51 actval =  64.94
i =  52 actval =  65.5782
i =  53 actval =  66.2048
i =  54 actval =  66.82
i =  55 actval =  67.4241
i =  56 actval =  68.0171
i =  57 actval =  68.5993
i =  58 actval =  69.1709
i =  59 actval =  69.7321
i =  60 actval =  70.2832
i =  61 actval =  70.8241
i =  62 actval =  71.3552
i =  63 actval =  71.8767
i =  64 actval =  72.3887
i =  65 actval =  72.8913
i =  66 actval =  73.3848
i =  67 actval =  73.8693
i =  68 actval =  74.345
i =  69 actval =  74.812
i =  70 actval =  75.2706
i =  71 actval =  75.7207
i =  72 actval =  76.1627
i =  73 actval =  76.5967
i =  74 actval =  77.0227
i =  75 actval =  77.441
i =  76 actval =  77.8517
i =  77 actval =  78.2549
i =  78 actval =  78.6507
i =  79 actval =  79.0394
i =  80 actval =  79.4209
i =  81 actval =  79.7956
i =  82 actval =  80.1634
i =  83 actval =  80.5245
i =  84 actval =  80.879
i =  85 actval =  81.2271
i =  86 actval =  81.5689
i =  87 actval =  81.9044
i =  88 actval =  82.2338
i =  89 actval =  82.5572
i =  90 actval =  82.8748
i =  91 actval =  83.1865
i =  92 actval =  83.4926
i =  93 actval =  83.7931
i =  94 actval =  84.0881
i =  95 actval =  84.3778
i =  96 actval =  84.6622
i =  97 actval =  84.9414
i =  98 actval =  85.2155
i =  99 actval =  85.4847
i =  100 actval =  85.7489
i =  101 actval =  86.0083
i =  102 actval =  86.263
i =  103 actval =  86.5131
i =  104 actval =  86.7586
i =  105 actval =  86.9997
i =  106 actval =  87.2364
i =  107 actval =  87.4687
i =  108 actval =  87.6968
i =  109 actval =  87.9208
i =  110 actval =  88.1407
i =  111 actval =  88.3566
i =  112 actval =  88.5685
i =  113 actval =  88.7766
i =  114 actval =  88.9809
i =  115 actval =  89.1815
i =  116 actval =  89.3785
i =  117 actval =  89.5718
i =  118 actval =  89.7617
i =  119 actval =  89.9481
i =  120 actval =  90.1311
i =  121 actval =  90.3107
i =  122 actval =  90.4871
i =  123 actval =  90.6603
i =  124 actval =  90.8303
i =  125 actval =  90.9972
i =  126 actval =  91.1611
i =  127 actval =  91.322
i =  128 actval =  91.48
i =  129 actval =  91.6351
i =  130 actval =  91.7874
i =  131 actval =  91.9369
i =  132 actval =  92.0836
i =  133 actval =  92.2278
i =  134 actval =  92.3693
i =  135 actval =  92.5082
i =  136 actval =  92.6445
i =  137 actval =  92.7785
i =  138 actval =  92.9099
i =  139 actval =  93.039
i =  140 actval =  93.1657
i =  141 actval =  93.2901
i =  142 actval =  93.4123
i =  143 actval =  93.5322
i =  144 actval =  93.6499
i =  145 actval =  93.7655
i =  146 actval =  93.879
i =  147 actval =  93.9905
i =  148 actval =  94.0999
i =  149 actval =  94.2073
i =  150 actval =  94.3127
i =  151 actval =  94.4163
i =  152 actval =  94.5179
i =  153 actval =  94.6177
i =  154 actval =  94.7157
i =  155 actval =  94.8119
i =  156 actval =  94.9063
i =  157 actval =  94.999
i =  158 actval =  95.0901
i =  159 actval =  95.1795
i =  160 actval =  95.2672
i =  161 actval =  95.3534
i =  162 actval =  95.438
i =  163 actval =  95.521
i =  164 actval =  95.6025
i =  165 actval =  95.6826
i =  166 actval =  95.7612
i =  167 actval =  95.8384
i =  168 actval =  95.9141
i =  169 actval =  95.9885
i =  170 actval =  96.0615
i =  171 actval =  96.1332
i =  172 actval =  96.2036
i =  173 actval =  96.2727
i =  174 actval =  96.3406
i =  175 actval =  96.4072
i =  176 actval =  96.4726
i =  177 actval =  96.5368
i =  178 actval =  96.5999
i =  179 actval =  96.6618
i =  180 actval =  96.7225
i =  181 actval =  96.7822
i =  182 actval =  96.8408
i =  183 actval =  96.8983
i =  184 actval =  96.9547
i =  185 actval =  97.0102
i =  186 actval =  97.0646
i =  187 actval =  97.118
i =  188 actval =  97.1705
i =  189 actval =  97.222
i =  190 actval =  97.2726
i =  191 actval =  97.3222
i =  192 actval =  97.371
i =  193 actval =  97.4188
i =  194 actval =  97.4658
i =  195 actval =  97.512
i =  196 actval =  97.5573
i =  197 actval =  97.6017
i =  198 actval =  97.6454
i =  199 actval =  97.6882
i =  200 actval =  97.7303
i =  201 actval =  97.7716
i =  202 actval =  97.8122
i =  203 actval =  97.852
i =  204 actval =  97.8911
i =  205 actval =  97.9295
i =  206 actval =  97.9672
i =  207 actval =  98.0042
i =  208 actval =  98.0406
i =  209 actval =  98.0762
i =  210 actval =  98.1112
i =  211 actval =  98.1456
i =  212 actval =  98.1794
i =  213 actval =  98.2125
i =  214 actval =  98.2451
i =  215 actval =  98.277
i =  216 actval =  98.3084
i =  217 actval =  98.3392
i =  218 actval =  98.3694
i =  219 actval =  98.3991
i =  220 actval =  98.4282
i =  221 actval =  98.4568
i =  222 actval =  98.4849
i =  223 actval =  98.5125
i =  224 actval =  98.5396
i =  225 actval =  98.5662
i =  226 actval =  98.5923
i =  227 actval =  98.6179
i =  228 actval =  98.6431
i =  229 actval =  98.6678
i =  230 actval =  98.692
i =  231 actval =  98.7158
i =  232 actval =  98.7392
i =  233 actval =  98.7622
i =  234 actval =  98.7847
i =  235 actval =  98.8068
i =  236 actval =  98.8285
i =  237 actval =  98.8499
i =  238 actval =  98.8708
i =  239 actval =  98.8914
i =  240 actval =  98.9115
i =  241 actval =  98.9314
i =  242 actval =  98.9508
i =  243 actval =  98.9699
i =  244 actval =  98.9887
i =  245 actval =  99.0071
i =  246 actval =  99.0252
i =  247 actval =  99.0429
i =  248 actval =  99.0603
i =  249 actval =  99.0774
i =  250 actval =  99.0942
i =  251 actval =  99.1107
i =  252 actval =  99.1269
i =  253 actval =  99.1428
i =  254 actval =  99.1584
i =  255 actval =  99.1737
i =  256 actval =  99.1888
i =  257 actval =  99.2035
i =  258 actval =  99.218
i =  259 actval =  99.2323
i =  260 actval =  99.2462
i =  261 actval =  99.26
i =  262 actval =  99.2734
i =  263 actval =  99.2867
i =  264 actval =  99.2996
i =  265 actval =  99.3124
i =  266 actval =  99.3249
i =  267 actval =  99.3372
i =  268 actval =  99.3493
i =  269 actval =  99.3611
i =  270 actval =  99.3727
i =  271 actval =  99.3842
i =  272 actval =  99.3954
i =  273 actval =  99.4064
i =  274 actval =  99.4172
i =  275 actval =  99.4278
i =  276 actval =  99.4382
i =  277 actval =  99.4484
i =  278 actval =  99.4585
i =  279 actval =  99.4683
i =  280 actval =  99.478
i =  281 actval =  99.4875
i =  282 actval =  99.4969
i =  283 actval =  99.506
i =  284 actval =  99.515
i =  285 actval =  99.5238
i =  286 actval =  99.5325
i =  287 actval =  99.541
i =  288 actval =  99.5494
i =  289 actval =  99.5576
i =  290 actval =  99.5656
i =  291 actval =  99.5735
i =  292 actval =  99.5813
i =  293 actval =  99.5889
i =  294 actval =  99.5964
i =  295 actval =  99.6038
i =  296 actval =  99.611
i =  297 actval =  99.6181
i =  298 actval =  99.625
i =  299 actval =  99.6318
i =  300 actval =  99.6385
i =  301 actval =  99.6451
i =  302 actval =  99.6516
i =  303 actval =  99.6579
i =  304 actval =  99.6642
i =  305 actval =  99.6703
i =  306 actval =  99.6763
i =  307 actval =  99.6822
i =  308 actval =  99.688
i =  309 actval =  99.6936
i =  310 actval =  99.6992
i =  311 actval =  99.7047
i =  312 actval =  99.7101
i =  313 actval =  99.7153
i =  314 actval =  99.7205
i =  315 actval =  99.7256
i =  316 actval =  99.7306
i =  317 actval =  99.7355
i =  318 actval =  99.7403
i =  319 actval =  99.745
i =  320 actval =  99.7497
i =  321 actval =  99.7542
i =  322 actval =  99.7587
i =  323 actval =  99.7631
i =  324 actval =  99.7674
i =  325 actval =  99.7717
i =  326 actval =  99.7758
i =  327 actval =  99.7799
i =  328 actval =  99.7839
i =  329 actval =  99.7878
i =  330 actval =  99.7917
i =  331 actval =  99.7955
i =  332 actval =  99.7992
i =  333 actval =  99.8029
i =  334 actval =  99.8065
i =  335 actval =  99.81
i =  336 actval =  99.8134
i =  337 actval =  99.8168
i =  338 actval =  99.8202
i =  339 actval =  99.8234
i =  340 actval =  99.8267
i =  341 actval =  99.8298
i =  342 actval =  99.8329
i =  343 actval =  99.836
i =  344 actval =  99.8389
i =  345 actval =  99.8419
i =  346 actval =  99.8448
i =  347 actval =  99.8476
i =  348 actval =  99.8504
i =  349 actval =  99.8531
i =  350 actval =  99.8558
i =  351 actval =  99.8584
i =  352 actval =  99.861
i =  353 actval =  99.8635
i =  354 actval =  99.866
i =  355 actval =  99.8684
i =  356 actval =  99.8708
i =  357 actval =  99.8732
i =  358 actval =  99.8755
i =  359 actval =  99.8777
i =  360 actval =  99.88
i =  361 actval =  99.8821
i =  362 actval =  99.8843
i =  363 actval =  99.8864
i =  364 actval =  99.8885
i =  365 actval =  99.8905
i =  366 actval =  99.8925
i =  367 actval =  99.8944
i =  368 actval =  99.8964
i =  369 actval =  99.8982
i =  370 actval =  99.9001
i =  371 actval =  99.9019
i =  372 actval =  99.9037
i =  373 actval =  99.9055
i =  374 actval =  99.9072
i =  375 actval =  99.9089
i =  376 actval =  99.9105
i =  377 actval =  99.9122
i =  378 actval =  99.9138
i =  379 actval =  99.9153
i =  380 actval =  99.9169
i =  381 actval =  99.9184
i =  382 actval =  99.9199
i =  383 actval =  99.9213
i =  384 actval =  99.9228
i =  385 actval =  99.9242
i =  386 actval =  99.9255
i =  387 actval =  99.9269
i =  388 actval =  99.9282
i =  389 actval =  99.9295
i =  390 actval =  99.9308
i =  391 actval =  99.9321
i =  392 actval =  99.9333
i =  393 actval =  99.9345
i =  394 actval =  99.9357
i =  395 actval =  99.9369
i =  396 actval =  99.938
i =  397 actval =  99.9392
i =  398 actval =  99.9403
i =  399 actval =  99.9414
i =  400 actval =  99.9424
i =  401 actval =  99.9435
i =  402 actval =  99.9445
i =  403 actval =  99.9455
i =  404 actval =  99.9465
i =  405 actval =  99.9475
i =  406 actval =  99.9485
i =  407 actval =  99.9494
i =  408 actval =  99.9503
i =  409 actval =  99.9512
i =  410 actval =  99.9521
i =  411 actval =  99.953
i =  412 actval =  99.9538
i =  413 actval =  99.9547
i =  414 actval =  99.9555
i =  415 actval =  99.9563
i =  416 actval =  99.9571
i =  417 actval =  99.9579
i =  418 actval =  99.9587
i =  419 actval =  99.9594
i =  420 actval =  99.9602
i =  421 actval =  99.9609
i =  422 actval =  99.9616
i =  423 actval =  99.9623
i =  424 actval =  99.963
i =  425 actval =  99.9637
i =  426 actval =  99.9643
i =  427 actval =  99.965
i =  428 actval =  99.9656
i =  429 actval =  99.9662
i =  430 actval =  99.9668
i =  431 actval =  99.9674
i =  432 actval =  99.968
i =  433 actval =  99.9686
i =  434 actval =  99.9692
i =  435 actval =  99.9697
i =  436 actval =  99.9703
i =  437 actval =  99.9708
i =  438 actval =  99.9714
i =  439 actval =  99.9719
i =  440 actval =  99.9724
i =  441 actval =  99.9729
i =  442 actval =  99.9734
i =  443 actval =  99.9739
i =  444 actval =  99.9744
i =  445 actval =  99.9748
i =  446 actval =  99.9753
i =  447 actval =  99.9757
i =  448 actval =  99.9762
i =  449 actval =  99.9766
i =  450 actval =  99.9771
i =  451 actval =  99.9775
i =  452 actval =  99.9779
i =  453 actval =  99.9783
i =  454 actval =  99.9787
i =  455 actval =  99.9791
i =  456 actval =  99.9794
i =  457 actval =  99.9798
i =  458 actval =  99.9802
i =  459 actval =  99.9805
i =  460 actval =  99.9809
i =  461 actval =  99.9812
i =  462 actval =  99.9816
i =  463 actval =  99.9819
i =  464 actval =  99.9822
i =  465 actval =  99.9826
i =  466 actval =  99.9829
i =  467 actval =  99.9832
i =  468 actval =  99.9835
i =  469 actval =  99.9838
i =  470 actval =  99.9841
i =  471 actval =  99.9844
i =  472 actval =  99.9847
i =  473 actval =  99.9849
i =  474 actval =  99.9852
i =  475 actval =  99.9855
i =  476 actval =  99.9858
i =  477 actval =  99.986
i =  478 actval =  99.9863
i =  479 actval =  99.9865
i =  480 actval =  99.9868
i =  481 actval =  99.987
i =  482 actval =  99.9873
i =  483 actval =  99.9875
i =  484 actval =  99.9877
i =  485 actval =  99.9879
i =  486 actval =  99.9882
i =  487 actval =  99.9884
i =  488 actval =  99.9886
i =  489 actval =  99.9888
i =  490 actval =  99.989
i =  491 actval =  99.9892
i =  492 actval =  99.9894
i =  493 actval =  99.9896
i =  494 actval =  99.9898
i =  495 actval =  99.99
i =  496 actval =  99.9902
i =  497 actval =  99.9903
i =  498 actval =  99.9905
i =  499 actval =  99.9907
i =  500 actval =  99.9908
i =  501 actval =  99.991
i =  502 actval =  99.9912
i =  503 actval =  99.9913
i =  504 actval =  99.9915
i =  505 actval =  99.9916
i =  506 actval =  99.9918
i =  507 actval =  99.9919
i =  508 actval =  99.9921
i =  509 actval =  99.9922
i =  510 actval =  99.9924
i =  511 actval =  99.9925
i =  512 actval =  99.9926
i =  513 actval =  99.9928
i =  514 actval =  99.9929
i =  515 actval =  99.993
i =  516 actval =  99.9932
i =  517 actval =  99.9933
i =  518 actval =  99.9934
i =  519 actval =  99.9935
i =  520 actval =  99.9937
i =  521 actval =  99.9938
i =  522 actval =  99.9939
i =  523 actval =  99.994
i =  524 actval =  99.9941
i =  525 actval =  99.9942
i =  526 actval =  99.9943
i =  527 actval =  99.9944
i =  528 actval =  99.9945
i =  529 actval =  99.9946
i =  530 actval =  99.9947
i =  531 actval =  99.9948
i =  532 actval =  99.9949
i =  533 actval =  99.995
i =  534 actval =  99.9951
i =  535 actval =  99.9952
i =  536 actval =  99.9953
i =  537 actval =  99.9954
i =  538 actval =  99.9954
i =  539 actval =  99.9955
i =  540 actval =  99.9956
i =  541 actval =  99.9957
i =  542 actval =  99.9958
i =  543 actval =  99.9958
i =  544 actval =  99.9959
i =  545 actval =  99.996
i =  546 actval =  99.9961
i =  547 actval =  99.9961
i =  548 actval =  99.9962
i =  549 actval =  99.9963
i =  550 actval =  99.9964
i =  551 actval =  99.9964
i =  552 actval =  99.9965
i =  553 actval =  99.9965
i =  554 actval =  99.9966
i =  555 actval =  99.9967
i =  556 actval =  99.9967
i =  557 actval =  99.9968
i =  558 actval =  99.9968
i =  559 actval =  99.9969
i =  560 actval =  99.997
i =  561 actval =  99.997
i =  562 actval =  99.9971
i =  563 actval =  99.9971
i =  564 actval =  99.9972
i =  565 actval =  99.9972
i =  566 actval =  99.9973
i =  567 actval =  99.9973
i =  568 actval =  99.9974
i =  569 actval =  99.9974
i =  570 actval =  99.9975
i =  571 actval =  99.9975
i =  572 actval =  99.9976
i =  573 actval =  99.9976
i =  574 actval =  99.9976
i =  575 actval =  99.9977
i =  576 actval =  99.9977
i =  577 actval =  99.9978
i =  578 actval =  99.9978
i =  579 actval =  99.9979
i =  580 actval =  99.9979
i =  581 actval =  99.9979
i =  582 actval =  99.998
i =  583 actval =  99.998
i =  584 actval =  99.998
i =  585 actval =  99.9981
i =  586 actval =  99.9981
i =  587 actval =  99.9981
i =  588 actval =  99.9982
i =  589 actval =  99.9982
i =  590 actval =  99.9982
i =  591 actval =  99.9983
i =  592 actval =  99.9983
i =  593 actval =  99.9983
i =  594 actval =  99.9984
i =  595 actval =  99.9984
i =  596 actval =  99.9984
i =  597 actval =  99.9985
i =  598 actval =  99.9985
i =  599 actval =  99.9985

PID控制算法学习与实现总结(二)位置式PID控制算法相关推荐

  1. 位置式PID与增量式PID区别浅析(百度百科增量式PID讲解思路概念更明确清晰)

    位置式PID与增量式PID区别浅析 Z小旋 2019-04-26 08:55:12  59882  收藏 713 分类专栏: NXP智能车学习 文章标签: 位置式PID PID 增量式PID 版权 1 ...

  2. C语言实现位置式pid与增量式pid

    //经典PID控制的c实现 //1.位置式PID实现 //1.位置式PID实现 typedef struct {float setValue;//设定值float actValue;//输出值floa ...

  3. 位置式 PID 控制算法和增量式 PID 控制算法

    数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法 一.位置式 PID 算法 : e(k): 用户设定的值(目标值) - 控制对象的当前的状态值 比例P : e(k)积分 ...

  4. 位置式PID控制算法

    位置式PID控制算法 位置式PID控制算法概述: 注:本文内容摘自<先进PID控制MATLAB仿真(第4版)>刘金琨 编著,研读此书受益匪浅,感谢作者! 位置式PID控制算法概述: 按模拟 ...

  5. 位置式PID——小车类学习心得

    位置式PID--小车类学习心得 位置式PID:公式为:val=kp * err+ki * err_sum+kd*(err-err_last) err变量=期望值-实际值,也就是我们常说的误差 err_ ...

  6. PID控制的深入探讨(位置式PID、增量式PID、PID的积分饱和)

    本文主要探讨PID算法在使用时的一些实际问题.处理技巧和方法,学习本节内容需要先对PID控制算法有基本的了解. 1)PID控制的基本原理 PID是一个二阶线性控制器,它具有不需要建立数学模型,控制效果 ...

  7. 增量式PID与位置式PID的理解与代码实现

    一.PID控制算法概述 PID 实指"比例 proportional"."积分 integral"."微分 derivative",这三项构 ...

  8. 位置式PID与增量式PID的介绍和代码实现

    PID分为位置式PID与增量式PID. 一.位置式PID 1.表达式为: 2.缺点: 1).由于全量输出,所以每次输出均与过去状态有关,计算时要对ek进行累加,工作量大: 2).因为计算机输出的uk对 ...

  9. C语言实现PID算法:位置式PID和增量式PID

    原创者微信公众号 PID算法可以说是在自动控制原理中比较经典的一套算法,在现实生活中应用的比较广泛. 大学参加过电子竞赛的朋友都应该玩过电机(或者说循迹小车),我们要控制电机按照设定的速度运转,PID ...

最新文章

  1. Spring 缓存注解@Cacheable 在缓存时候 ,出现了第一次进入调用 方法 ,第二次不调用的异常
  2. PPC 调用约定 r0-r31寄存器介绍
  3. 网络服务器最基本的是文件,你可能想知道的15个网络常用基础知识
  4. 组合的输出(洛谷P1157题题解,Java语言描述)
  5. 2个基础操作案例带你入门MySQL
  6. 比较List和ArrayList的性能及ArrayList和LinkedList优缺点
  7. 非递归中序遍历---算法导论12.1-3
  8. kafka+多线程实现案例+Callable
  9. OBS视频录制及其直播推流教程(超详细,非硬核)
  10. 启动tomcat服务器,struts2报此错:org.apache.catalina.core.StandardContext.filterStart Exception starting filt
  11. docker 仓库镜像 替换_Docker如何制作自己镜像并上传dockerhub
  12. python爬取小说写入txt_基于python爬取小说章节源代码内容存为文本实现小说下载...
  13. 宝塔面板权限问题导致php上传文件失败
  14. 学生成绩管理系统 002
  15. 欧科云链链上卫士:做穿越Web3黑暗森林的那盏探照灯
  16. 如何搭建java环境_vscode搭建java环境
  17. 腾讯云轻量服务器蜂驰版测评及横向对比
  18. Excavator(挖掘机)-Java RMI
  19. ios 多线程gdc_GDC 2019中的Heretic,Megacity版本,实时光线追踪以及更多新闻
  20. 网易笔试编程题-混合颜料

热门文章

  1. 【C语言】中缀转后缀(头歌数据结构)
  2. EXCEL 2016统计函数整理
  3. 小程序影藏溢出的gif_如何在Android手机上快速实现视频转GIF动图呢?
  4. 提升工作效率的神器来了!
  5. 软件开发血泪史---按下葫芦起来瓢
  6. 《啤酒与饮料》python
  7. uni-app.开发微信小程序实现消息订阅
  8. 一个概率题:54张扑克牌,除去两张大小王剩下52张扑克牌。问红桃A和黑桃A同时被一个人拿到的概率是多少?
  9. windows curl命令详解
  10. Linux源码安装wireshark记录