From ba52c3baed236cb7d7c08a793e041ba6d85e94de Mon Sep 17 00:00:00 2001 From: xavi Date: Tue, 11 Jun 2024 21:15:30 -0700 Subject: [PATCH] Add Reference design notes for salinity --- reference_designs/Figure_1.png | Bin 0 -> 24728 bytes reference_designs/Figure_2.png | Bin 0 -> 26775 bytes reference_designs/salinity.ods | Bin 0 -> 11574 bytes reference_designs/salinity_r100k.csv | 6 + reference_designs/salinity_r10k.csv | 10 ++ reference_designs/salinity_r1k.csv | 10 ++ reference_designs/salinity_salinitychange.csv | 32 +++++ reference_designs/scripts/plot.py | 5 + reference_designs/scripts/plot_sal.py | 19 +++ .../scripts/plot_sal_wallplug.py | 6 + reference_designs/scripts/plot_wallplug.py | 10 ++ .../scripts/plot_wallplug_trials.py | 21 +++ reference_designs/test.html | 66 +++++++++ reference_designs/wall_plug/amplified.csv | 4 + .../wall_plug/changesal_1k_1k.csv | 16 +++ .../wall_plug/fixed_1k_1k_5vpp.csv | 4 + .../wall_plug/wallplug_trials.csv | 16 +++ .../wall_plug/wallplug_trials.sc | 126 ++++++++++++++++++ 18 files changed, 351 insertions(+) create mode 100644 reference_designs/Figure_1.png create mode 100644 reference_designs/Figure_2.png create mode 100644 reference_designs/salinity.ods create mode 100644 reference_designs/salinity_r100k.csv create mode 100644 reference_designs/salinity_r10k.csv create mode 100644 reference_designs/salinity_r1k.csv create mode 100644 reference_designs/salinity_salinitychange.csv create mode 100644 reference_designs/scripts/plot.py create mode 100644 reference_designs/scripts/plot_sal.py create mode 100644 reference_designs/scripts/plot_sal_wallplug.py create mode 100644 reference_designs/scripts/plot_wallplug.py create mode 100644 reference_designs/scripts/plot_wallplug_trials.py create mode 100644 reference_designs/test.html create mode 100644 reference_designs/wall_plug/amplified.csv create mode 100644 reference_designs/wall_plug/changesal_1k_1k.csv create mode 100644 reference_designs/wall_plug/fixed_1k_1k_5vpp.csv create mode 100644 reference_designs/wall_plug/wallplug_trials.csv create mode 100644 reference_designs/wall_plug/wallplug_trials.sc diff --git a/reference_designs/Figure_1.png b/reference_designs/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..17ae595fcd1ac69fcdc7a681f2930b036d2f2abf GIT binary patch literal 24728 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 z

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 M&Yem)arx%|0SdM04FCWD literal 0 HcmV?d00001 diff --git a/reference_designs/Figure_2.png b/reference_designs/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6d827c5bfae5f05aefea1a2cd39631e434811a04 GIT binary patch literal 26775 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 JO^o+X{{fPhFh~FZ literal 0 HcmV?d00001 diff --git a/reference_designs/salinity_r100k.csv b/reference_designs/salinity_r100k.csv new file mode 100644 index 0000000..43a0c54 --- /dev/null +++ b/reference_designs/salinity_r100k.csv @@ -0,0 +1,6 @@ +R [kΩ],Input Amplitude [Vpp],Input Frequency [Hz],Output Amplitude [Vpp],Output Phase Shift [degrees],CSV File +100.00,3.30,0.10,2.77,-7.16,scope_3 +,,1.00,3.06,-5.90,Scope_4 +,,5.00,3.26,-3.10,Scope_5 +,,10.00,3.34,-2.60,Scope_6 +,,100.00,3.50,0.00,Scope_7 diff --git a/reference_designs/salinity_r10k.csv b/reference_designs/salinity_r10k.csv new file mode 100644 index 0000000..8309ed4 --- /dev/null +++ b/reference_designs/salinity_r10k.csv @@ -0,0 +1,10 @@ +R [kΩ],Input Amplitude [Vpp],Input Frequency [Hz],Output Amplitude [Vpp],Output Phase Shift [degrees],CSV File +1.00,3.30,0.10,1.37,-35.79,scope_9 +,,1.00,1.81,-22.74,scope_10 +,,5.00,2.21,-19.74,scope_11 +,,10.00,2.30,-22.30,scope_12 +,,100.00,2.70,-7.20,scope_13 +,,250.00,2.77,-4.50,scope_14 +,,500.00,2.85,-3.00,scope_15 +,,1000.00,2.93,-2.20,scope_16 +,,5000.00,3.14,0.00,scope_17 diff --git a/reference_designs/salinity_r1k.csv b/reference_designs/salinity_r1k.csv new file mode 100644 index 0000000..8309ed4 --- /dev/null +++ b/reference_designs/salinity_r1k.csv @@ -0,0 +1,10 @@ +R [kΩ],Input Amplitude [Vpp],Input Frequency [Hz],Output Amplitude [Vpp],Output Phase Shift [degrees],CSV File +1.00,3.30,0.10,1.37,-35.79,scope_9 +,,1.00,1.81,-22.74,scope_10 +,,5.00,2.21,-19.74,scope_11 +,,10.00,2.30,-22.30,scope_12 +,,100.00,2.70,-7.20,scope_13 +,,250.00,2.77,-4.50,scope_14 +,,500.00,2.85,-3.00,scope_15 +,,1000.00,2.93,-2.20,scope_16 +,,5000.00,3.14,0.00,scope_17 diff --git a/reference_designs/salinity_salinitychange.csv b/reference_designs/salinity_salinitychange.csv new file mode 100644 index 0000000..8e6d290 --- /dev/null +++ b/reference_designs/salinity_salinitychange.csv @@ -0,0 +1,32 @@ +R [kΩ],Input Amplitude [Vpp],Input Frequency [Hz],Salinity,Output Amplitude [Vpp],Output Phase Shift [degrees],CSV File +1.00,3.30,10.00,Least Salty,4.10,-17.00,scope_18 +,,,Medium Salty,4.60,-16.50,scope_25 +,,,Most Salty,4.70,-16.20,scope_31 + +,,25.00,Least Salty,4.50,-13.76,scope_19 +,,,Medium Salty,4.40,-16.00,scope_26 +,,,Most Salty,4.80,-16.00,scope_32 + +,,50.00,Least Salty,4.70,-10.60,scope_20 +,,,Medium Salty,4.60,-13.00,scope_27 +,,,Most Salty,5.10,-12.05,scope_33 + +,,100.00,Least Salty,4.90,-9.60,scope_21 +,,,Medium Salty,4.90,-9.70,woops +,,,Most Salty,5.20,-10.33,scope_34 + +,,250.00,Least Salty,5.10,-5.70,scope_22 +,,,Medium Salty,5.10,-6.00,scope_28 +,,,Most Salty,5.50,-7.04,scope_34 + +,,500.00,Least Salty,5.20,-5.60,scope_23 +,,,Medium Salty,5.20,-5.50,scope_29 +,,,Most Salty,5.60,-4.90,scope_35 + +,,1000.00,Least Salty,5.50,-4.00,scope_24 +,,,Medium Salty,5.40,-4.00,scope_24 +,,,Most Salty,5.90,-5.00,scope_36 + +,,2500.00,Least Salty,5.80,-4.00,scope_25 +,,,Medium Salty,5.80,-4.30,scope_30 +,,,Most Salty,6.30,-2.00,scope_37 diff --git a/reference_designs/scripts/plot.py b/reference_designs/scripts/plot.py new file mode 100644 index 0000000..53f078c --- /dev/null +++ b/reference_designs/scripts/plot.py @@ -0,0 +1,5 @@ +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +data = pd.read_csv('salinity_r1k.csv') diff --git a/reference_designs/scripts/plot_sal.py b/reference_designs/scripts/plot_sal.py new file mode 100644 index 0000000..b35717d --- /dev/null +++ b/reference_designs/scripts/plot_sal.py @@ -0,0 +1,19 @@ +import numpy as np +import pandas as pd + +df = pd.read_csv('salinity_salinitychange.csv') + +least_salty = df[df['Salinity'] == 'Least Salty'] +medium_salty = df[df['Salinity'] == 'Medium Salty'] +most_salty = df[df['Salinity'] == 'Most Salty'] + +medium_salty['Input Frequency [Hz]'] = least_salty['Input Frequency [Hz]'].to_numpy() +most_salty['Input Frequency [Hz]'] = least_salty['Input Frequency [Hz]'].to_numpy() + +fig, axis = plt.subplots() + +least_salty.plot.scatter(x = 'Input Frequency [Hz]', y = 'Output Amplitude [Vpp]', ax = axis, label = 'Least Salty', c = "red") +medium_salty.plot.scatter(x = 'Input Frequency [Hz]', y = 'Output Amplitude [Vpp]', ax = axis, label = 'Meduim Salty', c = "blue") +most_salty.plot.scatter(x = 'Input Frequency [Hz]', y = 'Output Amplitude [Vpp]', ax = axis, label = 'Most Salty', c = "green") + +plt.show() diff --git a/reference_designs/scripts/plot_sal_wallplug.py b/reference_designs/scripts/plot_sal_wallplug.py new file mode 100644 index 0000000..2256810 --- /dev/null +++ b/reference_designs/scripts/plot_sal_wallplug.py @@ -0,0 +1,6 @@ +import numpy as np +import pandas as pd + +data = pd.read_csv("fixed_1k_1k_5vpp.csv") + + diff --git a/reference_designs/scripts/plot_wallplug.py b/reference_designs/scripts/plot_wallplug.py new file mode 100644 index 0000000..cfad452 --- /dev/null +++ b/reference_designs/scripts/plot_wallplug.py @@ -0,0 +1,10 @@ +import numpy as np +import pandas as pd + +data = pd.csv_read('wallplug_trials.csv') + +data.plot(kind = 'scatter', x = 'Series Resistor [Ohms].1', y = 'Differences [Vpp]') + +data['Differences Abs [Vpp]'] = data['Differences [Vpp]'].abs() + +data.plot(kind = 'scatter', x = 'Series Resistor [Ohms].1', y = 'Differences Abs [Vpp]', logx = True) diff --git a/reference_designs/scripts/plot_wallplug_trials.py b/reference_designs/scripts/plot_wallplug_trials.py new file mode 100644 index 0000000..3a92a47 --- /dev/null +++ b/reference_designs/scripts/plot_wallplug_trials.py @@ -0,0 +1,21 @@ +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +data = pd.read_csv('amplified.csv') + +plt.scatter(data['Salinity [ppt]'], data['Output Max Trial 1[Vpp]'], label = 'Trial 1', color = 'green') +plt.scatter(data['Salinity [ppt]'], data['Output Max Trial 2[Vpp]'], label = 'Trial 2', color = 'blue') +plt.scatter(data['Salinity [ppt]'], data['Output Max Trial 3[Vpp]'], label = 'Trial 3', color = 'red') +plt.scatter(data['Salinity [ppt]'], data['Output Max Trial 4[Vpp]'], label = 'Trial 4', color = 'pink') + +z = np.polyfit(data['Salinity [ppt]'], data['Output Max Trial 4[Vpp]'], 1) +p = np.poly1d(z) + +plt.legend(title='Trials') +plt.ylabel('Output Max [Vpp]', fontsize=14) +plt.xlabel('Salinity [ppt]', fontsize=14) + +plt.show() + +print(f"Trendline equation: y = {z[0]}x + {z[1]}") diff --git a/reference_designs/test.html b/reference_designs/test.html new file mode 100644 index 0000000..7122a08 --- /dev/null +++ b/reference_designs/test.html @@ -0,0 +1,66 @@ + + + + + test + + + + + + + + + + +

+ + + + + \ No newline at end of file diff --git a/reference_designs/wall_plug/amplified.csv b/reference_designs/wall_plug/amplified.csv new file mode 100644 index 0000000..daf42c8 --- /dev/null +++ b/reference_designs/wall_plug/amplified.csv @@ -0,0 +1,4 @@ +Frequency [Hz],Input Amplitude [Vpp],Rf [ohms],Salinity [ppt],Output Max Trial 1[Vpp],Output Max Trial 2[Vpp],Output Max Trial 3[Vpp],Output Max Trial 4[Vpp] +1000.00,5.00,100.00,30.00,2.40,2.33,2.31,2.31 +,,,25.00,2.25,2.23,2.25,2.25 +,,,20.00,2.17,2.13,2.17,2.17 diff --git a/reference_designs/wall_plug/changesal_1k_1k.csv b/reference_designs/wall_plug/changesal_1k_1k.csv new file mode 100644 index 0000000..35cf720 --- /dev/null +++ b/reference_designs/wall_plug/changesal_1k_1k.csv @@ -0,0 +1,16 @@ +Frequency [Hz],Series Resistor [ohms],Input Amplitude [Vpp],Salinity [ppt],U-Shape Amplitude [Vpp],U-Shape Max [Vpp] +10.00,1000.00,2.50,20.00,0.47,0.25 +,,,25.00,0.47,0.25 +,,,30.00,0.46,0.24 +Frequency [Hz],Series Resistor [ohms],Input Amplitude [Vpp],Salinity [ppt],U-Shape Amplitude [Vpp],U-Shape Max [Vpp] +100.00,1000.00,2.50,20.00,0.80,0.42 +,,,25.00,0.81,0.42 +,,,30.00,0.83,0.43 +Frequency [Hz],Series Resistor [ohms],Input Amplitude [Vpp],Salinity [ppt],U-Shape Amplitude [Vpp],U-Shape Max [Vpp] +1000.00,1000.00,2.50,20.00,1.42,0.73 +,,,25.00,1.44,0.74 +,,,30.00,1.47,0.75 +Frequency [Hz],Series Resistor [ohms],Input Amplitude [Vpp],Salinity [ppt],U-Shape Amplitude [Vpp],U-Shape Max [Vpp] +10000.00,1000.00,2.50,20.00,2.00,1.01 +,,,25.00,2.06,1.05 +,,,30.00,2.09,1.06 diff --git a/reference_designs/wall_plug/fixed_1k_1k_5vpp.csv b/reference_designs/wall_plug/fixed_1k_1k_5vpp.csv new file mode 100644 index 0000000..3ce5fe1 --- /dev/null +++ b/reference_designs/wall_plug/fixed_1k_1k_5vpp.csv @@ -0,0 +1,4 @@ +Frequency [Hz],Series Resistor [ohms],Input Amplitude [Vpp],Salinity [ppt],U-Shape Amplitude [Vpp],Differences [Vpp],Full Block Amplitude [Vpp],Differences [Vpp] +1000.00,1000.00,5.00,20.00,3.05,0.03,3.23,0.08 +,,,25.00,3.08,0.04,3.31,0.04 +,,,30.00,3.12,0.07,3.36,0.13 diff --git a/reference_designs/wall_plug/wallplug_trials.csv b/reference_designs/wall_plug/wallplug_trials.csv new file mode 100644 index 0000000..6a573a2 --- /dev/null +++ b/reference_designs/wall_plug/wallplug_trials.csv @@ -0,0 +1,16 @@ +Frequency [Hz],Input Amplitude [Vpp],Salinity [ppt],Series Resistor [Ohms],Output Amplitude [Vpp],,Series Resistor [Ohms],Differences [Vpp] +1000.00,5.00,30.00,10.00,0.40,,10.00,-0.06 +,,25.00,10.00,0.38,,100.00,-0.22 +,,20.00,10.00,0.34,,1000.00,-0.10 +,,30.00,100.00,2.19,,10000.00,-0.02 +,,25.00,100.00,2.09,,100000.00,0.00 +,,20.00,100.00,1.97 +,,30.00,1000.00,4.37 +,,25.00,1000.00,4.36 +,,20.00,1000.00,4.27 +,,30.00,10000.00,4.95 +,,25.00,10000.00,4.95 +,,20.00,10000.00,4.93 +,,30.00,100000.00,5.00 +,,25.00,100000.00,5.00 +,,20.00,100000.00,5.00 diff --git a/reference_designs/wall_plug/wallplug_trials.sc b/reference_designs/wall_plug/wallplug_trials.sc new file mode 100644 index 0000000..34e697f --- /dev/null +++ b/reference_designs/wall_plug/wallplug_trials.sc @@ -0,0 +1,126 @@ +# This data file was generated by the Spreadsheet Calculator Improvised (sc-im) +# You almost certainly shouldn't edit it. + +newsheet "New Design" +newsheet "Amplified" +movetosheet "New Design" +offscr_sc_cols 0 +offscr_sc_rows 0 +nb_frozen_rows 0 +nb_frozen_cols 0 +nb_frozen_screenrows 0 +nb_frozen_screencols 0 +format A 14 2 0 +format B 21 2 0 +format C 17 2 0 +format D 22 2 0 +format E 22 2 0 +format G 23 2 0 +format H 19 2 0 +label A0 = "Frequency [Hz]" +label B0 = "Input Amplitude [Vpp]" +label C0 = "Salinity [ppt]" +label D0 = "Series Resistor [Ohms]" +label E0 = "Output Amplitude [Vpp]" +label G0 = "Series Resistor [Ohms]" +label H0 = "Differences [Vpp]" +let A1 = 1000 +let B1 = 5 +let C1 = 30 +let D1 = 10 +let E1 = 0.399 +let G1 = 10 +let H1 = E3-E1 +let C2 = 25 +let D2 = 10 +let E2 = 0.37625 +let G2 = 100 +let H2 = E6-E4 +let C3 = 20 +let D3 = 10 +let E3 = 0.34125 +let G3 = 1000 +let H3 = E9-E7 +let C4 = 30 +let D4 = 100 +let E4 = 2.1895 +let G4 = 10000 +let H4 = E12-E10 +let C5 = 25 +let D5 = 100 +let E5 = 2.09175 +let G5 = 100000 +let H5 = E15-E13 +let C6 = 20 +let D6 = 100 +let E6 = 1.972 +let C7 = 30 +let D7 = 1000 +let E7 = 4.37175 +let C8 = 25 +let D8 = 1000 +let E8 = 4.35725 +let C9 = 20 +let D9 = 1000 +let E9 = 4.27025 +let C10 = 30 +let D10 = 10000 +let E10 = 4.95 +let C11 = 25 +let D11 = 10000 +let E11 = 4.95 +let C12 = 20 +let D12 = 10000 +let E12 = 4.92525 +let C13 = 30 +let D13 = 100000 +let E13 = 4.995 +let C14 = 25 +let D14 = 100000 +let E14 = 4.995 +let C15 = 20 +let D15 = 100000 +let E15 = 4.995 +goto A0 +movetosheet "Amplified" +offscr_sc_cols 0 +offscr_sc_rows 0 +nb_frozen_rows 0 +nb_frozen_cols 0 +nb_frozen_screenrows 0 +nb_frozen_screencols 0 +format A 14 2 0 +format B 21 2 0 +format C 14 2 0 +format D 21 2 0 +format E 23 2 0 +format F 23 2 0 +format G 23 2 0 +format H 23 2 0 +label A0 = "Frequency [Hz]" +label B0 = "Input Amplitude [Vpp]" +label C0 = "Rf [ohms]" +label D0 = "Salinity [ppt]" +label E0 = "Output Max Trial 1[Vpp]" +label F0 = "Output Max Trial 2[Vpp]" +label G0 = "Output Max Trial 3[Vpp]" +label H0 = "Output Max Trial 4[Vpp]" +let A1 = 1000 +let B1 = 5 +let C1 = 100 +let D1 = 30 +let E1 = 2.4 +let F1 = 2.33 +let G1 = 2.31 +let H1 = 2.31 +let D2 = 25 +let E2 = 2.25 +let F2 = 2.23 +let G2 = 2.25 +let H2 = 2.25 +let D3 = 20 +let E3 = 2.17 +let F3 = 2.13 +let G3 = 2.17 +let H3 = 2.17 +goto A3