diff --git a/data/adccalib.csv b/data/adccalib.csv deleted file mode 100644 index c76c251..0000000 --- a/data/adccalib.csv +++ /dev/null @@ -1,9 +0,0 @@ -set_v,dset_v,meas_v,dmeas_v,read_adc, dread_adc -48.0,.03,48.07,.002,4091,1 -39.02,.03,39.07,.002,3760,16 -40.01,.01,40.058,.002,3805,16 -41.01,.02,41.07,.003,3850,16 -42.02,.02,42.081,.002,3875,20 -43.02,.02,43.082,.002,3930,20 -44.00,.02,44.07,.002,3972,16 -46.01,.02,46.073,.002,4060,20 diff --git a/data/adccalib.eps b/data/adccalib.eps new file mode 100644 index 0000000..c75b1cd --- /dev/null +++ b/data/adccalib.eps @@ -0,0 +1,1066 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: adccalib.eps +%%Creator: matplotlib version 2.2.2, http://matplotlib.org/ +%%CreationDate: Mon Apr 23 11:11:59 2018 +%%Orientation: portrait +%%BoundingBox: -385 7 997 784 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /zero /one /two /four /five /six /eight /underscore /a /c /i /p /r /s /t /u ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 17 dict dup begin +/.notdef 0 def +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/five{{636 0 77 -13 549 729 _sc +108 729 _m +495 729 _l +495 646 _l +198 646 _l +198 467 _l +212 472 227 476 241 478 _c +255 480 270 482 284 482 _c +365 482 429 459 477 415 _c +525 370 549 310 549 234 _c +549 155 524 94 475 51 _c +426 8 357 -13 269 -13 _c +238 -13 207 -10 175 -6 _c +143 -1 111 6 77 17 _c +77 116 _l +106 100 136 88 168 80 _c +199 72 232 69 267 69 _c +}_e{323 69 368 83 401 113 _c +433 143 450 183 450 234 _c +450 284 433 324 401 354 _c +368 384 323 399 267 399 _c +241 399 214 396 188 390 _c +162 384 135 375 108 363 _c +108 729 _l +_cl}_e}_d +/six{{636 0 70 -13 573 742 _sc +330 404 _m +286 404 251 388 225 358 _c +199 328 186 286 186 234 _c +186 181 199 139 225 109 _c +251 79 286 64 330 64 _c +374 64 409 79 435 109 _c +461 139 474 181 474 234 _c +474 286 461 328 435 358 _c +409 388 374 404 330 404 _c +526 713 _m +526 623 _l +501 635 476 644 451 650 _c +425 656 400 659 376 659 _c +310 659 260 637 226 593 _c +}_e{192 549 172 482 168 394 _c +187 422 211 444 240 459 _c +269 474 301 482 336 482 _c +409 482 467 459 509 415 _c +551 371 573 310 573 234 _c +573 159 550 99 506 54 _c +462 9 403 -13 330 -13 _c +246 -13 181 19 137 83 _c +92 147 70 241 70 364 _c +70 479 97 571 152 639 _c +206 707 280 742 372 742 _c +396 742 421 739 447 735 _c +472 730 498 723 526 713 _c +_cl}_e}_d +/eight{{636 0 68 -13 568 742 _sc +318 346 _m +271 346 234 333 207 308 _c +180 283 167 249 167 205 _c +167 161 180 126 207 101 _c +234 76 271 64 318 64 _c +364 64 401 76 428 102 _c +455 127 469 161 469 205 _c +469 249 455 283 429 308 _c +402 333 365 346 318 346 _c +219 388 _m +177 398 144 418 120 447 _c +96 476 85 511 85 553 _c +85 611 105 657 147 691 _c +188 725 245 742 318 742 _c +}_e{390 742 447 725 489 691 _c +530 657 551 611 551 553 _c +551 511 539 476 515 447 _c +491 418 459 398 417 388 _c +464 377 501 355 528 323 _c +554 291 568 251 568 205 _c +568 134 546 80 503 43 _c +459 5 398 -13 318 -13 _c +237 -13 175 5 132 43 _c +89 80 68 134 68 205 _c +68 251 81 291 108 323 _c +134 355 171 377 219 388 _c +183 544 _m +183 506 194 476 218 455 _c +}_e{242 434 275 424 318 424 _c +360 424 393 434 417 455 _c +441 476 453 506 453 544 _c +453 582 441 611 417 632 _c +393 653 360 664 318 664 _c +275 664 242 653 218 632 _c +194 611 183 582 183 544 _c +_cl}_e}_d +/underscore{500 0 -9 -235 510 -165 _sc +510 -165 _m +510 -235 _l +-9 -235 _l +-9 -165 _l +510 -165 _l +_cl}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/p{{635 0 91 -207 580 560 _sc +181 82 _m +181 -207 _l +91 -207 _l +91 547 _l +181 547 _l +181 464 _l +199 496 223 520 252 536 _c +281 552 316 560 356 560 _c +422 560 476 533 518 481 _c +559 428 580 359 580 273 _c +580 187 559 117 518 65 _c +476 13 422 -13 356 -13 _c +316 -13 281 -5 252 10 _c +223 25 199 49 181 82 _c +487 273 _m +487 339 473 390 446 428 _c +418 466 381 485 334 485 _c +}_e{286 485 249 466 222 428 _c +194 390 181 339 181 273 _c +181 207 194 155 222 117 _c +249 79 286 61 334 61 _c +381 61 418 79 446 117 _c +473 155 487 207 487 273 _c +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/u{634 0 85 -13 543 560 _sc +85 216 _m +85 547 _l +175 547 _l +175 219 _l +175 167 185 129 205 103 _c +225 77 255 64 296 64 _c +344 64 383 79 411 110 _c +439 141 453 183 453 237 _c +453 547 _l +543 547 _l +543 0 _l +453 0 _l +453 84 _l +431 50 405 26 377 10 _c +348 -5 315 -13 277 -13 _c +214 -13 166 6 134 45 _c +101 83 85 140 85 216 _c +311 560 _m +311 560 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +-385.2 7.2 translate +1382.4 777.6 0 0 clipbox +gsave +0 0 m +1382.4 0 l +1382.4 777.6 l +0 777.6 l +cl +1.000 setgray +fill +grestore +gsave +172.8 85.536 m +1244.16 85.536 l +1244.16 684.288 l +172.8 684.288 l +cl +0.933 setgray +fill +grestore +0.500 setlinewidth +1 setlinejoin +0 setlinecap +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +375.281914 85.536 m +375.281914 684.288 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +375.282 85.536 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +368.922539 74.442250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +580.32689 85.536 m +580.32689 684.288 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +580.327 85.536 o +grestore +gsave +573.967515 74.442250 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +785.371866 85.536 m +785.371866 684.288 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +785.372 85.536 o +grestore +gsave +779.012491 74.442250 translate +0.000000 rotate +0.000000 0.000000 m /six glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +990.416842 85.536 m +990.416842 684.288 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +990.417 85.536 o +grestore +gsave +984.057467 74.442250 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +1195.461818 85.536 m +1195.461818 684.288 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +1195.46 85.536 o +grestore +gsave +1185.922756 74.442250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +172.8 87.660867 m +1244.16 87.660867 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +172.8 87.6609 o +grestore +gsave +162.940625 83.863992 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +172.8 208.874068 m +1244.16 208.874068 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +172.8 208.874 o +grestore +gsave +162.940625 205.077193 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +172.8 330.087269 m +1244.16 330.087269 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +172.8 330.087 o +grestore +gsave +156.581250 326.290394 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +172.8 451.30047 m +1244.16 451.30047 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +172.8 451.3 o +grestore +gsave +156.581250 447.503595 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /five glyphshow +grestore +0.500 setlinewidth +[1.85 0.8] 0 setdash +0.698 setgray +gsave +1071 598.8 172.8 85.54 clipbox +172.8 572.513671 m +1244.16 572.513671 l +stroke +grestore +0.800 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +172.8 572.514 o +grestore +gsave +156.581250 568.716796 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +1.000 setlinewidth +0.204 0.541 0.741 setrgbcolor +gsave +1071 598.8 172.8 85.54 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -1.5 m +0.397805 -1.5 0.77937 -1.341951 1.06066 -1.06066 c +1.341951 -0.77937 1.5 -0.397805 1.5 0 c +1.5 0.397805 1.341951 0.77937 1.06066 1.06066 c +0.77937 1.341951 0.397805 1.5 0 1.5 c +-0.397805 1.5 -0.77937 1.341951 -1.06066 1.06066 c +-1.341951 0.77937 -1.5 0.397805 -1.5 0 c +-1.5 -0.397805 -1.341951 -0.77937 -1.06066 -1.06066 c +-0.77937 -1.341951 -0.397805 -1.5 0 -1.5 c +cl + +gsave +0.204 0.541 0.741 setrgbcolor +fill +grestore +stroke +grestore +} bind def +221.498 112.752 o +272.759 134.207 o +324.021 155.977 o +375.282 184.074 o +529.066 258.111 o +580.327 294.984 o +631.588 319.469 o +682.849 352.124 o +734.111 381.724 o +785.372 413.167 o +836.633 444.294 o +887.894 466.961 o +939.156 502.331 o +990.417 526.501 o +1041.68 561.265 o +1092.94 589.362 o +1144.2 618.066 o +1195.46 657.072 o +grestore +0.651 0.024 0.157 setrgbcolor +gsave +1071 598.8 172.8 85.54 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -1.5 m +0.397805 -1.5 0.77937 -1.341951 1.06066 -1.06066 c +1.341951 -0.77937 1.5 -0.397805 1.5 0 c +1.5 0.397805 1.341951 0.77937 1.06066 1.06066 c +0.77937 1.341951 0.397805 1.5 0 1.5 c +-0.397805 1.5 -0.77937 1.341951 -1.06066 1.06066 c +-1.341951 0.77937 -1.5 0.397805 -1.5 0 c +-1.5 -0.397805 -1.341951 -0.77937 -1.06066 -1.06066 c +-0.77937 -1.341951 -0.397805 -1.5 0 -1.5 c +cl + +gsave +0.651 0.024 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +221.498 117.988 o +272.759 143.637 o +324.021 168.51 o +375.282 193.844 o +529.066 271.59 o +580.327 297.99 o +631.588 323.881 o +682.849 350.718 o +734.111 377.263 o +785.372 404.73 o +836.633 431.761 o +887.894 459.034 o +939.156 486.477 o +990.417 513.677 o +1041.68 541.507 o +1092.94 569.192 o +1144.2 597.532 o +1195.46 639.932 o +grestore +0.800 setlinewidth +0 setlinejoin +2 setlinecap +[] 0 setdash +0.737 setgray +gsave +172.8 85.536 m +172.8 684.288 l +stroke +grestore +gsave +1244.16 85.536 m +1244.16 684.288 l +stroke +grestore +gsave +172.8 85.536 m +1244.16 85.536 l +stroke +grestore +gsave +172.8 684.288 m +1244.16 684.288 l +stroke +grestore +0.500 setlinewidth +0 setlinecap +0.800 setgray +gsave +179.8 646.38175 m +268.971875 646.38175 l +270.305208 646.38175 270.971875 647.048417 270.971875 648.38175 c +270.971875 677.288 l +270.971875 678.621333 270.305208 679.288 268.971875 679.288 c +179.8 679.288 l +178.466667 679.288 177.8 678.621333 177.8 677.288 c +177.8 648.38175 l +177.8 647.048417 178.466667 646.38175 179.8 646.38175 c +cl +gsave +0.933 setgray +fill +grestore +stroke +grestore +1.000 setlinewidth +1 setlinejoin +[] 0 setdash +0.204 0.541 0.741 setrgbcolor +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -1.5 m +0.397805 -1.5 0.77937 -1.341951 1.06066 -1.06066 c +1.341951 -0.77937 1.5 -0.397805 1.5 0 c +1.5 0.397805 1.341951 0.77937 1.06066 1.06066 c +0.77937 1.341951 0.397805 1.5 0 1.5 c +-0.397805 1.5 -0.77937 1.341951 -1.06066 1.06066 c +-1.341951 0.77937 -1.5 0.397805 -1.5 0 c +-1.5 -0.397805 -1.341951 -0.77937 -1.06066 -1.06066 c +-0.77937 -1.341951 -0.397805 -1.5 0 -1.5 c +cl + +gsave +0.204 0.541 0.741 setrgbcolor +fill +grestore +stroke +grestore +} bind def +191.8 671.194 o +grestore +0.000 setgray +gsave +209.800000 667.694250 translate +0.000000 rotate +0.000000 0.000000 m /p glyphshow +6.347656 0.000000 m /i glyphshow +9.125977 0.000000 m /t glyphshow +13.046875 0.000000 m /underscore glyphshow +18.046875 0.000000 m /i glyphshow +20.825195 0.000000 m /four glyphshow +27.187500 0.000000 m /eight glyphshow +grestore +0.651 0.024 0.157 setrgbcolor +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -1.5 m +0.397805 -1.5 0.77937 -1.341951 1.06066 -1.06066 c +1.341951 -0.77937 1.5 -0.397805 1.5 0 c +1.5 0.397805 1.341951 0.77937 1.06066 1.06066 c +0.77937 1.341951 0.397805 1.5 0 1.5 c +-0.397805 1.5 -0.77937 1.341951 -1.06066 1.06066 c +-1.341951 0.77937 -1.5 0.397805 -1.5 0 c +-1.5 -0.397805 -1.341951 -0.77937 -1.06066 -1.06066 c +-0.77937 -1.341951 -0.397805 -1.5 0 -1.5 c +cl + +gsave +0.651 0.024 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +191.8 656.241 o +grestore +0.000 setgray +gsave +209.800000 652.741125 translate +0.000000 rotate +0.000000 0.000000 m /a glyphshow +6.127930 0.000000 m /c glyphshow +11.625977 0.000000 m /t glyphshow +15.546875 0.000000 m /underscore glyphshow +20.546875 0.000000 m /c glyphshow +26.044922 0.000000 m /u glyphshow +32.382812 0.000000 m /r glyphshow +36.494141 0.000000 m /r glyphshow +40.605469 0.000000 m /underscore glyphshow +45.605469 0.000000 m /p glyphshow +51.953125 0.000000 m /s glyphshow +grestore + +end +showpage diff --git a/data/ea_control_direct.py b/data/ea_control_direct.py deleted file mode 100644 index 038c770..0000000 --- a/data/ea_control_direct.py +++ /dev/null @@ -1,101 +0,0 @@ -from labcontrol.ea import EA_PS8080 -from labcontrol.ea import EA_EL9080 -from labcontrol.ea import EA_interface -import time - -# Setup -maxpower = 2000 -psvolt = 48.0 -steps = 40 -settletime = 10 -measures = 4 -measuretime = .5 - -# defines -stepwidth = maxpower/psvolt/steps -starttime = time.time() - -def identify(devlist): - outdict = {} - for dev in devlist: - devid = EA_interface(dev).write(12, 0, []) - if "PS" in devid[1]: - devtype = "ps" - else: - devtype = "el" - - outdict[devtype] = {"id":devid[1][:-1], "address":dev, "type":devtype} - - return outdict - -def init(tree): - for dev, dat in tree.iteritems(): - if dat['type'] == "el": - devobj = EA_EL9080(tree[dev]['address']) - else: - devobj = EA_PS8080(tree[dev]['address']) - - #devobj.interface.debug_output = False - devobj.remote(True) - time.sleep(1) - - if dat['type'] == "el": - devobj.set_current(0) - devobj.enable(True) - else: - devobj.set_current(maxpower/psvolt) - devobj.set_voltage(48) - devobj.output(True) - - tree[dev]['dev'] = devobj - -def deinit(tree): - for dev, dat in tree.iteritems(): - if tree[dev]['type'] == "el": - tree[dev]['dev'].enable(False) - else: - tree[dev]['dev'].output(False) - tree[dev]['dev'].remote(False) - tree[dev]['dev'].close() - -def measurement(devicetree): - print("starting Measurement (approx {}s)".format(steps*(settletime + measures*measuretime))) - log = "time,set_curr,set_volt,act_curr_ps,act_curr_el\n" - devicetree['ps']['dev'].set_current(stepwidth*steps) - for i in range(1, steps): - steppos = i*stepwidth - try: - devicetree['el']['dev'].set_current(steppos) - time.sleep(settletime) - act_el = 0 - act_ps = 0 - for m in range(0, measures): - act_el += devicetree['el']['dev'].get_actual_values()['i'] - act_ps += devicetree['ps']['dev'].get_actual_values()['i'] - time.sleep(measuretime) - - act_ps = act_ps/measures - act_el = act_el/measures - log_new= "{:.3f},{:.3f},{:.1f},{:.3f},{:.3f}\n".format( - time.time()-starttime, - steppos, - 48.0, - act_ps, - act_el - ) - log += log_new - except Exception as e: - print type(e) - print e - - print(log) - with open('./log.csv', 'w') as f: - f.write(log) - -if __name__ == "__main__": - devicetree = identify(["/dev/ttyUSB0","/dev/ttyUSB1"]) - print(devicetree) - init(devicetree) - init(devicetree) - measurement(devicetree) - deinit(devicetree) diff --git a/data/general_eacontrol.py b/data/general_eacontrol.py new file mode 100644 index 0000000..a8ae3ab --- /dev/null +++ b/data/general_eacontrol.py @@ -0,0 +1,150 @@ +from labcontrol.ea import EA_PS8080,EA_EL9080,EA_interface +from labcontrol.meter import MeterConfig,K2100Multimeter +import time +import i2c.i2c2 as pit +import signal + +# Setup +maxpower = 1000 #maximum powerdraw for complete system in W +psvolt = [48.0] #supplied voltage in V +steps = 20 # number of steps to measure between 0 and 100% power +settletime = 8. # time to wait between setting current to draw and measurements in s +measures = 8 # number of measurements per setting +measuretime = .6 # time between measures in s + +# defines +# stepwidth = maxpower/psvolt/steps +starttime = time.time() + +def identify(devlist, mm=False): + outdict = {} + for dev in devlist: + devid = EA_interface(dev).write(12, 0, []) + if "PS" in devid[1]: + devtype = "ps" + else: + devtype = "el" + + outdict[devtype] = {"id":devid[1][:-1], "address":dev, "type":devtype} + + if mm == True: + outdict['mm']['dev'] = K2100Multimeter(mm_config) + outdict['mm']['type'] = "mm" + outdict['mm']['config'] = MeterConfig() + + return outdict + +def init(tree): + for dev, dat in tree.iteritems(): + if dat['type'] == "el": + devobj = EA_EL9080(tree[dev]['address']) + devobj.remote(True) + elif dat['type'] == "ps": + devobj = EA_PS8080(tree[dev]['address']) + devobj.remote(True) + elif dat['type'] == "mm": + devobj = K2100Multimeter(tree[dev]['config']) + + devobj.interface.debug_output = False + + tree[dev]['dev'] = devobj + + +def setRanges(tree, volts): + for dev, dat in tree.iteritems(): + if dat['type'] == "el": + dat['dev'].set_current(0) + dat['dev'].enable(True) + elif dat['type'] == "ps": + dat['dev'].set_current(maxpower/volts+1) + dat['dev'].set_power(maxpower+1) + dat['dev'].set_voltage(volts) + dat['dev'].output(True) + + +def deinit(signum, frame): + for dev, dat in devicetree.iteritems(): + if devicetree[dev]['type'] == "el": + devicetree[dev]['dev'].enable(False) + #else: + #tree[dev]['dev'].output(False) + devicetree[dev]['dev'].remote(False) + devicetree[dev]['dev'].close() + + #signal.signal(signal.SIGINT, original_sigint) + +def measurement(devicetree, volts): + + devicetree['ps']['dev'].set_current(maxpower/volts*1.1) + for i in range(1, steps+1): + steppercent = 100 * i/float(steps) + adcdata = {'T':0, 'V48':0, 'I48':0} + try: + act_el = devicetree['el']['dev'].get_actual_values() + act_ps = devicetree['ps']['dev'].get_actual_values() + devicetree['el']['dev'].set_current(steppercent /100 *maxpower/act_el['v']) + time.sleep(settletime) + act_el['i'] = 0 + act_ps['i'] = 0 + for m in range(0, measures): + act_el['i'] += devicetree['el']['dev'].get_actual_values()['i'] + act_ps['i'] += devicetree['ps']['dev'].get_actual_values()['i'] + #act_mm += devicetree['mm']['dev'].get_voltage() + adc = pit.rxtx_em() + for k in adcdata: + adcdata[k] += adc[k] + + time.sleep(measuretime) + + act_ps['i'] /= measures + act_el['i'] /= measures + for k in adcdata: + adcdata[k] /= measures + + + #$act_mm = act_mm/measures + log_new= "{:.2f},{:d},{:.3f},{:.3f},{:.3f},{:.3f},{:.3f},{:.3f},{:.3f},{:.3f},{:.3f}\n".format( + time.time()-starttime, + int(steppercent), + act_ps['v'], + act_ps['i'], + act_ps['p'], + act_el['v'], + act_el['i'], + act_el['p'], + adcdata['T'], + adcdata['V48'], + adcdata['I48'] + ) + log += log_new + except Exception as e: + print type(e) + print e + + print(log) + +if __name__ == "__main__": + #original_sigint = signal.getsignal(signal.SIGINT) + #signal.signal(signal.SIGINT, deinit) + devicetree = identify(["/dev/ttyUSB0","/dev/ttyUSB1"]) + + # manually start measurement by enabling 8V OUT + init(devicetree) + setRanges(devicetree, 48.0) + print("waiting for enable") + print(devicetree) + while (devicetree['el']['dev'].get_actual_values()['v'] < 5): + time.sleep(measuretime) + + # prep log + time.sleep(settletime) + print("starting Measurement (approx {}s)".format(steps*(settletime + measures*measuretime)*len(psvolt))) + log = "time,perc_power,act_volt_ps,act_curr_ps,act_pow_ps,act_volt_el,act_curr_el,act_pow_el,pit_t,pit_v48,pit_i48\n" + for volts in psvolt: + #init(devicetree, volts) + #init(devicetree, volts) + setRanges(devicetree, volts) + measurement(devicetree, volts) + with open('./log.csv', 'w') as f: + f.write(log) + deinit(devicetree) diff --git a/data/log_2kw_direct.csv b/data/log_2kw_direct.csv deleted file mode 100644 index 9082c19..0000000 --- a/data/log_2kw_direct.csv +++ /dev/null @@ -1,40 +0,0 @@ -time,set_curr,set_volt,act_curr_ps,act_curr_el -16.357,1.042,48.0,0.870,1.047 -28.546,2.083,48.0,1.839,2.031 -40.752,3.125,48.0,2.835,3.031 -52.939,4.167,48.0,3.939,4.141 -65.100,5.208,48.0,4.965,5.172 -77.241,6.250,48.0,6.054,6.250 -89.367,7.292,48.0,7.062,7.258 -101.493,8.333,48.0,8.149,8.352 -113.651,9.375,48.0,9.159,9.359 -125.777,10.417,48.0,10.262,10.461 -137.903,11.458,48.0,11.272,11.477 -150.061,12.500,48.0,12.248,12.453 -162.235,13.542,48.0,13.335,13.531 -174.425,14.583,48.0,14.325,14.531 -186.615,15.625,48.0,15.408,15.609 -198.805,16.667,48.0,16.385,16.625 -210.979,17.708,48.0,17.470,17.703 -223.169,18.750,48.0,18.464,18.672 -235.342,19.792,48.0,19.433,19.656 -247.532,20.833,48.0,20.515,20.734 -259.738,21.875,48.0,21.505,21.734 -271.944,22.917,48.0,22.586,22.820 -284.150,23.958,48.0,23.561,23.797 -296.355,25.000,48.0,24.697,24.938 -308.546,26.042,48.0,25.685,25.906 -320.736,27.083,48.0,26.790,27.016 -332.925,28.125,48.0,27.771,28.000 -345.115,29.167,48.0,28.752,28.977 -357.289,30.208,48.0,29.832,30.078 -369.479,31.250,48.0,30.844,31.078 -381.670,32.292,48.0,31.934,32.156 -393.859,33.333,48.0,32.917,33.164 -406.049,34.375,48.0,34.020,34.250 -418.223,35.417,48.0,35.041,35.281 -430.413,36.458,48.0,36.191,36.422 -442.602,37.500,48.0,37.209,37.438 -454.793,38.542,48.0,38.183,38.422 -466.983,39.583,48.0,39.244,39.492 -479.172,40.625,48.0,40.246,40.500 diff --git a/data/processing.py b/data/processing.py deleted file mode 100644 index 399b93f..0000000 --- a/data/processing.py +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/python3 - -import numpy as np -import pandas as pd -import matplotlib.pyplot as plt -plt.ioff() -plt.style.use('bmh') - -data = pd.read_csv("./log_2kw_direct.csv") - -print(data) - -#plt.errorbar( -# data['time'], -# data['act_curr_ps'], -# yerr=data['act_curr_ps']*.002, -# label="Spannungsquelle Ausgang", -# fmt='.' -#) -#plt.errorbar( -# data['time'], -# data['act_curr_el']-.125, -# label="Elektronische Last Eingang", -# fmt='.' -#) -data['act_curr_el'] = data['act_curr_el']-.125 -meandist = np.mean(data['act_curr_el'] - data['act_curr_ps']) -plt.bar(data['set_curr'], (data['act_curr_el']-data['act_curr_ps']-meandist), .2, aa=True) - -data['nom_max_delta_i'] = np.sqrt(2*(data['set_curr']*.002)**2) -plt.errorbar( - data['set_curr'], - data['nom_max_delta_i'], - fmt='.' -) -plt.errorbar( - data['set_curr'], - -data['nom_max_delta_i'], - fmt='.' -) - -plt.ylabel('$\Delta$I/A') -plt.xlabel('I$_{set}$/A') -plt.legend() -plt.savefig("2kw_direct.png") diff --git a/data/processing_adccalib.py b/data/processing_adccalib.py new file mode 100644 index 0000000..6f2ef2b --- /dev/null +++ b/data/processing_adccalib.py @@ -0,0 +1,44 @@ +#! /usr/bin/python3 + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +plt.ioff() +plt.style.use('bmh') +plt.figure(figsize=(19.2,10.8)) + +data = pd.read_csv("./log.csv") + +print(data) + +#plt.errorbar( +# data['time'], +# data['act_curr_ps'], +# yerr=data['act_curr_ps']*.002, +# label="Spannungsquelle Ausgang", +# fmt='.' +#) +#plt.errorbar( +# data['time'], +# data['act_curr_el']-.125, +# label="Elektronische Last Eingang", +# fmt='.' +#) + +plt.errorbar( + data['perc_power'], + data['pit_i48'], + fmt='.' +) +plt.errorbar( + data['perc_power'], + data['act_curr_ps'], + fmt='.' +) + +#plt.ylabel('$\Delta$I/A') +#plt.xlabel('I$_{set}$/A') +plt.legend() +#-plt.savefig("2kw_direct.png") + +plt.savefig("adccalib.eps", format='eps', dpi=1000) diff --git a/data/raspi-i2c/i2c b/data/raspi-i2c/i2c new file mode 120000 index 0000000..d6783d7 --- /dev/null +++ b/data/raspi-i2c/i2c @@ -0,0 +1 @@ +/remote_media/m03/home/pi/i2c \ No newline at end of file diff --git a/data/raspi-i2c/i2c2.py b/data/raspi-i2c/i2c2.py new file mode 120000 index 0000000..4e60438 --- /dev/null +++ b/data/raspi-i2c/i2c2.py @@ -0,0 +1 @@ +/remote_media/m03/home/pi/i2c/i2c2.py \ No newline at end of file diff --git a/data/sshfs.sh b/data/sshfs.sh new file mode 100755 index 0000000..e427a2c --- /dev/null +++ b/data/sshfs.sh @@ -0,0 +1 @@ +sshfs hbpc9:. afshome