PID算法数字化
在上一节中讨论了连续PID控制的原理,但是计算机没有办法直接处理连续信号,只能根据采样时刻对连续信号进行采样,将采样之后的信号送给计算机处理。
按模拟PID控制算法,以一系列的采样时刻点,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即
t
≈
k
T
(
k
=
0
,
1
,
2
,
⋅
⋅
⋅
)
t≈ kT (k=0,1,2,···)
t≈kT(k=0,1,2,⋅⋅⋅)
∫
0
t
e
r
r
o
r
(
t
)
d
t
≈
T
∑
j
=
0
k
e
r
r
o
r
(
T
)
=
T
∑
j
=
0
k
e
r
r
o
r
(
j
)
\int_{0}^{t}error(t)dt ≈ T\sum_{j=0}^{k}error(T) = T\sum_{j=0}^{k}error(j)
∫0terror(t)dt≈Tj=0∑kerror(T)=Tj=0∑kerror(j)
d
e
r
r
o
r
(
t
)
d
t
≈
e
r
r
o
r
(
k
T
)
−
e
r
r
o
r
(
(
k
−
1
)
T
)
T
=
e
r
r
o
r
(
k
)
−
e
r
r
o
r
(
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
)
=
k
p
(
e
r
r
o
r
(
k
)
+
T
T
I
∑
j
=
0
k
e
r
r
o
r
(
j
)
+
T
D
T
(
e
r
r
o
r
(
k
)
−
e
r
r
o
r
(
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)+TITj=0∑kerror(j)+TTD(error(k)−error(k−1)))
=
k
p
e
r
r
o
r
(
k
)
+
k
i
∑
j
=
0
k
e
r
r
o
r
(
j
)
T
+
k
d
e
r
r
o
r
(
k
)
−
e
r
r
o
r
(
k
−
1
)
T
=k_perror(k)+k_i\sum_{j=0}^{k}error(j)T+k_d\frac{error(k)-error(k-1)}{T}
=kperror(k)+kij=0∑kerror(j)T+kdTerror(k)−error(k−1)
式中,
k
i
=
k
p
T
I
,
k
d
=
k
p
T
D
。
T
为
采
样
周
期
,
k
为
采
样
序
号
,
k
=
1
,
2
,
⋅
⋅
⋅
,
e
r
r
o
r
(
k
−
1
)
和
e
r
r
o
r
(
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=TIkp,kd=kpTD。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; //期望值设置为0
pPID->m_PidOutputValue = 0; //PID调节器输出设置为0
pPID->m_err = 0; //当前偏差值设置为0
pPID->m_err_last = 0; //上一次的偏差值设置为0
pPID->m_integral = 0; //积分值设置为0
pPID->m_Kp = 0.1; //比例系数设置为0.1
pPID->m_Ki = 0.02; //积分系数设置为0.02
pPID->m_Kd = 0.17; //微分系数设置为0.17
qDebug()<<"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