Adds algorithm to Well class. Almost working

Position returned is too large by a factor of ~2
This commit is contained in:
Patrick McDonagh
2017-07-19 17:44:35 -05:00
parent 8726d73923
commit 59909df50e
9 changed files with 1400 additions and 743 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.m~

View File

@@ -47,7 +47,9 @@ classdef AnalogInput < handle
end
if (obj.badReads > 10)
pause(10);
"Bad Reads"
obj.badReads
pause(0.010);
end
end
@@ -62,13 +64,21 @@ classdef AnalogInput < handle
methods(Static)
function test
pi = raspi('10.0.0.104', 'pi', 'HenryPump@1903');
loops = 25;
pi = raspi('10.0.0.106', 'pi', 'HenryPump@1903');
mux = MuxSetup(pi);
anInput1 = AnalogInput(mux, 1, 0.0, 65535.0, 0.0, 100.0);
anInput2 = AnalogInput(mux, 2, 0.0, 65535.0, 0.0, 100.0);
anInput1.read()
anInput2.read()
ai1 = zeros(1, loops, 'double');
ai2 = zeros(1, loops, 'double');
for i = 1:loops
i
ai1(i) = anInput1.read();
ai2(i) = anInput2.read();
end
plot(ai1,'DisplayName','ai1');hold on;plot(ai2,'DisplayName','ai2');hold off;
end
end

17
Card.m
View File

@@ -4,10 +4,10 @@ classdef Card < handle
strokeNumber;
strokeStartTime;
surfacePosition={};
surfaceLoad={};
downholePosition={};
downholeLoad={};
surfacePosition=zeros(1, 1500, 'double');
surfaceLoad=zeros(1, 1500, 'double');
downholePosition=zeros(1, 1500, 'double');
downholeLoad=zeros(1, 1500, 'double');
surfacePositionMax=LPPair(0,0);
surfacePositionMin=LPPair(0,0);
@@ -54,10 +54,11 @@ classdef Card < handle
end
function push(obj, s_pos, s_load, d_pos, d_load)
obj.surfacePosition = [obj.surfacePosition s_pos];
obj.surfaceLoad = [obj.surfaceLoad s_load];
obj.downholePosition = [obj.downholePosition d_pos];
obj.downholeLoad = [obj.downholeLoad d_load];
obj.numPointsUsed = obj.numPointsUsed + 1;
obj.surfacePosition(obj.numPointsUsed) = s_pos;
obj.surfaceLoad(obj.numPointsUsed) = s_load;
obj.downholePosition(obj.numPointsUsed) = d_pos;
obj.downholeLoad(obj.numPointsUsed) = d_load;
end
function calcStrokeData(obj, numSlices, fluidGradient, rodDepth, ...

View File

@@ -1,37 +0,0 @@
classdef Database < handle
properties
hostname;
username;
password;
database='poc';
port=27017;
mongo;
end
methods
function obj = Database(hostname, username, password)
javaaddpath 'mongo-java-driver-3.4.2.jar';
import com.mongodb.*;
obj.hostname = hostname;
obj.username = username;
obj.password = password;
credential = MongoCredential.createCredential(obj.username, obj.database, obj.password);
obj.mongo = MongoClient(obj.hostname, obj.port);
% obj.mongodbconn = mongodatabase(hostname, obj.port, obj.database, 'UserName', username, 'Password', password); %#ok<*NOPTS>
end
end
methods(Static)
function test
db = Database('localhost', 'poc_java', 'HenryPump@1903');
database = db.mongo.getDatabase(db.database);
database.auth(db.username, db.password);
cards = database.getCollection('cards');
cards.count()
end
end
end

View File

@@ -1,676 +0,0 @@
0,9776.026
0.005469917,9889.581
0.013863833,10032.636
0.025325333,10243.539
0.040032,10488.118
0.058248417,10661.443
0.07980025,10718.797
0.104515583,10687.978
0.132326083,10620.406
0.16308075,10498.72
0.195990667,10401.043
0.232066417,10441.696
0.271218583,10526.409
0.313498083,10628.152
0.359020417,10737.421
0.407674083,10845.921
0.4593205,10926.294
0.51380025,11047.595
0.571258167,11276.132
0.63128025,11503.57
0.693512167,11739.085
0.758432417,11992.673
0.826354917,12256.92
0.89726725,12511.497
0.9712875,12731.464
1.048186583,12876.278
1.127629,12925.886
1.20959525,12924.183
1.293956833,12923.688
1.380850583,13030.321
1.470691583,13306.049
1.562806,13623.199
1.656998333,13950.403
1.753329083,14278.376
1.852025333,14574.101
1.952786833,14803.847
2.055333167,15081.718
2.159586667,15410.35
2.265318833,15706.46
2.3733975,16035.092
2.484817583,16412.453
2.59948025,16801.681
2.71644175,17036.536
2.834529167,16972.534
2.95454075,16866.287
3.0765375,16790.748
3.201042417,16735.592
3.328021917,16637.255
3.457062,16447.942
3.587754333,16175.73
3.7197685,15843.802
3.853573333,15517.477
3.989576583,15256.582
4.127587917,15145.994
4.26697625,15090.343
4.407120917,14970.086
4.548720667,14891.362
4.692186667,14842.962
4.837357167,14740.34
4.98334575,14499.057
5.129595167,14326.721
5.27664525,14369.901
5.424664833,14485.104
5.573320667,14591.681
5.722529083,14679.086
5.8719985,14766.051
6.021790083,14919.434
6.171415167,15126.162
6.321026,15310.2
6.470778417,15376.069
6.62113375,15440.62
6.771690917,15476
6.92142425,15446.828
7.070682583,15428.04
7.219948833,15377.058
7.369218333,15312.727
7.517862583,15275.865
7.665456333,15279.6
7.81258175,15273.283
7.95967025,15173.133
8.106388583,15022.496
8.251937833,14858.125
8.39614225,14745.339
8.53943,14636.839
8.681693667,14430.496
8.822886833,14220.802
8.96252875,14055.937
9.100747583,13982.486
9.237511083,13908.102
9.372204667,13851.627
9.504688833,13881.018
9.634593417,13925.517
9.762460917,14039.895
9.88810475,14149.439
10.01133025,14239.756
10.13194283,14293.484
10.24966075,14316.173
10.36420408,14430.991
10.47555567,14679.855
10.58395958,14924.489
10.68960167,15012.168
10.79186508,15026.451
10.89072792,15122.316
10.98580667,15239.826
11.07743458,15393.979
11.16544292,15480.175
11.24972158,15551.648
11.33033592,15622.736
11.4071015,15593.4
11.48018525,15485.943
11.54942825,15270.646
11.61424633,14921.577
11.674432,14544.71
11.72986992,14224.263
11.78069242,13971.114
11.82665033,13684.399
11.86771467,13375.159
11.90365167,13002.742
11.93385692,12640.544
11.95854375,12384.043
11.97725417,12122.214
11.99019917,11907.961
11.99821617,11556.585
12,10818.453
11.99437833,10218.872
11.98168992,9974.513
11.96236683,9966.822
11.93623683,10046.975
11.90283792,10210.082
11.86283425,10566.073
11.81606508,10971.727
11.76242917,11263.277
11.70194025,11417.265
11.635014,11506.812
11.56213983,11355.131
11.48255125,10783.129
11.39636908,9951.934
11.30301192,9180.95
11.2028855,8568.624
11.09612617,8027.276
10.98281183,7570.531
10.86439075,7120.324
10.74053733,6429.602
10.61033417,5731.465
10.47414308,5262.799
10.331585,4993.608
10.18328317,4887.8
10.02944475,4866.045
9.870938667,4903.347
9.708080667,4908.126
9.541035917,4860.331
9.370086833,4740.019
9.194264167,4623.608
9.011303833,4806.163
8.823120833,5495.896
8.630679917,6335.056
8.434706083,7096.646
8.235212917,7736.001
8.031737583,8240.211
7.823389583,8565.273
7.609442167,8874.732
7.394066333,9242.04
7.18177575,9725.045
6.971143917,10100.648
6.76005725,10223.652
6.547905917,10202.061
6.335514583,10102.626
6.1247145,10005.552
5.915829583,9948.583
5.70865225,9976.106
5.502857083,10010.661
5.29959525,9951.22
5.0998445,9703.729
4.90439275,9250.665
4.712906583,8789.8
4.525125833,8425.513
4.34108925,8209.502
4.161316917,8221.533
3.985825667,8288.006
3.81218425,8331.242
3.639778833,8203.953
3.47038125,8070.566
3.30502375,8083.531
3.144516,8198.954
2.9875085,8453.806
2.833456917,8828.805
2.683372083,9145.351
2.538298167,9273.079
2.397747333,9299.449
2.261532,9382.898
2.128944,9634.838
1.9997345,9987.423
1.874468417,10264.305
1.754004833,10515.696
1.638998417,10693.087
1.529095667,10687.429
1.423291583,10592.882
1.320598583,10505.588
1.221731833,10531.792
1.12771575,10595.739
1.038479333,10568.875
0.95374375,10443.948
0.873229167,10212.17
0.796579167,9881.834
0.723449833,9552.763
0.653880417,9342.464
0.587873833,9236.052
0.525776833,9193.421
0.467945417,9160.623
0.413685,9046.41
0.362936583,8910.99
0.315684333,8743.488
0.271219,8566.646
0.230005083,8550.44
0.1921475,8679.871
0.158036583,8881.379
0.127829583,9023.831
0.1008755,9046.739
0.076851667,9062.177
0.055667083,9212.429
0.037832833,9532.985
0.0232665,9776.026
0.012359417,9889.581
0.005017167,10032.636
0.000966833,10243.539
0,10488.118
0.005469917,10661.443
0.013863833,10718.797
0.025325333,10687.978
0.040032,10620.406
0.058248417,10498.72
0.07980025,10401.043
0.104515583,10441.696
0.132326083,10526.409
0.16308075,10628.152
0.195990667,10737.421
0.232066417,10845.921
0.271218583,10926.294
0.313498083,11047.595
0.359020417,11276.132
0.407674083,11503.57
0.4593205,11739.085
0.51380025,11992.673
0.571258167,12256.92
0.63128025,12511.497
0.693512167,12731.464
0.758432417,12876.278
0.826354917,12925.886
0.89726725,12924.183
0.9712875,12923.688
1.048186583,13030.321
1.127629,13306.049
1.20959525,13623.199
1.293956833,13950.403
1.380850583,14278.376
1.470691583,14574.101
1.562806,14803.847
1.656998333,15081.718
1.753329083,15410.35
1.852025333,15706.46
1.952786833,16035.092
2.055333167,16412.453
2.159586667,16801.681
2.265318833,17036.536
2.3733975,16972.534
2.484817583,16866.287
2.59948025,16790.748
2.71644175,16735.592
2.834529167,16637.255
2.95454075,16447.942
3.0765375,16175.73
3.201042417,15843.802
3.328021917,15517.477
3.457062,15256.582
3.587754333,15145.994
3.7197685,15090.343
3.853573333,14970.086
3.989576583,14891.362
4.127587917,14842.962
4.26697625,14740.34
4.407120917,14499.057
4.548720667,14326.721
4.692186667,14369.901
4.837357167,14485.104
4.98334575,14591.681
5.129595167,14679.086
5.27664525,14766.051
5.424664833,14919.434
5.573320667,15126.162
5.722529083,15310.2
5.8719985,15376.069
6.021790083,15440.62
6.171415167,15476
6.321026,15446.828
6.470778417,15428.04
6.62113375,15377.058
6.771690917,15312.727
6.92142425,15275.865
7.070682583,15279.6
7.219948833,15273.283
7.369218333,15173.133
7.517862583,15022.496
7.665456333,14858.125
7.81258175,14745.339
7.95967025,14636.839
8.106388583,14430.496
8.251937833,14220.802
8.39614225,14055.937
8.53943,13982.486
8.681693667,13908.102
8.822886833,13851.627
8.96252875,13881.018
9.100747583,13925.517
9.237511083,14039.895
9.372204667,14149.439
9.504688833,14239.756
9.634593417,14293.484
9.762460917,14316.173
9.88810475,14430.991
10.01133025,14679.855
10.13194283,14924.489
10.24966075,15012.168
10.36420408,15026.451
10.47555567,15122.316
10.58395958,15239.826
10.68960167,15393.979
10.79186508,15480.175
10.89072792,15551.648
10.98580667,15622.736
11.07743458,15593.4
11.16544292,15485.943
11.24972158,15270.646
11.33033592,14921.577
11.4071015,14544.71
11.48018525,14224.263
11.54942825,13971.114
11.61424633,13684.399
11.674432,13375.159
11.72986992,13002.742
11.78069242,12640.544
11.82665033,12384.043
11.86771467,12122.214
11.90365167,11907.961
11.93385692,11556.585
11.95854375,10818.453
11.97725417,10218.872
11.99019917,9974.513
11.99821617,9966.822
12,10046.975
11.99437833,10210.082
11.98168992,10566.073
11.96236683,10971.727
11.93623683,11263.277
11.90283792,11417.265
11.86283425,11506.812
11.81606508,11355.131
11.76242917,10783.129
11.70194025,9951.934
11.635014,9180.95
11.56213983,8568.624
11.48255125,8027.276
11.39636908,7570.531
11.30301192,7120.324
11.2028855,6429.602
11.09612617,5731.465
10.98281183,5262.799
10.86439075,4993.608
10.74053733,4887.8
10.61033417,4866.045
10.47414308,4903.347
10.331585,4908.126
10.18328317,4860.331
10.02944475,4740.019
9.870938667,4623.608
9.708080667,4806.163
9.541035917,5495.896
9.370086833,6335.056
9.194264167,7096.646
9.011303833,7736.001
8.823120833,8240.211
8.630679917,8565.273
8.434706083,8874.732
8.235212917,9242.04
8.031737583,9725.045
7.823389583,10100.648
7.609442167,10223.652
7.394066333,10202.061
7.18177575,10102.626
6.971143917,10005.552
6.76005725,9948.583
6.547905917,9976.106
6.335514583,10010.661
6.1247145,9951.22
5.915829583,9703.729
5.70865225,9250.665
5.502857083,8789.8
5.29959525,8425.513
5.0998445,8209.502
4.90439275,8221.533
4.712906583,8288.006
4.525125833,8331.242
4.34108925,8203.953
4.161316917,8070.566
3.985825667,8083.531
3.81218425,8198.954
3.639778833,8453.806
3.47038125,8828.805
3.30502375,9145.351
3.144516,9273.079
2.9875085,9299.449
2.833456917,9382.898
2.683372083,9634.838
2.538298167,9987.423
2.397747333,10264.305
2.261532,10515.696
2.128944,10693.087
1.9997345,10687.429
1.874468417,10592.882
1.754004833,10505.588
1.638998417,10531.792
1.529095667,10595.739
1.423291583,10568.875
1.320598583,10443.948
1.221731833,10212.17
1.12771575,9881.834
1.038479333,9552.763
0.95374375,9342.464
0.873229167,9236.052
0.796579167,9193.421
0.723449833,9160.623
0.653880417,9046.41
0.587873833,8910.99
0.525776833,8743.488
0.467945417,8566.646
0.413685,8550.44
0.362936583,8679.871
0.315684333,8881.379
0.271219,9023.831
0.230005083,9046.739
0.1921475,9062.177
0.158036583,9212.429
0.127829583,9532.985
0.1008755,9862.826
0.076851667,10190.689
0.055667083,10424.885
0.037832833,10515.421
0.0232665,9776.026
0.012359417,9889.581
0.005017167,10032.636
0.000966833,10243.539
0,10488.118
0.005469917,10661.443
0.013863833,10718.797
0.025325333,10687.978
0.040032,10620.406
0.058248417,10498.72
0.07980025,10401.043
0.104515583,10441.696
0.132326083,10526.409
0.16308075,10628.152
0.195990667,10737.421
0.232066417,10845.921
0.271218583,10926.294
0.313498083,11047.595
0.359020417,11276.132
0.407674083,11503.57
0.4593205,11739.085
0.51380025,11992.673
0.571258167,12256.92
0.63128025,12511.497
0.693512167,12731.464
0.758432417,12876.278
0.826354917,12925.886
0.89726725,12924.183
0.9712875,12923.688
1.048186583,13030.321
1.127629,13306.049
1.20959525,13623.199
1.293956833,13950.403
1.380850583,14278.376
1.470691583,14574.101
1.562806,14803.847
1.656998333,15081.718
1.753329083,15410.35
1.852025333,15706.46
1.952786833,16035.092
2.055333167,16412.453
2.159586667,16801.681
2.265318833,17036.536
2.3733975,16972.534
2.484817583,16866.287
2.59948025,16790.748
2.71644175,16735.592
2.834529167,16637.255
2.95454075,16447.942
3.0765375,16175.73
3.201042417,15843.802
3.328021917,15517.477
3.457062,15256.582
3.587754333,15145.994
3.7197685,15090.343
3.853573333,14970.086
3.989576583,14891.362
4.127587917,14842.962
4.26697625,14740.34
4.407120917,14499.057
4.548720667,14326.721
4.692186667,14369.901
4.837357167,14485.104
4.98334575,14591.681
5.129595167,14679.086
5.27664525,14766.051
5.424664833,14919.434
5.573320667,15126.162
5.722529083,15310.2
5.8719985,15376.069
6.021790083,15440.62
6.171415167,15476
6.321026,15446.828
6.470778417,15428.04
6.62113375,15377.058
6.771690917,15312.727
6.92142425,15275.865
7.070682583,15279.6
7.219948833,15273.283
7.369218333,15173.133
7.517862583,15022.496
7.665456333,14858.125
7.81258175,14745.339
7.95967025,14636.839
8.106388583,14430.496
8.251937833,14220.802
8.39614225,14055.937
8.53943,13982.486
8.681693667,13908.102
8.822886833,13851.627
8.96252875,13881.018
9.100747583,13925.517
9.237511083,14039.895
9.372204667,14149.439
9.504688833,14239.756
9.634593417,14293.484
9.762460917,14316.173
9.88810475,14430.991
10.01133025,14679.855
10.13194283,14924.489
10.24966075,15012.168
10.36420408,15026.451
10.47555567,15122.316
10.58395958,15239.826
10.68960167,15393.979
10.79186508,15480.175
10.89072792,15551.648
10.98580667,15622.736
11.07743458,15593.4
11.16544292,15485.943
11.24972158,15270.646
11.33033592,14921.577
11.4071015,14544.71
11.48018525,14224.263
11.54942825,13971.114
11.61424633,13684.399
11.674432,13375.159
11.72986992,13002.742
11.78069242,12640.544
11.82665033,12384.043
11.86771467,12122.214
11.90365167,11907.961
11.93385692,11556.585
11.95854375,10818.453
11.97725417,10218.872
11.99019917,9974.513
11.99821617,9966.822
12,10046.975
11.99437833,10210.082
11.98168992,10566.073
11.96236683,10971.727
11.93623683,11263.277
11.90283792,11417.265
11.86283425,11506.812
11.81606508,11355.131
11.76242917,10783.129
11.70194025,9951.934
11.635014,9180.95
11.56213983,8568.624
11.48255125,8027.276
11.39636908,7570.531
11.30301192,7120.324
11.2028855,6429.602
11.09612617,5731.465
10.98281183,5262.799
10.86439075,4993.608
10.74053733,4887.8
10.61033417,4866.045
10.47414308,4903.347
10.331585,4908.126
10.18328317,4860.331
10.02944475,4740.019
9.870938667,4623.608
9.708080667,4806.163
9.541035917,5495.896
9.370086833,6335.056
9.194264167,7096.646
9.011303833,7736.001
8.823120833,8240.211
8.630679917,8565.273
8.434706083,8874.732
8.235212917,9242.04
8.031737583,9725.045
7.823389583,10100.648
7.609442167,10223.652
7.394066333,10202.061
7.18177575,10102.626
6.971143917,10005.552
6.76005725,9948.583
6.547905917,9976.106
6.335514583,10010.661
6.1247145,9951.22
5.915829583,9703.729
5.70865225,9250.665
5.502857083,8789.8
5.29959525,8425.513
5.0998445,8209.502
4.90439275,8221.533
4.712906583,8288.006
4.525125833,8331.242
4.34108925,8203.953
4.161316917,8070.566
3.985825667,8083.531
3.81218425,8198.954
3.639778833,8453.806
3.47038125,8828.805
3.30502375,9145.351
3.144516,9273.079
2.9875085,9299.449
2.833456917,9382.898
2.683372083,9634.838
2.538298167,9987.423
2.397747333,10264.305
2.261532,10515.696
2.128944,10693.087
1.9997345,10687.429
1.874468417,10592.882
1.754004833,10505.588
1.638998417,10531.792
1.529095667,10595.739
1.423291583,10568.875
1.320598583,10443.948
1.221731833,10212.17
1.12771575,9881.834
1.038479333,9552.763
0.95374375,9342.464
0.873229167,9236.052
0.796579167,9193.421
0.723449833,9160.623
0.653880417,9046.41
0.587873833,8910.99
0.525776833,8743.488
0.467945417,8566.646
0.413685,8550.44
0.362936583,8679.871
0.315684333,8881.379
0.271219,9023.831
0.230005083,9046.739
0.1921475,9062.177
0.158036583,9212.429
0.127829583,9532.985
0.1008755,9862.826
0.076851667,10190.689
0.055667083,10424.885
0.037832833,10515.421
0.0232665,10534.1
0.012359417,10661.443
0.005017167,10718.797
0.000966833,10687.978
0,10620.406
1 0 9776.026
2 0.005469917 9889.581
3 0.013863833 10032.636
4 0.025325333 10243.539
5 0.040032 10488.118
6 0.058248417 10661.443
7 0.07980025 10718.797
8 0.104515583 10687.978
9 0.132326083 10620.406
10 0.16308075 10498.72
11 0.195990667 10401.043
12 0.232066417 10441.696
13 0.271218583 10526.409
14 0.313498083 10628.152
15 0.359020417 10737.421
16 0.407674083 10845.921
17 0.4593205 10926.294
18 0.51380025 11047.595
19 0.571258167 11276.132
20 0.63128025 11503.57
21 0.693512167 11739.085
22 0.758432417 11992.673
23 0.826354917 12256.92
24 0.89726725 12511.497
25 0.9712875 12731.464
26 1.048186583 12876.278
27 1.127629 12925.886
28 1.20959525 12924.183
29 1.293956833 12923.688
30 1.380850583 13030.321
31 1.470691583 13306.049
32 1.562806 13623.199
33 1.656998333 13950.403
34 1.753329083 14278.376
35 1.852025333 14574.101
36 1.952786833 14803.847
37 2.055333167 15081.718
38 2.159586667 15410.35
39 2.265318833 15706.46
40 2.3733975 16035.092
41 2.484817583 16412.453
42 2.59948025 16801.681
43 2.71644175 17036.536
44 2.834529167 16972.534
45 2.95454075 16866.287
46 3.0765375 16790.748
47 3.201042417 16735.592
48 3.328021917 16637.255
49 3.457062 16447.942
50 3.587754333 16175.73
51 3.7197685 15843.802
52 3.853573333 15517.477
53 3.989576583 15256.582
54 4.127587917 15145.994
55 4.26697625 15090.343
56 4.407120917 14970.086
57 4.548720667 14891.362
58 4.692186667 14842.962
59 4.837357167 14740.34
60 4.98334575 14499.057
61 5.129595167 14326.721
62 5.27664525 14369.901
63 5.424664833 14485.104
64 5.573320667 14591.681
65 5.722529083 14679.086
66 5.8719985 14766.051
67 6.021790083 14919.434
68 6.171415167 15126.162
69 6.321026 15310.2
70 6.470778417 15376.069
71 6.62113375 15440.62
72 6.771690917 15476
73 6.92142425 15446.828
74 7.070682583 15428.04
75 7.219948833 15377.058
76 7.369218333 15312.727
77 7.517862583 15275.865
78 7.665456333 15279.6
79 7.81258175 15273.283
80 7.95967025 15173.133
81 8.106388583 15022.496
82 8.251937833 14858.125
83 8.39614225 14745.339
84 8.53943 14636.839
85 8.681693667 14430.496
86 8.822886833 14220.802
87 8.96252875 14055.937
88 9.100747583 13982.486
89 9.237511083 13908.102
90 9.372204667 13851.627
91 9.504688833 13881.018
92 9.634593417 13925.517
93 9.762460917 14039.895
94 9.88810475 14149.439
95 10.01133025 14239.756
96 10.13194283 14293.484
97 10.24966075 14316.173
98 10.36420408 14430.991
99 10.47555567 14679.855
100 10.58395958 14924.489
101 10.68960167 15012.168
102 10.79186508 15026.451
103 10.89072792 15122.316
104 10.98580667 15239.826
105 11.07743458 15393.979
106 11.16544292 15480.175
107 11.24972158 15551.648
108 11.33033592 15622.736
109 11.4071015 15593.4
110 11.48018525 15485.943
111 11.54942825 15270.646
112 11.61424633 14921.577
113 11.674432 14544.71
114 11.72986992 14224.263
115 11.78069242 13971.114
116 11.82665033 13684.399
117 11.86771467 13375.159
118 11.90365167 13002.742
119 11.93385692 12640.544
120 11.95854375 12384.043
121 11.97725417 12122.214
122 11.99019917 11907.961
123 11.99821617 11556.585
124 12 10818.453
125 11.99437833 10218.872
126 11.98168992 9974.513
127 11.96236683 9966.822
128 11.93623683 10046.975
129 11.90283792 10210.082
130 11.86283425 10566.073
131 11.81606508 10971.727
132 11.76242917 11263.277
133 11.70194025 11417.265
134 11.635014 11506.812
135 11.56213983 11355.131
136 11.48255125 10783.129
137 11.39636908 9951.934
138 11.30301192 9180.95
139 11.2028855 8568.624
140 11.09612617 8027.276
141 10.98281183 7570.531
142 10.86439075 7120.324
143 10.74053733 6429.602
144 10.61033417 5731.465
145 10.47414308 5262.799
146 10.331585 4993.608
147 10.18328317 4887.8
148 10.02944475 4866.045
149 9.870938667 4903.347
150 9.708080667 4908.126
151 9.541035917 4860.331
152 9.370086833 4740.019
153 9.194264167 4623.608
154 9.011303833 4806.163
155 8.823120833 5495.896
156 8.630679917 6335.056
157 8.434706083 7096.646
158 8.235212917 7736.001
159 8.031737583 8240.211
160 7.823389583 8565.273
161 7.609442167 8874.732
162 7.394066333 9242.04
163 7.18177575 9725.045
164 6.971143917 10100.648
165 6.76005725 10223.652
166 6.547905917 10202.061
167 6.335514583 10102.626
168 6.1247145 10005.552
169 5.915829583 9948.583
170 5.70865225 9976.106
171 5.502857083 10010.661
172 5.29959525 9951.22
173 5.0998445 9703.729
174 4.90439275 9250.665
175 4.712906583 8789.8
176 4.525125833 8425.513
177 4.34108925 8209.502
178 4.161316917 8221.533
179 3.985825667 8288.006
180 3.81218425 8331.242
181 3.639778833 8203.953
182 3.47038125 8070.566
183 3.30502375 8083.531
184 3.144516 8198.954
185 2.9875085 8453.806
186 2.833456917 8828.805
187 2.683372083 9145.351
188 2.538298167 9273.079
189 2.397747333 9299.449
190 2.261532 9382.898
191 2.128944 9634.838
192 1.9997345 9987.423
193 1.874468417 10264.305
194 1.754004833 10515.696
195 1.638998417 10693.087
196 1.529095667 10687.429
197 1.423291583 10592.882
198 1.320598583 10505.588
199 1.221731833 10531.792
200 1.12771575 10595.739
201 1.038479333 10568.875
202 0.95374375 10443.948
203 0.873229167 10212.17
204 0.796579167 9881.834
205 0.723449833 9552.763
206 0.653880417 9342.464
207 0.587873833 9236.052
208 0.525776833 9193.421
209 0.467945417 9160.623
210 0.413685 9046.41
211 0.362936583 8910.99
212 0.315684333 8743.488
213 0.271219 8566.646
214 0.230005083 8550.44
215 0.1921475 8679.871
216 0.158036583 8881.379
217 0.127829583 9023.831
218 0.1008755 9046.739
219 0.076851667 9062.177
220 0.055667083 9212.429
221 0.037832833 9532.985
222 0.0232665 9776.026
223 0.012359417 9889.581
224 0.005017167 10032.636
225 0.000966833 10243.539
226 0 10488.118
227 0.005469917 10661.443
228 0.013863833 10718.797
229 0.025325333 10687.978
230 0.040032 10620.406
231 0.058248417 10498.72
232 0.07980025 10401.043
233 0.104515583 10441.696
234 0.132326083 10526.409
235 0.16308075 10628.152
236 0.195990667 10737.421
237 0.232066417 10845.921
238 0.271218583 10926.294
239 0.313498083 11047.595
240 0.359020417 11276.132
241 0.407674083 11503.57
242 0.4593205 11739.085
243 0.51380025 11992.673
244 0.571258167 12256.92
245 0.63128025 12511.497
246 0.693512167 12731.464
247 0.758432417 12876.278
248 0.826354917 12925.886
249 0.89726725 12924.183
250 0.9712875 12923.688
251 1.048186583 13030.321
252 1.127629 13306.049
253 1.20959525 13623.199
254 1.293956833 13950.403
255 1.380850583 14278.376
256 1.470691583 14574.101
257 1.562806 14803.847
258 1.656998333 15081.718
259 1.753329083 15410.35
260 1.852025333 15706.46
261 1.952786833 16035.092
262 2.055333167 16412.453
263 2.159586667 16801.681
264 2.265318833 17036.536
265 2.3733975 16972.534
266 2.484817583 16866.287
267 2.59948025 16790.748
268 2.71644175 16735.592
269 2.834529167 16637.255
270 2.95454075 16447.942
271 3.0765375 16175.73
272 3.201042417 15843.802
273 3.328021917 15517.477
274 3.457062 15256.582
275 3.587754333 15145.994
276 3.7197685 15090.343
277 3.853573333 14970.086
278 3.989576583 14891.362
279 4.127587917 14842.962
280 4.26697625 14740.34
281 4.407120917 14499.057
282 4.548720667 14326.721
283 4.692186667 14369.901
284 4.837357167 14485.104
285 4.98334575 14591.681
286 5.129595167 14679.086
287 5.27664525 14766.051
288 5.424664833 14919.434
289 5.573320667 15126.162
290 5.722529083 15310.2
291 5.8719985 15376.069
292 6.021790083 15440.62
293 6.171415167 15476
294 6.321026 15446.828
295 6.470778417 15428.04
296 6.62113375 15377.058
297 6.771690917 15312.727
298 6.92142425 15275.865
299 7.070682583 15279.6
300 7.219948833 15273.283
301 7.369218333 15173.133
302 7.517862583 15022.496
303 7.665456333 14858.125
304 7.81258175 14745.339
305 7.95967025 14636.839
306 8.106388583 14430.496
307 8.251937833 14220.802
308 8.39614225 14055.937
309 8.53943 13982.486
310 8.681693667 13908.102
311 8.822886833 13851.627
312 8.96252875 13881.018
313 9.100747583 13925.517
314 9.237511083 14039.895
315 9.372204667 14149.439
316 9.504688833 14239.756
317 9.634593417 14293.484
318 9.762460917 14316.173
319 9.88810475 14430.991
320 10.01133025 14679.855
321 10.13194283 14924.489
322 10.24966075 15012.168
323 10.36420408 15026.451
324 10.47555567 15122.316
325 10.58395958 15239.826
326 10.68960167 15393.979
327 10.79186508 15480.175
328 10.89072792 15551.648
329 10.98580667 15622.736
330 11.07743458 15593.4
331 11.16544292 15485.943
332 11.24972158 15270.646
333 11.33033592 14921.577
334 11.4071015 14544.71
335 11.48018525 14224.263
336 11.54942825 13971.114
337 11.61424633 13684.399
338 11.674432 13375.159
339 11.72986992 13002.742
340 11.78069242 12640.544
341 11.82665033 12384.043
342 11.86771467 12122.214
343 11.90365167 11907.961
344 11.93385692 11556.585
345 11.95854375 10818.453
346 11.97725417 10218.872
347 11.99019917 9974.513
348 11.99821617 9966.822
349 12 10046.975
350 11.99437833 10210.082
351 11.98168992 10566.073
352 11.96236683 10971.727
353 11.93623683 11263.277
354 11.90283792 11417.265
355 11.86283425 11506.812
356 11.81606508 11355.131
357 11.76242917 10783.129
358 11.70194025 9951.934
359 11.635014 9180.95
360 11.56213983 8568.624
361 11.48255125 8027.276
362 11.39636908 7570.531
363 11.30301192 7120.324
364 11.2028855 6429.602
365 11.09612617 5731.465
366 10.98281183 5262.799
367 10.86439075 4993.608
368 10.74053733 4887.8
369 10.61033417 4866.045
370 10.47414308 4903.347
371 10.331585 4908.126
372 10.18328317 4860.331
373 10.02944475 4740.019
374 9.870938667 4623.608
375 9.708080667 4806.163
376 9.541035917 5495.896
377 9.370086833 6335.056
378 9.194264167 7096.646
379 9.011303833 7736.001
380 8.823120833 8240.211
381 8.630679917 8565.273
382 8.434706083 8874.732
383 8.235212917 9242.04
384 8.031737583 9725.045
385 7.823389583 10100.648
386 7.609442167 10223.652
387 7.394066333 10202.061
388 7.18177575 10102.626
389 6.971143917 10005.552
390 6.76005725 9948.583
391 6.547905917 9976.106
392 6.335514583 10010.661
393 6.1247145 9951.22
394 5.915829583 9703.729
395 5.70865225 9250.665
396 5.502857083 8789.8
397 5.29959525 8425.513
398 5.0998445 8209.502
399 4.90439275 8221.533
400 4.712906583 8288.006
401 4.525125833 8331.242
402 4.34108925 8203.953
403 4.161316917 8070.566
404 3.985825667 8083.531
405 3.81218425 8198.954
406 3.639778833 8453.806
407 3.47038125 8828.805
408 3.30502375 9145.351
409 3.144516 9273.079
410 2.9875085 9299.449
411 2.833456917 9382.898
412 2.683372083 9634.838
413 2.538298167 9987.423
414 2.397747333 10264.305
415 2.261532 10515.696
416 2.128944 10693.087
417 1.9997345 10687.429
418 1.874468417 10592.882
419 1.754004833 10505.588
420 1.638998417 10531.792
421 1.529095667 10595.739
422 1.423291583 10568.875
423 1.320598583 10443.948
424 1.221731833 10212.17
425 1.12771575 9881.834
426 1.038479333 9552.763
427 0.95374375 9342.464
428 0.873229167 9236.052
429 0.796579167 9193.421
430 0.723449833 9160.623
431 0.653880417 9046.41
432 0.587873833 8910.99
433 0.525776833 8743.488
434 0.467945417 8566.646
435 0.413685 8550.44
436 0.362936583 8679.871
437 0.315684333 8881.379
438 0.271219 9023.831
439 0.230005083 9046.739
440 0.1921475 9062.177
441 0.158036583 9212.429
442 0.127829583 9532.985
443 0.1008755 9862.826
444 0.076851667 10190.689
445 0.055667083 10424.885
446 0.037832833 10515.421
447 0.0232665 9776.026
448 0.012359417 9889.581
449 0.005017167 10032.636
450 0.000966833 10243.539
451 0 10488.118
452 0.005469917 10661.443
453 0.013863833 10718.797
454 0.025325333 10687.978
455 0.040032 10620.406
456 0.058248417 10498.72
457 0.07980025 10401.043
458 0.104515583 10441.696
459 0.132326083 10526.409
460 0.16308075 10628.152
461 0.195990667 10737.421
462 0.232066417 10845.921
463 0.271218583 10926.294
464 0.313498083 11047.595
465 0.359020417 11276.132
466 0.407674083 11503.57
467 0.4593205 11739.085
468 0.51380025 11992.673
469 0.571258167 12256.92
470 0.63128025 12511.497
471 0.693512167 12731.464
472 0.758432417 12876.278
473 0.826354917 12925.886
474 0.89726725 12924.183
475 0.9712875 12923.688
476 1.048186583 13030.321
477 1.127629 13306.049
478 1.20959525 13623.199
479 1.293956833 13950.403
480 1.380850583 14278.376
481 1.470691583 14574.101
482 1.562806 14803.847
483 1.656998333 15081.718
484 1.753329083 15410.35
485 1.852025333 15706.46
486 1.952786833 16035.092
487 2.055333167 16412.453
488 2.159586667 16801.681
489 2.265318833 17036.536
490 2.3733975 16972.534
491 2.484817583 16866.287
492 2.59948025 16790.748
493 2.71644175 16735.592
494 2.834529167 16637.255
495 2.95454075 16447.942
496 3.0765375 16175.73
497 3.201042417 15843.802
498 3.328021917 15517.477
499 3.457062 15256.582
500 3.587754333 15145.994
501 3.7197685 15090.343
502 3.853573333 14970.086
503 3.989576583 14891.362
504 4.127587917 14842.962
505 4.26697625 14740.34
506 4.407120917 14499.057
507 4.548720667 14326.721
508 4.692186667 14369.901
509 4.837357167 14485.104
510 4.98334575 14591.681
511 5.129595167 14679.086
512 5.27664525 14766.051
513 5.424664833 14919.434
514 5.573320667 15126.162
515 5.722529083 15310.2
516 5.8719985 15376.069
517 6.021790083 15440.62
518 6.171415167 15476
519 6.321026 15446.828
520 6.470778417 15428.04
521 6.62113375 15377.058
522 6.771690917 15312.727
523 6.92142425 15275.865
524 7.070682583 15279.6
525 7.219948833 15273.283
526 7.369218333 15173.133
527 7.517862583 15022.496
528 7.665456333 14858.125
529 7.81258175 14745.339
530 7.95967025 14636.839
531 8.106388583 14430.496
532 8.251937833 14220.802
533 8.39614225 14055.937
534 8.53943 13982.486
535 8.681693667 13908.102
536 8.822886833 13851.627
537 8.96252875 13881.018
538 9.100747583 13925.517
539 9.237511083 14039.895
540 9.372204667 14149.439
541 9.504688833 14239.756
542 9.634593417 14293.484
543 9.762460917 14316.173
544 9.88810475 14430.991
545 10.01133025 14679.855
546 10.13194283 14924.489
547 10.24966075 15012.168
548 10.36420408 15026.451
549 10.47555567 15122.316
550 10.58395958 15239.826
551 10.68960167 15393.979
552 10.79186508 15480.175
553 10.89072792 15551.648
554 10.98580667 15622.736
555 11.07743458 15593.4
556 11.16544292 15485.943
557 11.24972158 15270.646
558 11.33033592 14921.577
559 11.4071015 14544.71
560 11.48018525 14224.263
561 11.54942825 13971.114
562 11.61424633 13684.399
563 11.674432 13375.159
564 11.72986992 13002.742
565 11.78069242 12640.544
566 11.82665033 12384.043
567 11.86771467 12122.214
568 11.90365167 11907.961
569 11.93385692 11556.585
570 11.95854375 10818.453
571 11.97725417 10218.872
572 11.99019917 9974.513
573 11.99821617 9966.822
574 12 10046.975
575 11.99437833 10210.082
576 11.98168992 10566.073
577 11.96236683 10971.727
578 11.93623683 11263.277
579 11.90283792 11417.265
580 11.86283425 11506.812
581 11.81606508 11355.131
582 11.76242917 10783.129
583 11.70194025 9951.934
584 11.635014 9180.95
585 11.56213983 8568.624
586 11.48255125 8027.276
587 11.39636908 7570.531
588 11.30301192 7120.324
589 11.2028855 6429.602
590 11.09612617 5731.465
591 10.98281183 5262.799
592 10.86439075 4993.608
593 10.74053733 4887.8
594 10.61033417 4866.045
595 10.47414308 4903.347
596 10.331585 4908.126
597 10.18328317 4860.331
598 10.02944475 4740.019
599 9.870938667 4623.608
600 9.708080667 4806.163
601 9.541035917 5495.896
602 9.370086833 6335.056
603 9.194264167 7096.646
604 9.011303833 7736.001
605 8.823120833 8240.211
606 8.630679917 8565.273
607 8.434706083 8874.732
608 8.235212917 9242.04
609 8.031737583 9725.045
610 7.823389583 10100.648
611 7.609442167 10223.652
612 7.394066333 10202.061
613 7.18177575 10102.626
614 6.971143917 10005.552
615 6.76005725 9948.583
616 6.547905917 9976.106
617 6.335514583 10010.661
618 6.1247145 9951.22
619 5.915829583 9703.729
620 5.70865225 9250.665
621 5.502857083 8789.8
622 5.29959525 8425.513
623 5.0998445 8209.502
624 4.90439275 8221.533
625 4.712906583 8288.006
626 4.525125833 8331.242
627 4.34108925 8203.953
628 4.161316917 8070.566
629 3.985825667 8083.531
630 3.81218425 8198.954
631 3.639778833 8453.806
632 3.47038125 8828.805
633 3.30502375 9145.351
634 3.144516 9273.079
635 2.9875085 9299.449
636 2.833456917 9382.898
637 2.683372083 9634.838
638 2.538298167 9987.423
639 2.397747333 10264.305
640 2.261532 10515.696
641 2.128944 10693.087
642 1.9997345 10687.429
643 1.874468417 10592.882
644 1.754004833 10505.588
645 1.638998417 10531.792
646 1.529095667 10595.739
647 1.423291583 10568.875
648 1.320598583 10443.948
649 1.221731833 10212.17
650 1.12771575 9881.834
651 1.038479333 9552.763
652 0.95374375 9342.464
653 0.873229167 9236.052
654 0.796579167 9193.421
655 0.723449833 9160.623
656 0.653880417 9046.41
657 0.587873833 8910.99
658 0.525776833 8743.488
659 0.467945417 8566.646
660 0.413685 8550.44
661 0.362936583 8679.871
662 0.315684333 8881.379
663 0.271219 9023.831
664 0.230005083 9046.739
665 0.1921475 9062.177
666 0.158036583 9212.429
667 0.127829583 9532.985
668 0.1008755 9862.826
669 0.076851667 10190.689
670 0.055667083 10424.885
671 0.037832833 10515.421
672 0.0232665 10534.1
673 0.012359417 10661.443
674 0.005017167 10718.797
675 0.000966833 10687.978
676 0 10620.406

377
Well.m
View File

@@ -1,6 +1,377 @@
classdef Well
classdef Well < handle
properties(Constant)
% Constants (SHOULD THESE BE ELSEWHERE?)
YM_STEEL=30.5;
YM_FIBERGLASS=7.2;
end
properties
wellName;
% Current Values
currentSurfacePosition,currentSurfaceLoad;
currentDownholePosition,currentDownholeLoad;
currentCard=Card(0);
% User Inputs
dt = 0.03333333;
tubingHeadPressure = 40.0;
fluidGradient = 0.45;
stuffingBoxFriction = 100.0;
numTapers = 3;
tubingAnchorDepth = 0.0;
pumpDiameter = 2.5;
tubingInnerDiameter = 1.995;
tubingOuterDiameter = 2.375;
structuralRating = 320000;
% Rod String Inputs
c;
rodLength;
rodDiameter;
rodYM;
rodWeightPerFoot;
% Calculated Taper Parameters
a;
area;
pressure;
stretch;
force;
alpha;
xOverA;
factorArray;
lagIndex;
lengthRequired;
centerPoint;
count;
topPosArray;
topLoadArray;
buoyantForceTotal = 0.0;
rodDepthTotal = 0.0;
rodWeightAirTotal = 0.0;
rodWeightFluidTotal = 0.0;
% cross-function variables for position and load
% POSITION MUST ALWAYS BE CALLED FIRST.
loadBefore = 0.0;
loadAfter = 0.0;
loadBefore3 = 0.0;
loadAfter3 = 0.0;
tempLoadValue = 0.0;
end
methods
function me = Well(name)
me.wellName = name;
me.c = [0.8 0.8 0.8];
me.rodLength = [1475.0 1525.0 2000.0];
me.rodDiameter = [1.0 0.875 0.750];
me.rodYM = [me.YM_STEEL me.YM_STEEL me.YM_STEEL];
me.rodWeightPerFoot = [Well.lookupRodWeightPerFoot(me.rodYM(1), me.rodDiameter(1)) ...
Well.lookupRodWeightPerFoot(me.rodYM(2), me.rodDiameter(2)) ...
Well.lookupRodWeightPerFoot(me.rodYM(3), me.rodDiameter(3))];
% Initialize
me.a = zeros(1, me.numTapers, 'double');
me.area = zeros(1, me.numTapers+1, 'double');
me.pressure = zeros(1, me.numTapers, 'double');
me.stretch = zeros(1, me.numTapers, 'double');
me.force = zeros(1, me.numTapers, 'double');
me.alpha = zeros(1, me.numTapers, 'double');
me.xOverA = zeros(1, me.numTapers, 'double');
me.factorArray = zeros(1, me.numTapers, 'double');
me.lagIndex = zeros(1, me.numTapers, 'uint8');
me.lengthRequired = zeros(1, me.numTapers, 'uint8');
me.centerPoint = zeros(1, me.numTapers, 'uint8');
me.count = zeros(1, me.numTapers, 'uint8');
me.topPosArray = zeros(10, 250,'double');
me.topLoadArray = zeros(10, 250, 'double');
me.taperSetup();
end
function taperSetup(me)
for i = 1:me.numTapers
me.area(i) = pi / 4 * power(me.rodDiameter(i), 2);
end
for i = 1:me.numTapers
me.a(i) = 1000.0 * sqrt(32.2 * me.rodYM(i) * me.area(i) / me.rodWeightPerFoot(i));
me.rodDepthTotal = me.rodDepthTotal + me.rodLength(i);
if i > 1
me.pressure(i) = me.pressure(i - 1) + me.fluidGradient * me.rodLength(i);
else
me.pressure(i) = me.tubingHeadPressure + me.fluidGradient * me.rodLength(i);
end
me.buoyantForceTotal = me.buoyantForceTotal + me.pressure(i) * (me.area(i+1) - me.area(i));
me.rodWeightAirTotal = me.rodWeightAirTotal + me.rodWeightPerFoot(i) * me.rodLength(i);
me.rodWeightFluidTotal = me.rodWeightAirTotal + me.buoyantForceTotal;
end
for j = 1:me.numTapers
weightData = 0.0;
annularForceData = 0.0;
for i = j+1:me.numTapers
weightData = weightData + me.rodWeightPerFoot(i) * me.rodLength(i);
end
for i = j:me.numTapers-1
annularForceData = annularForceData + me.pressure(i) * (me.area(i) - me.area(i+1));
end
me.force(j) = (-me.area(me.numTapers) * me.pressure(me.numTapers)) + weightData - annularForceData;
me.alpha(j) = (me.force(j) + me.rodWeightPerFoot(j) * me.rodLength(j)) / (me.rodYM(j) * power(10, 6) * me.area(j));
if j > 1
me.stretch(j) = me.stretch(j - 1) + me.alpha(j) * me.rodLength(j) - ...
(me.rodWeightPerFoot(j) * power(me.rodLength(j), 2.0)) / ...
(2.0 * me.rodYM(j) * power(10, 6) * me.area(j));
else
me.stretch(j) = 0.0 + me.alpha(j) * me.rodLength(j) - ...
(me.rodWeightPerFoot(j) * power(me.rodLength(j), 2.0)) / ...
(2.0 * me.rodYM(j) * power(10, 6) * me.area(j));
end
end
for i = 1:me.numTapers
me.xOverA(i) = me.rodLength(i) / me.a(i);
me.lagIndex(i) = floor(me.rodLength(i) / (me.a(i) * me.dt));
me.factorArray(i) = (me.xOverA(i) - double(me.lagIndex(i)) * me.dt) / me.dt;
me.centerPoint(i) = me.lagIndex(i) + 2;
me.lengthRequired(i) = 2 * (me.lagIndex(i) + 1) + 1;
end
end
function pumpPosition = position(me, i)
% Position Function
ai = me.a(i);
ci = me.c(i);
factori = me.factorArray(i);
lengthi = me.rodLength(i);
lagi = double(me.lagIndex(i));
yi = me.rodYM(i) * power(10, 6);
areai = me.area(i);
centeri = me.centerPoint(i);
iBefore = centeri - me.lagIndex(i);
iAfter = centeri + me.lagIndex(i);
me.loadBefore = 0.0;
me.loadAfter = 0.0;
me.loadBefore3 = 0.0;
me.loadAfter3 = 0.0;
pumpPosition = exp(ci * lengthi / (2.0 * ai)) * (me.topPosArray(i, iAfter) + ...
factori * me.topPosArray(i, iAfter+1));
pumpPosition = pumpPosition + exp(-ci * lengthi / (2.0 * ai)) * ...
(me.topPosArray(i,iBefore) + factori * (me.topPosArray(i,iBefore-1) - ...
me.topPosArray(i, iBefore)));
pumpPosition = 0.5 * pumpPosition;
insideIntegral = 0.0;
for jj = 1:2*lagi-1
insideIntegral = insideIntegral + me.dt / (yi * areai) * ...
(exp((-ci * (lagi - jj) *me.dt) / 2.0) * ...
me.topLoadArray(i, iBefore + jj));
end
insideIntegral = insideIntegral + 0.5 * me.dt /(yi * areai) * ...
(exp((-ci * lagi * me.dt) / 2.0) * me.topLoadArray(i, iBefore) + ...
exp((-ci * -lagi * me.dt) / 2.0) * me.topLoadArray(i, iAfter));
me.loadBefore = exp((-ci * lagi * me.dt) / 2.0) * me.topLoadArray(i, iBefore) + ...
factori * (exp((-ci * (lagi + 1) * me.dt) / 2.0) * me.topLoadArray(i, iBefore-1) - ...
exp((-ci * lagi * me.dt) / 2.0) * me.topLoadArray(i, iBefore));
me.loadAfter = exp((-ci * -lagi * me.dt) / 2.0) * me.topLoadArray(i, iAfter) + ...
factori * (exp((-ci * (-lagi - 1) * me.dt) / 2.0) * me.topLoadArray(i, iAfter+1) - ...
exp((-ci * -lagi * me.dt) / 2.0) * me.topLoadArray(i,iAfter));
insideIntegral = insideIntegral + 0.5 * factori * me.dt / (yi * areai) * ...
(me.loadBefore + exp((-ci * lagi * me.dt) / 2.0) * me.topLoadArray(i, iBefore));
insideIntegral = insideIntegral + 0.5 * factori * me.dt / (yi * areai) * ...
(me.loadAfter + exp((-ci * -lagi * me.dt) / 2.0) * me.topLoadArray(i, iAfter));
insideIntegral = 0.5 * ai * insideIntegral;
pumpPosition = pumpPosition + insideIntegral;
insideIntegral = 0.0;
for jj = 1:2*lagi-1
insideIntegral = insideIntegral + me.dt * (exp((-ci * (lagi - jj) * me.dt) / 2.0) * ...
me.topPosArray(i, iBefore+jj));
end
insideIntegral = insideIntegral + 0.5 * me.dt * (exp((-ci * lagi * me.dt) / 2.0) * ...
me.topPosArray(i, iBefore) + exp((-ci * -lagi * me.dt) / 2.0) * ...
me.topPosArray(i, iAfter));
me.loadBefore3 = exp((-ci * lagi * me.dt) / 2.0) * me.topPosArray(i, iBefore) + ...
factori * (exp((-ci * (lagi+1) * me.dt) / 2.0) * me.topPosArray(i, iBefore-1) - ...
exp((-ci * lagi * me.dt) / 2.0) * me.topPosArray(i, iBefore));
me.loadAfter3 = exp((-ci * -lagi * me.dt) / 2.0) * me.topPosArray(i, iAfter) + ...
factori * (exp((-ci * (-lagi-1) * me.dt) / 2.0) * me.topPosArray(i, iAfter+1) - ...
exp((-ci * -lagi * me.dt) / 2.0) * me.topPosArray(i, iAfter));
insideIntegral = insideIntegral + 0.5 * factori * me.dt * (me.loadBefore3 + ...
exp((-ci * lagi * me.dt) / 2.0) * me.topPosArray(i, iBefore));
insideIntegral = insideIntegral + 0.5 * factori * me.dt * (me.loadAfter3 + ...
exp((-ci * -lagi * me.dt) / 2.0) * me.topPosArray(i, iAfter));
insideIntegral = -(ci * lengthi / 4) * 0.5 * (ci / (2.0 * ai)) * insideIntegral;
me.tempLoadValue = insideIntegral / lengthi;
pumpPosition = pumpPosition + insideIntegral;
end
function pumpLoad = load(me, i)
% Load Function
ai = me.a(i);
ci = me.c(i);
lengthi = me.rodLength(i);
lagi = me.lagIndex(i);
yi = me.rodYM(i) * power(10, 6);
areai = me.area(i);
centeri = me.centerPoint(i);
iBefore = centeri - lagi;
iAfter = centeri + lagi;
pumpLoad = 0.5 * (ai / (yi * areai)) * (1 / ai) * (me.loadBefore + me.loadAfter);
tempResult = yi * areai * pumpLoad;
pumpLoad = pumpLoad - (ci * lengthi / 4) * (0.5 * (ci / (2.0 * ai))) * (1 / ai) * ...
(me.loadBefore3 + me.loadAfter3);
ptAfter = (me.topPosArray(i, iAfter+1) - me.topPosArray(i, iAfter-1)) / (2.0 * me.dt);
ptBefore = (me.topPosArray(i, iBefore+1) - me.topPosArray(i, iBefore-1)) / (2.0 * me.dt);
firstPart = (exp((ci * lengthi) / (2.0 * ai)) * ptAfter - exp((-ci * lengthi) / ...
(2.0 * ai)) * ptBefore) / (2.0 * ai);
firstPart = firstPart + (ci * exp((ci * lengthi) / (2.0 * ai)) * ...
me.topPosArray(i, iAfter) - ci * exp((-ci * lengthi) / (2.0 * ai)) * ...
me.topPosArray(i, iBefore)) / (4 * ai);
pumpLoad = yi * areai * (firstPart + pumpLoad); % + tempLoadValue ?
end
function [pumpPosition, pumpLoad, status] = calc(me, polishedRodPosition, lastPolishedRodPosition,...
polishedRodLoad)
pumpPosition = -1.0;
pumpLoad = -1.0;
status = -1;
loadMult = 1.0;
tapersAllowed = 1;
for ii = 2:me.lengthRequired(1)
me.topPosArray(1, ii-1) = me.topPosArray(1, ii);
me.topLoadArray(1, ii-1) = me.topLoadArray(1, ii);
end
me.topPosArray(1, me.lengthRequired(1)) = -1.0 * polishedRodPosition / 12.0;
if polishedRodPosition > lastPolishedRodPosition
me.topLoadArray(1, me.lengthRequired(1)) = loadMult * ...
(polishedRodLoad - me.rodWeightFluidTotal) - me.stuffingBoxFriction;
elseif polishedRodPosition < lastPolishedRodPosition
me.topLoadArray(1, me.lengthRequired(1)) = loadMult * ...
(polishedRodLoad - me.rodWeightFluidTotal) + me.stuffingBoxFriction;
else
me.topLoadArray(1, me.lengthRequired(1)) = loadMult * ...
(polishedRodLoad - me.rodWeightFluidTotal);
end
tap=1;
while tap <= tapersAllowed
me.count(tap) = me.count(tap) + 1;
if me.count(tap) >= me.lengthRequired(tap)
if tap+1 <= me.numTapers
% working our way down to the bottom of the well
for pti = 2:me.lengthRequired(tap+1)+1
me.topPosArray(tap+1, pti-1) = me.topPosArray(tap+1, pti);
me.topLoadArray(tap+1, pti-1) = me.topLoadArray(tap+1, pti);
end
pumpPosition = me.position(tap);
pumpLoad = me.load(tap);
status = 0;
me.topPosArray(tap+1, me.lengthRequired(tap+1)) = pumpPosition;
me.topLoadArray(tap+1, me.lengthRequired(tap+1)) = pumpLoad;
else
pumpPosition = -12.0 * me.position(tap); % + me.stretch(me.numTapers);
pumpLoad = me.load(tap) + me.force(me.numTapers);
status = 1;
end
me.count(tap) = me.count(tap) - 1;
tapersAllowed = tapersAllowed + 1;
if tapersAllowed > me.numTapers
tapersAllowed = me.numTapers;
end
end
tap = tap + 1;
end
end
end
methods(Static)
function wtPerFt = lookupRodWeightPerFoot(i_ym, i_diam)
YM_STEEL=30.5;
YM_FIBERGLASS=7.2;
wtPerFt = -1;
if (i_ym == YM_STEEL)
if (i_diam <= 2 && i_diam > 1.75)
wtPerFt = 10.7;
elseif (i_diam <= 1.75 && i_diam > 1.65)
wtPerFt = 8.2;
elseif (i_diam <= 1.65 && i_diam > 1.5)
wtPerFt = 7;
elseif (i_diam <= 1.5 && i_diam > 1.375)
wtPerFt = 6;
elseif (i_diam <= 1.375 && i_diam > 1.125)
wtPerFt = 5;
elseif (i_diam <= 1.125 && i_diam > 1)
wtPerFt = 3.676;
elseif (i_diam <= 1 && i_diam > 0.875)
wtPerFt = 2.904;
elseif (i_diam <= 0.875 && i_diam > 0.75)
wtPerFt = 2.224;
elseif (i_diam <= 0.75 && i_diam > 0.625)
wtPerFt = 1.634;
elseif (i_diam <= 0.625 && i_diam > 0.5)
wtPerFt = 1.13;
elseif (i_diam <= 0.5)
wtPerFt = 0.72;
else
wtPerFt = 0;
end
elseif (i_ym == YM_FIBERGLASS)
if (i_diam <= 1.25 && i_diam > 1.125)
wtPerFt = 1.2879;
elseif (i_diam <= 1.125 && i_diam > 1)
wtPerFt = 1.09;
elseif (i_diam <= 1 && i_diam > 0.875)
wtPerFt = 0.8188;
elseif (i_diam <= 0.875 && i_diam > 0.75)
wtPerFt = 0.6108;
elseif (i_diam <= 0.75)
wtPerFt = 0.484;
else
wtPerFt = 0;
end
end
end
end
end

319
algorithm.m Normal file
View File

@@ -0,0 +1,319 @@
simWell()
function simWell
wellName = "Mallet";
% Current Values
currentSurfacePosition = 0.0;
currentSurfaceLoad = 0.0;
currentDownholePosition = 0.0;
currentDownholeLoad = 0.0;
currentCard=Card(0);
% Constants
YM_STEEL=30.5;
YM_FIBERGLASS=7.2;
% User Inputs
dt = 0.03333333;
tubingHeadPressure = 40.0;
fluidGradient = 0.45;
stuffingBoxFriction = 100.0;
numTapers = 3;
tubingAnchorDepth = 0.0;
pumpDiameter = 2.5;
tubingInnerDiameter = 1.995;
tubingOuterDiameter = 2.375;
structuralRating = 320000;
% Rod String Inputs
c = [0.08 0.08 0.08];
rodLength = [1475.0 1525.0 2000.0];
rodDiameter = [1.0 0.875 0.750];
rodYM = [YM_STEEL YM_STEEL YM_STEEL];
rodWeightPerFoot = [Well.lookupRodWeightPerFoot(YM_STEEL, rodDiameter(1)) ...
Well.lookupRodWeightPerFoot(YM_STEEL, rodDiameter(2)) ...
Well.lookupRodWeightPerFoot(YM_STEEL, rodDiameter(3))];
% Calculated Taper Parameters
% Initialize
a = zeros(1, numTapers, 'double');
area = zeros(1, numTapers+1, 'double');
pressure = zeros(1, numTapers, 'double');
stretch = zeros(1, numTapers, 'double');
force = zeros(1, numTapers, 'double');
alpha = zeros(1, numTapers, 'double');
xOverA = zeros(1, numTapers, 'double');
factorArray = zeros(1, numTapers, 'double');
lagIndex = zeros(1, numTapers, 'uint8');
lengthRequired = zeros(1, numTapers, 'uint8');
centerPoint = zeros(1, numTapers, 'uint8');
count = zeros(1, numTapers, 'uint8');
buoyantForceTotal = 0.0;
rodDepthTotal = 0.0;
rodWeightAirTotal = 0.0;
rodWeightFluidTotal = 0.0;
topPosArray = zeros(10, 250,'double');
topLoadArray = zeros(10, 250, 'double');
% cross-function variables for position and load
% POSITION MUST ALWAYS BE CALLED FIRST.
loadBefore = 0.0;
loadAfter = 0.0;
loadBefore3 = 0.0;
loadAfter3 = 0.0;
tempLoadValue = 0.0;
for i = 1:numTapers
area(i) = pi / 4 * rodDiameter(i) ^ 2;
end
for i = 1:numTapers
a(i) = 1000.0 * sqrt(32.3 * rodYM(i) / rodWeightPerFoot(i));
% if i > 1
% rodDepth(i) = rodDepth(i-1) + rodLength(i);
% else
% rodDepth(i) = 0.0;
% end
rodDepthTotal = rodDepthTotal + rodLength(i);
if i > 1
pressure(i) = pressure(i - 1) + fluidGradient * rodLength(i);
else
pressure(i) = tubingHeadPressure + fluidGradient * rodLength(i);
end
% buoyantForce(i) = pressure(i) * (area(i+1) - area(i));
buoyantForceTotal = buoyantForceTotal + pressure(i) * (area(i+1) - area(i));
% rodWeightAir(i) = rodWeightPerFoot(i) * rodLength(i);
rodWeightAirTotal = rodWeightAirTotal + rodWeightPerFoot(i) * rodLength(i);
% rodWeightFluid(i) = rodWeightAir(i) + buoyantForce(i);
rodWeightFluidTotal = rodWeightFluidTotal + buoyantForceTotal;
end
for j = 1:numTapers
weightData = 0.0;
annularForceData = 0.0;
for i = j+1:numTapers
weightData = weightData + rodWeightPerFoot(i) * rodLength(i);
end
for i = j:numTapers-1
annularForceData = annularForceData + pressure(i) * (area(i) - area(i+1));
end
force(j) = (-area(numTapers) * pressure(numTapers)) + weightData - annularForceData;
alpha(j) = (force(j) + rodWeightPerFoot(j) * rodLength(j)) / (rodYM(j) * power(10, 6) * area(j));
if j > 1
stretch(j) = stretch(j - 1) + alpha(j) * rodLength(j) - ...
(rodWeightPerFoot(j) * power(rodLength(j), 2)) / ...
(2 * rodYM(j) * power(10, 6) * area(j));
else
stretch(j) = 0.0 + alpha(j) * rodLength(j) - ...
(rodWeightPerFoot(j) * power(rodLength(j), 2)) / ...
(2 * rodYM(j) * power(10, 6) * area(j));
end
end
for i = 1:numTapers
xOverA(i) = rodLength(i) / a(i);
lagIndex(i) = floor(rodLength(i) / (a(i) * dt));
factorArray(i) = (xOverA(i) - double(lagIndex(i)) * dt) / dt;
centerPoint(i) = lagIndex(i) + 2;
lengthRequired(i) = 2 * (lagIndex(i) + 1) + 1;
end
m = csvread('Mallet No Tag.csv');
for i = 2:size(m,1)
[dhPos, dhLoad, status] = calc(m(i,1), m(i-1,1), m(i,2));
if status == 1
currentCard.push(m(i,1), m(i,2), dhPos, dhLoad);
end
end
% currentCard.surfacePosition
% scatter(currentCard.surfacePosition, currentCard.surfaceLoad)
scatter(currentCard.downholePosition, currentCard.downholeLoad)
% FUNCTION DECLARATIONS
function pumpPosition = position(i)
% Position Function
ai = a(i);
ci = c(i);
factori = factorArray(i);
lengthi = rodLength(i);
lagi = double(lagIndex(i));
yi = rodYM(i) * power(10, 6);
areai = area(i);
centeri = centerPoint(i);
iBefore = centeri - lagIndex(i);
iAfter = centeri + lagIndex(i);
pumpPosition = exp(ci * lengthi / (2 * ai)) * (topPosArray(i, iAfter) + ...
factori * topPosArray(i, iAfter+1));
pumpPosition = pumpPosition + exp(ci * lengthi / (2 * ai)) * ...
(topPosArray(i,iBefore-1) -topPosArray(i, iBefore));
pumpPosition = 0.5 * pumpPosition;
insideIntegral = 0.0;
for jj = 1:2*lagi-1
insideIntegral = insideIntegral + dt / (yi * areai) * ...
(exp((-ci * (lagi - jj) *dt) / 2) * ...
topLoadArray(i, iBefore + jj));
end
insideIntegral = insideIntegral + 0.5 * dt /(yi * areai) * ...
(exp((-ci * lagi * dt) / 2) * topLoadArray(i, iBefore) + ...
exp((-ci * -lagi * dt) / 2) * topLoadArray(i, iAfter));
loadBefore = exp((-ci * lagi * dt) / 2) * topLoadArray(i, iBefore) + ...
factori * (exp((-ci * (lagi + 1) * dt) / 2) * topLoadArray(i, iBefore-1) - ...
exp((-ci * lagi * dt) / 2) * topLoadArray(i, iBefore));
loadAfter = exp((-ci * -lagi * dt) / 2) * topLoadArray(i, iAfter) + ...
factori * (exp((-ci * (-lagi - 1) * dt) / 2) * topLoadArray(i, iAfter+1) - ...
exp((-ci * -lagi * dt) / 2) * topLoadArray(i,iAfter));
insideIntegral = insideIntegral + 0.5 * factori * dt / (yi * areai) * ...
(loadBefore + exp((-ci * lagi * dt) / 2) * topLoadArray(i, iBefore));
insideIntegral = insideIntegral + 0.5 * factori * dt / (yi * areai) * ...
(loadAfter + exp((-ci * -lagi * dt) / 2) * topLoadArray(i, iAfter));
insideIntegral = 0.5 * ai * insideIntegral;
pumpPosition = pumpPosition + insideIntegral;
insideIntegral = 0.0;
for jj = 1:2*lagi-1
insideIntegral = insideIntegral + dt * (exp((-ci * (lagi - jj) * dt) / 2) * ...
topPosArray(i, iBefore+jj));
end
insideIntegral = insideIntegral + 0.5 * dt * (exp((-ci * lagi * dt) / 2) * ...
topPosArray(i, iBefore) + exp((-ci * -lagi * dt) / 2) * ...
topPosArray(i, iAfter));
loadBefore3 = exp((-ci * lagi * dt) / 2) * topPosArray(i, iBefore) + ...
factori * (exp((-ci * (lagi+1) * dt) / 2) * topPosArray(i, iBefore-1) - ...
exp((-ci * lagi * dt) / 2) * topPosArray(i, iBefore));
loadAfter3 = exp((-ci * -lagi * dt) / 2) * topPosArray(i, iAfter) + ...
factori * (exp((-ci * (-lagi-1) * dt) / 2) * topPosArray(i, iAfter+1) - ...
exp((-ci * -lagi * dt) / 2) * topPosArray(i, iAfter));
insideIntegral = insideIntegral + 0.5 * factori * dt * (loadBefore3 + ...
exp((-ci * lagi * dt) / 2) * topPosArray(i, iBefore));
insideIntegral = insideIntegral + 0.5 * factori * dt * (loadAfter3 + ...
exp((-ci * -lagi * dt) / 2) * topPosArray(i, iAfter));
insideIntegral = -(ci * lengthi / 4) * 0.5 * (ci / (2 * ai)) * insideIntegral;
tempLoadValue = insideIntegral / lengthi;
pumpPosition = pumpPosition + insideIntegral;
end
function pumpLoad = load(i)
% Load Function
ai = a(i);
ci = c(i);
factori = factorArray(i);
lengthi = rodLength(i);
lagi = lagIndex(i);
yi = rodYM(i) * power(10, 6);
areai = area(i);
centeri = centerPoint(i);
iBefore = centeri - lagi;
iAfter = centeri + lagi;
pumpLoad = 0.5 * (ai / (yi * areai)) * (1 / ai) * (loadBefore + loadAfter);
tempResult = yi * areai * pumpLoad;
pumpLoad = pumpLoad - (ci * lengthi / 4) * (0.5 * (ci / (2 * ai))) * (1 / ai) * ...
(loadBefore3 + loadAfter3);
ptAfter = (topPosArray(i, iAfter+1) - topPosArray(i, iAfter-1)) / (2 * dt);
ptBefore = (topPosArray(i, iBefore+1) - topPosArray(i, iBefore-1)) / (2 * dt);
firstPart = (exp((ci * lengthi) / (2 * ai)) * ptAfter - exp((-ci * lengthi) / ...
(2 * ai)) * ptBefore) / (2 * ai);
firstPart = firstPart + (ci * exp((ci * lengthi) / (2 * ai)) * ...
topPosArray(i, iAfter) - ci * exp((-ci * lengthi) / (2 * ai)) * ...
topPosArray(i, iBefore)) / (4 * ai);
pumpLoad = yi * areai * (firstPart + pumpLoad); % + tempLoadValue ?
end
function [pumpPosition, pumpLoad, status] = calc(polishedRodPosition, lastPolishedRodPosition,...
polishedRodLoad)
pumpPosition = -1.0;
pumpLoad = -1.0;
status = -1;
loadMult = 1.0;
tapersAllowed = 1;
for ii = 2:lengthRequired(1)
topPosArray(1, ii-1) = topPosArray(1, ii);
topLoadArray(1, ii-1) = topLoadArray(1, ii);
topPosArray(1, lengthRequired(1)) = - polishedRodPosition / 12;
if polishedRodPosition > lastPolishedRodPosition
topLoadArray(1, lengthRequired(1)) = loadMult * ...
(polishedRodLoad - rodWeightFluidTotal) - stuffingBoxFriction;
elseif polishedRodPosition > lastPolishedRodPosition
topLoadArray(1, lengthRequired(1)) = loadMult * ...
(polishedRodLoad - rodWeightFLuidTotal) + stuffingBoxFriction;
else
topLoadArray(1, lengthRequired(1)) = loadMult * (polishedRodLoad - rodWeightFluidTotal);
end
end
tap=1;
while tap <= tapersAllowed
count(tap) = count(tap) + 1;
if count(tap) >= lengthRequired(tap)
if tap+1 <= numTapers
% working our way down to the bottom of the well
for pti = 2:lengthRequired(tap+1)
topPosArray(tap+1, pti-1) = topPosArray(tap+1, pti);
topLoadArray(tap+1, pti-1) = topLoadArray(tap+1, pti);
end
pumpPosition = position(tap);
pumpLoad = load(tap);
status = 0;
topPosArray(tap+1, lengthRequired(tap+1)) = pumpPosition;
topLoadArray(tap+1, lengthRequired(tap+1)) = pumpLoad;
else
pumpPosition = -12 * (position(tap) + stretch(numTapers));
pumpLoad = load(tap) + force(numTapers);
status = 1;
end
count(tap) = count(tap) - 1;
tapersAllowed = tapersAllowed + 1;
if tapersAllowed > numTapers
tapersAllowed = numTapers;
end
end
tap = tap + 1;
end
end
end

673
mallet.csv Normal file
View File

@@ -0,0 +1,673 @@
0,8484.74
0.066215,8615.27
0.171112,8951.1
0.316819,9280.12
0.498586,9613.75
0.715024,10084.6
0.97621,10624.4
1.2883,10886
1.63867,10787.3
2.02093,10515.7
2.43243,10317
2.87705,10188.2
3.36461,10107.5
3.8875,10058.3
4.44299,10128.3
5.03967,10279.2
5.67946,10368
6.35611,10397.3
7.05754,10422.5
7.7809,10496.4
8.53069,10721.6
9.32235,11145.6
10.1506,11569.2
11.013,12015.8
11.9097,12514.9
12.842,12892
13.8065,12964.3
14.7986,12892.5
15.8226,12869.7
16.8842,12904.7
17.9785,12974.2
19.1005,13055.2
20.2442,13145.5
21.4129,13406.1
22.6127,13789.8
23.8375,13974.4
25.0839,14102
26.3506,14397.5
27.6347,14832.5
28.936,15269.6
30.2719,15730.9
31.6607,16128.3
33.0885,16138.4
34.5314,15870.9
35.9861,15687
37.4602,15666
38.9614,15642.7
40.4966,15570.9
42.0607,15503.3
43.6394,15452.3
45.2335,15386.8
46.8483,15105.5
48.4878,14678
50.152,14434.2
51.8308,14364.4
53.5259,14356.1
55.2375,14236.2
56.9713,14093.1
58.7226,13891.4
60.4832,13598.9
62.2413,13513.1
64.007,13694.1
65.7803,13886.4
67.5656,13987.5
69.3593,14073.4
71.1599,14208.2
72.9585,14286.5
74.7583,14322
76.556,14312
78.3522,14427.3
80.1504,14687.4
81.9521,14818.9
83.7547,14816.3
85.5546,14750.8
87.3472,14682.4
89.1313,14642.8
90.9046,14661.6
92.6711,14728.2
94.4368,14709.3
96.2018,14537.4
97.9579,14323.4
99.6993,14149.4
101.428,13975.5
103.143,13769.3
104.844,13652.9
106.527,13573.9
108.191,13526.9
109.842,13466.2
111.478,13316.7
113.09,13212.9
114.669,13210.8
116.219,13258
117.74,13319.1
119.238,13443.1
120.709,13533.1
122.148,13525.3
123.547,13536
124.909,13699.2
126.234,14000.9
127.523,14235.3
128.772,14383.4
129.979,14674.1
131.149,14953.1
132.282,14981
133.374,14929.8
134.416,14898.1
135.41,14954.7
136.359,14988.7
137.266,14932.4
138.126,14798
138.939,14617.8
139.7,14300.7
140.403,13873.7
141.05,13581.8
141.639,13342
142.175,13062.5
142.646,12627.3
143.058,12231.8
143.405,11767.8
143.683,11330.1
143.878,10991
143.996,10990.7
144,11457.4
143.95,13420
143.839,14602.7
143.662,15329.3
143.407,15622.4
143.091,15098.6
142.687,14170.6
142.183,13026.4
141.6,12231.2
140.93,11669.8
140.172,11416.2
139.341,11030.2
138.434,10372.5
137.43,9651.43
136.346,9073.28
135.19,8552.75
133.945,7961.3
132.611,7503.35
131.196,7265.97
129.659,7476.43
128.044,8425.79
126.37,8998.29
124.599,9058.83
122.758,8750.14
120.876,7922.02
119.005,6829.66
117.1,5739.27
115.16,4938.02
113.195,4556.92
111.124,4009.97
108.956,3076.65
106.734,2809.43
104.501,3435.44
102.236,4114.62
99.8892,4774.08
97.4932,5494.42
95.0781,6051.92
92.6506,6267.32
90.2226,6215.52
87.773,6104.6
85.3137,6203.32
82.8008,6609.69
80.2456,7243.11
77.6691,7868.18
75.059,8409.37
72.4444,8770.91
69.889,9123
67.3891,9726.37
64.9092,10533.1
62.449,10876.2
60.006,10686.3
57.606,10357
55.2767,9938.64
53.0145,9433.22
50.7868,8896.33
48.581,8634.28
46.4189,8698.11
44.3031,8840.73
42.2375,8833.26
40.2273,8726.52
38.2721,8607.14
36.3855,8449.8
34.5648,8343.22
32.8088,8334.71
31.0978,8226.37
29.4095,7798.63
27.7617,7187.13
26.1538,6973.54
24.6108,7240.64
23.1211,7661.24
21.6577,8004.98
20.237,8433.32
18.8709,9012.46
17.57,9429.65
16.3306,9509.81
15.1428,9421.25
13.9942,9405.43
12.8928,9478.66
11.837,9530.74
10.8323,9548.98
9.88763,9552.49
8.99399,9483.55
8.1242,9405.81
7.2898,9492.06
6.51456,9765.15
5.80287,9996.22
5.14662,9887.11
4.5243,9551.61
3.93801,9254.68
3.40371,8961.15
2.91193,8378.6
2.4483,7819.07
2.01826,7649.43
1.63363,7745.02
1.29812,7860
1.00485,7939.93
0.741844,8024.7
0.515951,8110.57
0.329747,8151.66
0.179453,8272.08
0.073617,8535.67
0.018252,8665.32
0,8484.74
0.066215,8615.27
0.171112,8951.1
0.316819,9280.12
0.498586,9613.75
0.715024,10084.6
0.97621,10624.4
1.2883,10886
1.63867,10787.3
2.02093,10515.7
2.43243,10317
2.87705,10188.2
3.36461,10107.5
3.8875,10058.3
4.44299,10128.3
5.03967,10279.2
5.67946,10368
6.35611,10397.3
7.05754,10422.5
7.7809,10496.4
8.53069,10721.6
9.32235,11145.6
10.1506,11569.2
11.013,12015.8
11.9097,12514.9
12.842,12892
13.8065,12964.3
14.7986,12892.5
15.8226,12869.7
16.8842,12904.7
17.9785,12974.2
19.1005,13055.2
20.2442,13145.5
21.4129,13406.1
22.6127,13789.8
23.8375,13974.4
25.0839,14102
26.3506,14397.5
27.6347,14832.5
28.936,15269.6
30.2719,15730.9
31.6607,16128.3
33.0885,16138.4
34.5314,15870.9
35.9861,15687
37.4602,15666
38.9614,15642.7
40.4966,15570.9
42.0607,15503.3
43.6394,15452.3
45.2335,15386.8
46.8483,15105.5
48.4878,14678
50.152,14434.2
51.8308,14364.4
53.5259,14356.1
55.2375,14236.2
56.9713,14093.1
58.7226,13891.4
60.4832,13598.9
62.2413,13513.1
64.007,13694.1
65.7803,13886.4
67.5656,13987.5
69.3593,14073.4
71.1599,14208.2
72.9585,14286.5
74.7583,14322
76.556,14312
78.3522,14427.3
80.1504,14687.4
81.9521,14818.9
83.7547,14816.3
85.5546,14750.8
87.3472,14682.4
89.1313,14642.8
90.9046,14661.6
92.6711,14728.2
94.4368,14709.3
96.2018,14537.4
97.9579,14323.4
99.6993,14149.4
101.428,13975.5
103.143,13769.3
104.844,13652.9
106.527,13573.9
108.191,13526.9
109.842,13466.2
111.478,13316.7
113.09,13212.9
114.669,13210.8
116.219,13258
117.74,13319.1
119.238,13443.1
120.709,13533.1
122.148,13525.3
123.547,13536
124.909,13699.2
126.234,14000.9
127.523,14235.3
128.772,14383.4
129.979,14674.1
131.149,14953.1
132.282,14981
133.374,14929.8
134.416,14898.1
135.41,14954.7
136.359,14988.7
137.266,14932.4
138.126,14798
138.939,14617.8
139.7,14300.7
140.403,13873.7
141.05,13581.8
141.639,13342
142.175,13062.5
142.646,12627.3
143.058,12231.8
143.405,11767.8
143.683,11330.1
143.878,10991
143.996,10990.7
144,11457.4
143.95,13420
143.839,14602.7
143.662,15329.3
143.407,15622.4
143.091,15098.6
142.687,14170.6
142.183,13026.4
141.6,12231.2
140.93,11669.8
140.172,11416.2
139.341,11030.2
138.434,10372.5
137.43,9651.43
136.346,9073.28
135.19,8552.75
133.945,7961.3
132.611,7503.35
131.196,7265.97
129.659,7476.43
128.044,8425.79
126.37,8998.29
124.599,9058.83
122.758,8750.14
120.876,7922.02
119.005,6829.66
117.1,5739.27
115.16,4938.02
113.195,4556.92
111.124,4009.97
108.956,3076.65
106.734,2809.43
104.501,3435.44
102.236,4114.62
99.8892,4774.08
97.4932,5494.42
95.0781,6051.92
92.6506,6267.32
90.2226,6215.52
87.773,6104.6
85.3137,6203.32
82.8008,6609.69
80.2456,7243.11
77.6691,7868.18
75.059,8409.37
72.4444,8770.91
69.889,9123
67.3891,9726.37
64.9092,10533.1
62.449,10876.2
60.006,10686.3
57.606,10357
55.2767,9938.64
53.0145,9433.22
50.7868,8896.33
48.581,8634.28
46.4189,8698.11
44.3031,8840.73
42.2375,8833.26
40.2273,8726.52
38.2721,8607.14
36.3855,8449.8
34.5648,8343.22
32.8088,8334.71
31.0978,8226.37
29.4095,7798.63
27.7617,7187.13
26.1538,6973.54
24.6108,7240.64
23.1211,7661.24
21.6577,8004.98
20.237,8433.32
18.8709,9012.46
17.57,9429.65
16.3306,9509.81
15.1428,9421.25
13.9942,9405.43
12.8928,9478.66
11.837,9530.74
10.8323,9548.98
9.88763,9552.49
8.99399,9483.55
8.1242,9405.81
7.2898,9492.06
6.51456,9765.15
5.80287,9996.22
5.14662,9887.11
4.5243,9551.61
3.93801,9254.68
3.40371,8961.15
2.91193,8378.6
2.4483,7819.07
2.01826,7649.43
1.63363,7745.02
1.29812,7860
1.00485,7939.93
0.741844,8024.7
0.515951,8110.57
0.329747,8151.66
0.179453,8272.08
0.073617,8535.67
0.018252,8665.32
0,8566.76
0.066215,8484.74
0.171112,8615.27
0.316819,8951.1
0.498586,9280.12
0.715024,9613.75
0.97621,10084.6
1.2883,10624.4
1.63867,10886
2.02093,10787.3
2.43243,10515.7
2.87705,10317
3.36461,10188.2
3.8875,10107.5
4.44299,10058.3
5.03967,10128.3
5.67946,10279.2
6.35611,10368
7.05754,10397.3
7.7809,10422.5
8.53069,10496.4
9.32235,10721.6
10.1506,11145.6
11.013,11569.2
11.9097,12015.8
12.842,12514.9
13.8065,12892
14.7986,12964.3
15.8226,12892.5
16.8842,12869.7
17.9785,12904.7
19.1005,12974.2
20.2442,13055.2
21.4129,13145.5
22.6127,13406.1
23.8375,13789.8
25.0839,13974.4
26.3506,14102
27.6347,14397.5
28.936,14832.5
30.2719,15269.6
31.6607,15730.9
33.0885,16128.3
34.5314,16138.4
35.9861,15870.9
37.4602,15687
38.9614,15666
40.4966,15642.7
42.0607,15570.9
43.6394,15503.3
45.2335,15452.3
46.8483,15386.8
48.4878,15105.5
50.152,14678
51.8308,14434.2
53.5259,14364.4
55.2375,14356.1
56.9713,14236.2
58.7226,14093.1
60.4832,13891.4
62.2413,13598.9
64.007,13513.1
65.7803,13694.1
67.5656,13886.4
69.3593,13987.5
71.1599,14073.4
72.9585,14208.2
74.7583,14286.5
76.556,14322
78.3522,14312
80.1504,14427.3
81.9521,14687.4
83.7547,14818.9
85.5546,14816.3
87.3472,14750.8
89.1313,14682.4
90.9046,14642.8
92.6711,14661.6
94.4368,14728.2
96.2018,14709.3
97.9579,14537.4
99.6993,14323.4
101.428,14149.4
103.143,13975.5
104.844,13769.3
106.527,13652.9
108.191,13573.9
109.842,13526.9
111.478,13466.2
113.09,13316.7
114.669,13212.9
116.219,13210.8
117.74,13258
119.238,13319.1
120.709,13443.1
122.148,13533.1
123.547,13525.3
124.909,13536
126.234,13699.2
127.523,14000.9
128.772,14235.3
129.979,14383.4
131.149,14674.1
132.282,14953.1
133.374,14981
134.416,14929.8
135.41,14898.1
136.359,14954.7
137.266,14988.7
138.126,14932.4
138.939,14798
139.7,14617.8
140.403,14300.7
141.05,13873.7
141.639,13581.8
142.175,13342
142.646,13062.5
143.058,12627.3
143.405,12231.8
143.683,11767.8
143.878,11330.1
143.996,10991
144,10990.7
143.95,11457.4
143.839,13420
143.662,14602.7
143.407,15329.3
143.091,15622.4
142.687,15098.6
142.183,14170.6
141.6,13026.4
140.93,12231.2
140.172,11669.8
139.341,11416.2
138.434,11030.2
137.43,10372.5
136.346,9651.43
135.19,9073.28
133.945,8552.75
132.611,7961.3
131.196,7503.35
129.659,7265.97
128.044,7476.43
126.37,8425.79
124.599,8998.29
122.758,9058.83
120.876,8750.14
119.005,7922.02
117.1,6829.66
115.16,5739.27
113.195,4938.02
111.124,4556.92
108.956,4009.97
106.734,3076.65
104.501,2809.43
102.236,3435.44
99.8892,4114.62
97.4932,4774.08
95.0781,5494.42
92.6506,6051.92
90.2226,6267.32
87.773,6215.52
85.3137,6104.6
82.8008,6203.32
80.2456,6609.69
77.6691,7243.11
75.059,7868.18
72.4444,8409.37
69.889,8770.91
67.3891,9123
64.9092,9726.37
62.449,10533.1
60.006,10876.2
57.606,10686.3
55.2767,10357
53.0145,9938.64
50.7868,9433.22
48.581,8896.33
46.4189,8634.28
44.3031,8698.11
42.2375,8840.73
40.2273,8833.26
38.2721,8726.52
36.3855,8607.14
34.5648,8449.8
32.8088,8343.22
31.0978,8334.71
29.4095,8226.37
27.7617,7798.63
26.1538,7187.13
24.6108,6973.54
23.1211,7240.64
21.6577,7661.24
20.237,8004.98
18.8709,8433.32
17.57,9012.46
16.3306,9429.65
15.1428,9509.81
13.9942,9421.25
12.8928,9405.43
11.837,9478.66
10.8323,9530.74
9.88763,9548.98
8.99399,9552.49
8.1242,9483.55
7.2898,9405.81
6.51456,9492.06
5.80287,9765.15
5.14662,9996.22
4.5243,9887.11
3.93801,9551.61
3.40371,9254.68
2.91193,8961.15
2.4483,8378.6
2.01826,7819.07
1.63363,7649.43
1.29812,7745.02
1.00485,7860
0.741844,7939.93
0.515951,8024.7
0.329747,8110.57
0.179453,8151.66
0.073617,8272.08
0.018252,8535.67
0,8665.32
1 0 8484.74
2 0.066215 8615.27
3 0.171112 8951.1
4 0.316819 9280.12
5 0.498586 9613.75
6 0.715024 10084.6
7 0.97621 10624.4
8 1.2883 10886
9 1.63867 10787.3
10 2.02093 10515.7
11 2.43243 10317
12 2.87705 10188.2
13 3.36461 10107.5
14 3.8875 10058.3
15 4.44299 10128.3
16 5.03967 10279.2
17 5.67946 10368
18 6.35611 10397.3
19 7.05754 10422.5
20 7.7809 10496.4
21 8.53069 10721.6
22 9.32235 11145.6
23 10.1506 11569.2
24 11.013 12015.8
25 11.9097 12514.9
26 12.842 12892
27 13.8065 12964.3
28 14.7986 12892.5
29 15.8226 12869.7
30 16.8842 12904.7
31 17.9785 12974.2
32 19.1005 13055.2
33 20.2442 13145.5
34 21.4129 13406.1
35 22.6127 13789.8
36 23.8375 13974.4
37 25.0839 14102
38 26.3506 14397.5
39 27.6347 14832.5
40 28.936 15269.6
41 30.2719 15730.9
42 31.6607 16128.3
43 33.0885 16138.4
44 34.5314 15870.9
45 35.9861 15687
46 37.4602 15666
47 38.9614 15642.7
48 40.4966 15570.9
49 42.0607 15503.3
50 43.6394 15452.3
51 45.2335 15386.8
52 46.8483 15105.5
53 48.4878 14678
54 50.152 14434.2
55 51.8308 14364.4
56 53.5259 14356.1
57 55.2375 14236.2
58 56.9713 14093.1
59 58.7226 13891.4
60 60.4832 13598.9
61 62.2413 13513.1
62 64.007 13694.1
63 65.7803 13886.4
64 67.5656 13987.5
65 69.3593 14073.4
66 71.1599 14208.2
67 72.9585 14286.5
68 74.7583 14322
69 76.556 14312
70 78.3522 14427.3
71 80.1504 14687.4
72 81.9521 14818.9
73 83.7547 14816.3
74 85.5546 14750.8
75 87.3472 14682.4
76 89.1313 14642.8
77 90.9046 14661.6
78 92.6711 14728.2
79 94.4368 14709.3
80 96.2018 14537.4
81 97.9579 14323.4
82 99.6993 14149.4
83 101.428 13975.5
84 103.143 13769.3
85 104.844 13652.9
86 106.527 13573.9
87 108.191 13526.9
88 109.842 13466.2
89 111.478 13316.7
90 113.09 13212.9
91 114.669 13210.8
92 116.219 13258
93 117.74 13319.1
94 119.238 13443.1
95 120.709 13533.1
96 122.148 13525.3
97 123.547 13536
98 124.909 13699.2
99 126.234 14000.9
100 127.523 14235.3
101 128.772 14383.4
102 129.979 14674.1
103 131.149 14953.1
104 132.282 14981
105 133.374 14929.8
106 134.416 14898.1
107 135.41 14954.7
108 136.359 14988.7
109 137.266 14932.4
110 138.126 14798
111 138.939 14617.8
112 139.7 14300.7
113 140.403 13873.7
114 141.05 13581.8
115 141.639 13342
116 142.175 13062.5
117 142.646 12627.3
118 143.058 12231.8
119 143.405 11767.8
120 143.683 11330.1
121 143.878 10991
122 143.996 10990.7
123 144 11457.4
124 143.95 13420
125 143.839 14602.7
126 143.662 15329.3
127 143.407 15622.4
128 143.091 15098.6
129 142.687 14170.6
130 142.183 13026.4
131 141.6 12231.2
132 140.93 11669.8
133 140.172 11416.2
134 139.341 11030.2
135 138.434 10372.5
136 137.43 9651.43
137 136.346 9073.28
138 135.19 8552.75
139 133.945 7961.3
140 132.611 7503.35
141 131.196 7265.97
142 129.659 7476.43
143 128.044 8425.79
144 126.37 8998.29
145 124.599 9058.83
146 122.758 8750.14
147 120.876 7922.02
148 119.005 6829.66
149 117.1 5739.27
150 115.16 4938.02
151 113.195 4556.92
152 111.124 4009.97
153 108.956 3076.65
154 106.734 2809.43
155 104.501 3435.44
156 102.236 4114.62
157 99.8892 4774.08
158 97.4932 5494.42
159 95.0781 6051.92
160 92.6506 6267.32
161 90.2226 6215.52
162 87.773 6104.6
163 85.3137 6203.32
164 82.8008 6609.69
165 80.2456 7243.11
166 77.6691 7868.18
167 75.059 8409.37
168 72.4444 8770.91
169 69.889 9123
170 67.3891 9726.37
171 64.9092 10533.1
172 62.449 10876.2
173 60.006 10686.3
174 57.606 10357
175 55.2767 9938.64
176 53.0145 9433.22
177 50.7868 8896.33
178 48.581 8634.28
179 46.4189 8698.11
180 44.3031 8840.73
181 42.2375 8833.26
182 40.2273 8726.52
183 38.2721 8607.14
184 36.3855 8449.8
185 34.5648 8343.22
186 32.8088 8334.71
187 31.0978 8226.37
188 29.4095 7798.63
189 27.7617 7187.13
190 26.1538 6973.54
191 24.6108 7240.64
192 23.1211 7661.24
193 21.6577 8004.98
194 20.237 8433.32
195 18.8709 9012.46
196 17.57 9429.65
197 16.3306 9509.81
198 15.1428 9421.25
199 13.9942 9405.43
200 12.8928 9478.66
201 11.837 9530.74
202 10.8323 9548.98
203 9.88763 9552.49
204 8.99399 9483.55
205 8.1242 9405.81
206 7.2898 9492.06
207 6.51456 9765.15
208 5.80287 9996.22
209 5.14662 9887.11
210 4.5243 9551.61
211 3.93801 9254.68
212 3.40371 8961.15
213 2.91193 8378.6
214 2.4483 7819.07
215 2.01826 7649.43
216 1.63363 7745.02
217 1.29812 7860
218 1.00485 7939.93
219 0.741844 8024.7
220 0.515951 8110.57
221 0.329747 8151.66
222 0.179453 8272.08
223 0.073617 8535.67
224 0.018252 8665.32
225 0 8484.74
226 0.066215 8615.27
227 0.171112 8951.1
228 0.316819 9280.12
229 0.498586 9613.75
230 0.715024 10084.6
231 0.97621 10624.4
232 1.2883 10886
233 1.63867 10787.3
234 2.02093 10515.7
235 2.43243 10317
236 2.87705 10188.2
237 3.36461 10107.5
238 3.8875 10058.3
239 4.44299 10128.3
240 5.03967 10279.2
241 5.67946 10368
242 6.35611 10397.3
243 7.05754 10422.5
244 7.7809 10496.4
245 8.53069 10721.6
246 9.32235 11145.6
247 10.1506 11569.2
248 11.013 12015.8
249 11.9097 12514.9
250 12.842 12892
251 13.8065 12964.3
252 14.7986 12892.5
253 15.8226 12869.7
254 16.8842 12904.7
255 17.9785 12974.2
256 19.1005 13055.2
257 20.2442 13145.5
258 21.4129 13406.1
259 22.6127 13789.8
260 23.8375 13974.4
261 25.0839 14102
262 26.3506 14397.5
263 27.6347 14832.5
264 28.936 15269.6
265 30.2719 15730.9
266 31.6607 16128.3
267 33.0885 16138.4
268 34.5314 15870.9
269 35.9861 15687
270 37.4602 15666
271 38.9614 15642.7
272 40.4966 15570.9
273 42.0607 15503.3
274 43.6394 15452.3
275 45.2335 15386.8
276 46.8483 15105.5
277 48.4878 14678
278 50.152 14434.2
279 51.8308 14364.4
280 53.5259 14356.1
281 55.2375 14236.2
282 56.9713 14093.1
283 58.7226 13891.4
284 60.4832 13598.9
285 62.2413 13513.1
286 64.007 13694.1
287 65.7803 13886.4
288 67.5656 13987.5
289 69.3593 14073.4
290 71.1599 14208.2
291 72.9585 14286.5
292 74.7583 14322
293 76.556 14312
294 78.3522 14427.3
295 80.1504 14687.4
296 81.9521 14818.9
297 83.7547 14816.3
298 85.5546 14750.8
299 87.3472 14682.4
300 89.1313 14642.8
301 90.9046 14661.6
302 92.6711 14728.2
303 94.4368 14709.3
304 96.2018 14537.4
305 97.9579 14323.4
306 99.6993 14149.4
307 101.428 13975.5
308 103.143 13769.3
309 104.844 13652.9
310 106.527 13573.9
311 108.191 13526.9
312 109.842 13466.2
313 111.478 13316.7
314 113.09 13212.9
315 114.669 13210.8
316 116.219 13258
317 117.74 13319.1
318 119.238 13443.1
319 120.709 13533.1
320 122.148 13525.3
321 123.547 13536
322 124.909 13699.2
323 126.234 14000.9
324 127.523 14235.3
325 128.772 14383.4
326 129.979 14674.1
327 131.149 14953.1
328 132.282 14981
329 133.374 14929.8
330 134.416 14898.1
331 135.41 14954.7
332 136.359 14988.7
333 137.266 14932.4
334 138.126 14798
335 138.939 14617.8
336 139.7 14300.7
337 140.403 13873.7
338 141.05 13581.8
339 141.639 13342
340 142.175 13062.5
341 142.646 12627.3
342 143.058 12231.8
343 143.405 11767.8
344 143.683 11330.1
345 143.878 10991
346 143.996 10990.7
347 144 11457.4
348 143.95 13420
349 143.839 14602.7
350 143.662 15329.3
351 143.407 15622.4
352 143.091 15098.6
353 142.687 14170.6
354 142.183 13026.4
355 141.6 12231.2
356 140.93 11669.8
357 140.172 11416.2
358 139.341 11030.2
359 138.434 10372.5
360 137.43 9651.43
361 136.346 9073.28
362 135.19 8552.75
363 133.945 7961.3
364 132.611 7503.35
365 131.196 7265.97
366 129.659 7476.43
367 128.044 8425.79
368 126.37 8998.29
369 124.599 9058.83
370 122.758 8750.14
371 120.876 7922.02
372 119.005 6829.66
373 117.1 5739.27
374 115.16 4938.02
375 113.195 4556.92
376 111.124 4009.97
377 108.956 3076.65
378 106.734 2809.43
379 104.501 3435.44
380 102.236 4114.62
381 99.8892 4774.08
382 97.4932 5494.42
383 95.0781 6051.92
384 92.6506 6267.32
385 90.2226 6215.52
386 87.773 6104.6
387 85.3137 6203.32
388 82.8008 6609.69
389 80.2456 7243.11
390 77.6691 7868.18
391 75.059 8409.37
392 72.4444 8770.91
393 69.889 9123
394 67.3891 9726.37
395 64.9092 10533.1
396 62.449 10876.2
397 60.006 10686.3
398 57.606 10357
399 55.2767 9938.64
400 53.0145 9433.22
401 50.7868 8896.33
402 48.581 8634.28
403 46.4189 8698.11
404 44.3031 8840.73
405 42.2375 8833.26
406 40.2273 8726.52
407 38.2721 8607.14
408 36.3855 8449.8
409 34.5648 8343.22
410 32.8088 8334.71
411 31.0978 8226.37
412 29.4095 7798.63
413 27.7617 7187.13
414 26.1538 6973.54
415 24.6108 7240.64
416 23.1211 7661.24
417 21.6577 8004.98
418 20.237 8433.32
419 18.8709 9012.46
420 17.57 9429.65
421 16.3306 9509.81
422 15.1428 9421.25
423 13.9942 9405.43
424 12.8928 9478.66
425 11.837 9530.74
426 10.8323 9548.98
427 9.88763 9552.49
428 8.99399 9483.55
429 8.1242 9405.81
430 7.2898 9492.06
431 6.51456 9765.15
432 5.80287 9996.22
433 5.14662 9887.11
434 4.5243 9551.61
435 3.93801 9254.68
436 3.40371 8961.15
437 2.91193 8378.6
438 2.4483 7819.07
439 2.01826 7649.43
440 1.63363 7745.02
441 1.29812 7860
442 1.00485 7939.93
443 0.741844 8024.7
444 0.515951 8110.57
445 0.329747 8151.66
446 0.179453 8272.08
447 0.073617 8535.67
448 0.018252 8665.32
449 0 8566.76
450 0.066215 8484.74
451 0.171112 8615.27
452 0.316819 8951.1
453 0.498586 9280.12
454 0.715024 9613.75
455 0.97621 10084.6
456 1.2883 10624.4
457 1.63867 10886
458 2.02093 10787.3
459 2.43243 10515.7
460 2.87705 10317
461 3.36461 10188.2
462 3.8875 10107.5
463 4.44299 10058.3
464 5.03967 10128.3
465 5.67946 10279.2
466 6.35611 10368
467 7.05754 10397.3
468 7.7809 10422.5
469 8.53069 10496.4
470 9.32235 10721.6
471 10.1506 11145.6
472 11.013 11569.2
473 11.9097 12015.8
474 12.842 12514.9
475 13.8065 12892
476 14.7986 12964.3
477 15.8226 12892.5
478 16.8842 12869.7
479 17.9785 12904.7
480 19.1005 12974.2
481 20.2442 13055.2
482 21.4129 13145.5
483 22.6127 13406.1
484 23.8375 13789.8
485 25.0839 13974.4
486 26.3506 14102
487 27.6347 14397.5
488 28.936 14832.5
489 30.2719 15269.6
490 31.6607 15730.9
491 33.0885 16128.3
492 34.5314 16138.4
493 35.9861 15870.9
494 37.4602 15687
495 38.9614 15666
496 40.4966 15642.7
497 42.0607 15570.9
498 43.6394 15503.3
499 45.2335 15452.3
500 46.8483 15386.8
501 48.4878 15105.5
502 50.152 14678
503 51.8308 14434.2
504 53.5259 14364.4
505 55.2375 14356.1
506 56.9713 14236.2
507 58.7226 14093.1
508 60.4832 13891.4
509 62.2413 13598.9
510 64.007 13513.1
511 65.7803 13694.1
512 67.5656 13886.4
513 69.3593 13987.5
514 71.1599 14073.4
515 72.9585 14208.2
516 74.7583 14286.5
517 76.556 14322
518 78.3522 14312
519 80.1504 14427.3
520 81.9521 14687.4
521 83.7547 14818.9
522 85.5546 14816.3
523 87.3472 14750.8
524 89.1313 14682.4
525 90.9046 14642.8
526 92.6711 14661.6
527 94.4368 14728.2
528 96.2018 14709.3
529 97.9579 14537.4
530 99.6993 14323.4
531 101.428 14149.4
532 103.143 13975.5
533 104.844 13769.3
534 106.527 13652.9
535 108.191 13573.9
536 109.842 13526.9
537 111.478 13466.2
538 113.09 13316.7
539 114.669 13212.9
540 116.219 13210.8
541 117.74 13258
542 119.238 13319.1
543 120.709 13443.1
544 122.148 13533.1
545 123.547 13525.3
546 124.909 13536
547 126.234 13699.2
548 127.523 14000.9
549 128.772 14235.3
550 129.979 14383.4
551 131.149 14674.1
552 132.282 14953.1
553 133.374 14981
554 134.416 14929.8
555 135.41 14898.1
556 136.359 14954.7
557 137.266 14988.7
558 138.126 14932.4
559 138.939 14798
560 139.7 14617.8
561 140.403 14300.7
562 141.05 13873.7
563 141.639 13581.8
564 142.175 13342
565 142.646 13062.5
566 143.058 12627.3
567 143.405 12231.8
568 143.683 11767.8
569 143.878 11330.1
570 143.996 10991
571 144 10990.7
572 143.95 11457.4
573 143.839 13420
574 143.662 14602.7
575 143.407 15329.3
576 143.091 15622.4
577 142.687 15098.6
578 142.183 14170.6
579 141.6 13026.4
580 140.93 12231.2
581 140.172 11669.8
582 139.341 11416.2
583 138.434 11030.2
584 137.43 10372.5
585 136.346 9651.43
586 135.19 9073.28
587 133.945 8552.75
588 132.611 7961.3
589 131.196 7503.35
590 129.659 7265.97
591 128.044 7476.43
592 126.37 8425.79
593 124.599 8998.29
594 122.758 9058.83
595 120.876 8750.14
596 119.005 7922.02
597 117.1 6829.66
598 115.16 5739.27
599 113.195 4938.02
600 111.124 4556.92
601 108.956 4009.97
602 106.734 3076.65
603 104.501 2809.43
604 102.236 3435.44
605 99.8892 4114.62
606 97.4932 4774.08
607 95.0781 5494.42
608 92.6506 6051.92
609 90.2226 6267.32
610 87.773 6215.52
611 85.3137 6104.6
612 82.8008 6203.32
613 80.2456 6609.69
614 77.6691 7243.11
615 75.059 7868.18
616 72.4444 8409.37
617 69.889 8770.91
618 67.3891 9123
619 64.9092 9726.37
620 62.449 10533.1
621 60.006 10876.2
622 57.606 10686.3
623 55.2767 10357
624 53.0145 9938.64
625 50.7868 9433.22
626 48.581 8896.33
627 46.4189 8634.28
628 44.3031 8698.11
629 42.2375 8840.73
630 40.2273 8833.26
631 38.2721 8726.52
632 36.3855 8607.14
633 34.5648 8449.8
634 32.8088 8343.22
635 31.0978 8334.71
636 29.4095 8226.37
637 27.7617 7798.63
638 26.1538 7187.13
639 24.6108 6973.54
640 23.1211 7240.64
641 21.6577 7661.24
642 20.237 8004.98
643 18.8709 8433.32
644 17.57 9012.46
645 16.3306 9429.65
646 15.1428 9509.81
647 13.9942 9421.25
648 12.8928 9405.43
649 11.837 9478.66
650 10.8323 9530.74
651 9.88763 9548.98
652 8.99399 9552.49
653 8.1242 9483.55
654 7.2898 9405.81
655 6.51456 9492.06
656 5.80287 9765.15
657 5.14662 9996.22
658 4.5243 9887.11
659 3.93801 9551.61
660 3.40371 9254.68
661 2.91193 8961.15
662 2.4483 8378.6
663 2.01826 7819.07
664 1.63363 7649.43
665 1.29812 7745.02
666 1.00485 7860
667 0.741844 7939.93
668 0.515951 8024.7
669 0.329747 8110.57
670 0.179453 8151.66
671 0.073617 8272.08
672 0.018252 8535.67
673 0 8665.32

24
test.m
View File

@@ -1,16 +1,10 @@
% db = MongoDB();
% db.getLastStrokeNum()
% DigitalOutput.test()
% MuxSetup.test()
% AnalogInput.test()
% DigitalInput.test()
% Database.test()
% c = Card(1);
% m = csvread('Mallet No Tag.csv')
% for i = 1:size(m,1)
% c.push(m(i,1), m(i,2), 0, 0)
% end
%
% scatter(c.surfacePosition(:,:), c.surfaceLoad(:,:))
malletData = csvread('mallet.csv');
mallet = Well("Mallet");
for i = 2:size(malletData,1)
[dhPos, dhLoad, status] = mallet.calc(malletData(i,1), malletData(i-1,1), malletData(i,2));
if status == 1
mallet.currentCard.push(malletData(i,1), malletData(i,2), dhPos, dhLoad);
end
end
figure;plot(mallet.currentCard.downholePosition,mallet.currentCard.downholeLoad)