small changes
This commit is contained in:
parent
2e806a610e
commit
6296ae3122
@ -35,8 +35,10 @@ class ChartWindow(AbstractWindow):
|
||||
self.parent = parent
|
||||
|
||||
(a, eps) = self.make_grad()
|
||||
print(*a)
|
||||
self.make_main(a, eps)
|
||||
|
||||
|
||||
self.setWindowTitle('Основной эксперимент. Обработка данных')
|
||||
self.resize(1400, 800)
|
||||
|
||||
@ -54,9 +56,10 @@ class ChartWindow(AbstractWindow):
|
||||
self.text = QTextBrowser()
|
||||
text = self.make_text()
|
||||
self.parent.text_name = 'Results.txt'
|
||||
with open(os.path.join(self.parent.folder, self.parent.text_name), 'w') as file:
|
||||
file.write(text)
|
||||
self.text.setText(text)
|
||||
# with open(os.path.join(self.parent.folder, self.parent.text_name), 'w') as file:
|
||||
# file.write(text)
|
||||
# self.text.setText(text)
|
||||
print(text)
|
||||
|
||||
self.hbox_layout = QGridLayout(self.centralwidget)
|
||||
self.hbox_layout.addWidget(self.label, 0, 0)
|
||||
@ -82,12 +85,12 @@ class ChartWindow(AbstractWindow):
|
||||
self.parent.data_grad.make_point_grafic()
|
||||
|
||||
a, sigma = curve_fit(
|
||||
self.B, self.parent.data_grad.x, self.parent.data_grad.y)
|
||||
self.B, self.parent.data_grad.x/1000, self.parent.data_grad.y/10**3)
|
||||
sigma = abs(np.sqrt(np.diag(sigma))/a)
|
||||
eps = (np.min(sigma)**2+(0.0035/100)**2+0.02**2)**0.5
|
||||
x_range = np.arange(min(self.parent.data_grad.x),
|
||||
max(self.parent.data_grad.x), step=0.001)
|
||||
y_fit = self.B(x_range, a[0], a[1], a[2])
|
||||
y_fit = self.B(x_range/1000, a[0], a[1], a[2])*10**3
|
||||
plt.plot(x_range, y_fit)
|
||||
plt.savefig(os.path.join(
|
||||
self.parent.folder,
|
||||
@ -104,7 +107,7 @@ class ChartWindow(AbstractWindow):
|
||||
e = np.array((self.parent.data_main.data['U_34,mV'] -
|
||||
self.parent.data_main.data['U_0,mV'])/10**3)
|
||||
b = np.array(
|
||||
self.B(self.parent.data_main.data['I_M,mA'], a[0], a[1], a[2]))
|
||||
self.B(self.parent.data_main.data['I_M,mA']/10**3, a[0], a[1], a[2]))
|
||||
eds = chr(949)
|
||||
self.parent.data_main.x = np.array(
|
||||
self.parent.data_main.data['I_0,mA']*b)
|
||||
@ -128,22 +131,24 @@ class ChartWindow(AbstractWindow):
|
||||
|
||||
self.parent.sigma_b = self.parent.b*((self.parent.sigma_sigma/self.parent.sigma)**2 +
|
||||
(sigma[0]/k)**2)**0.5
|
||||
print(sigma[0]/ k)
|
||||
|
||||
def make_text(self):
|
||||
s0 = 'Вычисленные постоянные равны:'+'\n' +\
|
||||
'R_X - постоянная Холла, '+'\n'+' n - концентрация носителей заряда,'+'\n' +\
|
||||
'sigma - удельная проводимость, '+'\n'+' b - подвижность'+'\n'+'\n'
|
||||
|
||||
s1 = 'R_X = ' + str(round(self.parent.R_H*10**10)) + ' +- ' + \
|
||||
str(round(self.parent.sigma_R_H*10**10)) + \
|
||||
s1 = 'R_X = ' + str(int(round(self.parent.R_H*10**10, -1))) + ' +- ' + \
|
||||
str(int(round(self.parent.sigma_R_H*10**10, -1))) + \
|
||||
' , 10^-10 м^3/Кл'+'\n'+'\n'
|
||||
s2 = 'n = ' + str(round(self.parent.n)) + ' +- ' + \
|
||||
str(round(self.parent.sigma_n)) + ' , 1/м^3'+'\n'+'\n'
|
||||
s2 = 'n = ' + str(int(round(self.parent.n, -1))) + ' +- ' + \
|
||||
str(int(round(self.parent.sigma_n, -1))) + ' , 10^21 1/м^3'+'\n'+'\n'
|
||||
s3 = 'sigma = ' + str(round(self.parent.sigma)) + ' +- ' + \
|
||||
str(round(self.parent.sigma_sigma)) + ', 1/(Ом*м)'+'\n'+'\n'
|
||||
|
||||
s4 = 'b = ' + str(round(self.parent.b*10**4)) + ' +- ' + \
|
||||
str(round(self.parent.sigma_b*10**4)) + ', см^3/(В*с)'+'\n'+'\n'
|
||||
s4 = 'b = ' + str(round(self.parent.b*10**4), 2) + ' +- ' + \
|
||||
str(round(self.parent.sigma_b*10**4), 2) + ', см^2/(В*с)'+'\n'+'\n'
|
||||
|
||||
|
||||
|
||||
return s0+s1+s2+s3+s4
|
||||
|
@ -78,7 +78,7 @@ class GraduationWindow(AbstractWindow):
|
||||
|
||||
def enter_value(self):
|
||||
self.lineEdit.setReadOnly(True)
|
||||
self.take_data()
|
||||
self.no_data()
|
||||
self.lineEdit.clear()
|
||||
self.lineEdit.setReadOnly(False)
|
||||
|
||||
@ -98,6 +98,7 @@ class GraduationWindow(AbstractWindow):
|
||||
for i in range(len(data)):
|
||||
self.table.setItem(self.table.rowCount()-1, i,
|
||||
QTableWidgetItem(str(data[i])))
|
||||
self.table.scrollToBottom()
|
||||
|
||||
def take_data(self):
|
||||
t = (round(time.time()*1000)-self.start_time)
|
||||
|
1
Automation/Induction_data.csv
Normal file
1
Automation/Induction_data.csv
Normal file
@ -0,0 +1 @@
|
||||
"B,mTl","E,mV","I_M,mA","t,ms"
|
|
@ -32,7 +32,7 @@ class Start:
|
||||
self.app = QApplication.instance()
|
||||
self.current=0
|
||||
self.window = StartWindow(self)
|
||||
self.add_equip()
|
||||
# self.add_equip()
|
||||
|
||||
self.draw()
|
||||
self.app.exec()
|
||||
@ -147,7 +147,7 @@ class StartWindow(AbstractWindow):
|
||||
self.chart.setEnabled(False)
|
||||
self.chart_text = QLabel('Выполняется расчет всех констант образца и построение графиков', self)
|
||||
|
||||
self.main = QPushButton('Основной эксперимент')
|
||||
self.main = QPushButton('Определение ЭДС Холла')
|
||||
self.main.clicked.connect(self.main_click)
|
||||
if not self.parent.current==1:
|
||||
self.main.setEnabled(False)
|
||||
@ -203,6 +203,17 @@ class StartWindow(AbstractWindow):
|
||||
self.flow.setEnabled(True)
|
||||
self.lineEdit.setReadOnly(True)
|
||||
|
||||
def testing_analisis(self):
|
||||
self.chart.setEnabled(True)
|
||||
self.parent.foldername = 'Перерптлв'
|
||||
self.parent.folder = os.path.join(os.getcwd(), self.parent.foldername)
|
||||
if not os.path.exists(self.parent.folder):
|
||||
os.mkdir(self.parent.folder)
|
||||
self.parent.dataname = 'data.csv'
|
||||
self.parent.flow_dataname = 'Induction_data.csv'
|
||||
self.parent.a=2*10**-3
|
||||
self.parent.sigma = -313
|
||||
self.parent.sigma_sigma=0
|
||||
|
||||
|
||||
|
||||
|
@ -20,13 +20,17 @@ from PyQt6.QtWidgets import (QLabel,
|
||||
QGridLayout,
|
||||
QTableWidgetItem,
|
||||
QHeaderView,
|
||||
QTextBrowser)
|
||||
QTextBrowser,
|
||||
QDialog,
|
||||
QDialogButtonBox,
|
||||
QVBoxLayout
|
||||
)
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
from Analisis_data import Data
|
||||
from Abstract_window import AbstractWindow
|
||||
|
||||
|
||||
class ThreadData(QtCore.QThread):
|
||||
|
||||
def __init__(self, parent):
|
||||
QtCore.QThread.__init__(self)
|
||||
self.running = False
|
||||
@ -38,18 +42,35 @@ class ThreadData(QtCore.QThread):
|
||||
self.parent.take_data()
|
||||
self.sleep(1)
|
||||
|
||||
class ThreadWarning(QtCore.QThread):
|
||||
def __init__(self, parent):
|
||||
QtCore.QThread.__init__(self)
|
||||
self.running = False
|
||||
self.parent = parent
|
||||
|
||||
def run(self):
|
||||
self.running = True
|
||||
while self.running:
|
||||
self.sleep(1)
|
||||
self.dlg.show()
|
||||
|
||||
|
||||
|
||||
|
||||
class MainWindow(AbstractWindow):
|
||||
def __init__(self, parent):
|
||||
super().__init__()
|
||||
|
||||
self.setWindowTitle('Основной эксперимент. Получение данных')
|
||||
self.setWindowTitle('Определение ЭДС Холла')
|
||||
self.parent = parent
|
||||
|
||||
self.data_thread = ThreadData(self)
|
||||
# self.thread = ThreadWarning(self)
|
||||
self.resize(1400, 800)
|
||||
self.number_iteration = 1
|
||||
self.start_time = 0
|
||||
self.volt = 0.05
|
||||
self.U_0={}
|
||||
|
||||
# make masthead
|
||||
self.parent.dataname = 'data.csv'
|
||||
@ -85,22 +106,25 @@ class MainWindow(AbstractWindow):
|
||||
self.table = QTableWidget(self)
|
||||
self.table.setColumnCount(len(heads))
|
||||
self.table.setRowCount(0)
|
||||
|
||||
rowPosition = self.table.rowCount()
|
||||
it = QTableWidgetItem(str(rowPosition))
|
||||
self.table.setHorizontalHeaderLabels(heads)
|
||||
header = self.table.horizontalHeader()
|
||||
for i in range(len(heads)):
|
||||
header.setSectionResizeMode(i, QHeaderView.ResizeMode.Stretch)
|
||||
self.table.resizeColumnsToContents()
|
||||
self.table.scrollToItem(it)
|
||||
|
||||
# Adding the table to the grid
|
||||
self.grid_layout.addWidget(self.table, 0, 0, -1, 1)
|
||||
self.grid_layout.addWidget(self.lineEdit, 0, 2, 1, -1)
|
||||
self.grid_layout.addWidget(self.start, 1, 2)
|
||||
self.grid_layout.addWidget(self.stop, 1, 3)
|
||||
self.grid_layout.addWidget(self.new, 2, 2, 1, -1)
|
||||
self.grid_layout.addWidget(self.menu, 3, 2, 1, -1)
|
||||
self.grid_layout.addWidget(self.table, 1, 0, -1, 1)
|
||||
self.grid_layout.addWidget(self.lineEdit, 1, 2, 1, -1)
|
||||
self.grid_layout.addWidget(self.start, 2, 2)
|
||||
self.grid_layout.addWidget(self.stop, 2, 3)
|
||||
self.grid_layout.addWidget(self.new, 3, 2, 1, -1)
|
||||
self.grid_layout.addWidget(self.menu, 4, 2, 1, -1)
|
||||
|
||||
def enter_a(self):
|
||||
# TODO
|
||||
self.parent.a = float(self.lineEdit.text())/10**3
|
||||
self.start.setEnabled(True)
|
||||
self.lineEdit.setReadOnly(True)
|
||||
@ -139,15 +163,16 @@ class MainWindow(AbstractWindow):
|
||||
current_time = round(time.time()*1000)
|
||||
v = str((current_time-self.start_time)/60)
|
||||
t = str(current_time-self.start_time)
|
||||
if self.number_iteration == 0:
|
||||
self.u_0 = v
|
||||
a = str(float(v)/100)
|
||||
self.u_0 = v
|
||||
a = str(float(v)/10)
|
||||
I_M = v
|
||||
self.save_data([v, I_M, self.u_0, a,
|
||||
self.save_data([v, I_M, self.u_0, a, self.volt,
|
||||
self.number_iteration, t])
|
||||
if float(a) > 1:
|
||||
self.stop_clicked()
|
||||
|
||||
|
||||
|
||||
def save_data(self, data):
|
||||
with open(os.path.join(self.parent.folder, self.parent.dataname), 'a') as file:
|
||||
wr = csv.writer(file)
|
||||
@ -156,6 +181,7 @@ class MainWindow(AbstractWindow):
|
||||
for i in range(len(data)):
|
||||
self.table.setItem(self.table.rowCount()-1, i,
|
||||
QTableWidgetItem(str(data[i])))
|
||||
self.table.scrollToBottom()
|
||||
|
||||
def take_data(self):
|
||||
|
||||
@ -172,9 +198,6 @@ class MainWindow(AbstractWindow):
|
||||
f_amp = open(self.parent.I_M_name, 'w')
|
||||
f_amp.write('Measure:Current:DC?\n')
|
||||
f_amp.close()
|
||||
f_amp = open(self.parent.I_M_name, 'r')
|
||||
I_M = '{:.9f}'.format(float(f_amp.read(15))*10**3)
|
||||
f_amp.close()
|
||||
|
||||
f_volt = open(self.parent.volt_name, 'w')
|
||||
f_volt.write('Measure:Voltage:DC?\n')
|
||||
@ -183,23 +206,31 @@ class MainWindow(AbstractWindow):
|
||||
f_amp.write('Measure:Current:DC?\n')
|
||||
f_amp.close()
|
||||
|
||||
f_amp = open(self.parent.I_M_name, 'r')
|
||||
I_M = '{:.9f}'.format(float(f_amp.read(15))*10**3)
|
||||
f_amp.close()
|
||||
|
||||
f_volt = open(self.parent.volt_name, 'r')
|
||||
v = '{:.9f}'.format(float(f_volt.read(15))*10**3)
|
||||
if float(current_time-self.this_time) <= 100:
|
||||
self.u_0 = v
|
||||
try:
|
||||
self.u_0 = self.U_0[self.volt]
|
||||
except KeyError:
|
||||
self.U_0[self.volt] = v
|
||||
self.u_0 = self.U_0[self.volt]
|
||||
|
||||
f_amp = open(self.parent.amp_name, 'r')
|
||||
a = '{:.9f}'.format(float(f_amp.read(15))*10**3)
|
||||
print((current_time-self.this_time) )
|
||||
# protect of errors:
|
||||
if float(a) > 1:
|
||||
if float(a) > 1 or self.table.rowCount()>=15*self.number_iteration:
|
||||
self.stop_clicked()
|
||||
|
||||
f_volt.close()
|
||||
f_amp.close()
|
||||
self.volt += 0.05
|
||||
|
||||
self.save_data([v, I_M, self.u_0, a, self.volt,
|
||||
self.number_iteration, t])
|
||||
self.volt += 0.05
|
||||
|
||||
|
||||
def closeEvent(self, event):
|
||||
self.data_thread.running = False
|
||||
|
@ -20,6 +20,6 @@
|
||||
\@nameuse{bbl@beforestart}
|
||||
\catcode `"\active
|
||||
\babel@aux{russian}{}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Схема установки для исследования эффекта Холла в полупроводниках}}{1}{figure.1}\protected@file@percent }
|
||||
\newlabel{установка}{{1}{1}{Схема установки для исследования эффекта Холла в полупроводниках}{figure.1}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Схема установки для исследования эффекта Холла в полупроводниках}}{2}{figure.1}\protected@file@percent }
|
||||
\newlabel{установка}{{1}{2}{Схема установки для исследования эффекта Холла в полупроводниках}{figure.1}{}}
|
||||
\gdef \@abspage@last{4}
|
||||
|
@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2022.11.26) 28 NOV 2022 12:31
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2022.11.26) 3 DEC 2022 23:50
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@ -724,66 +724,66 @@ LaTeX Font Info: Trying to load font information for T2A+cmss on input line
|
||||
File: t2acmss.fd 2001/08/11 v1.0a Computer Modern Cyrillic font definitions
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for PD1+cmr on input line 5
|
||||
2.
|
||||
LaTeX Font Info: No file PD1cmr.fd. on input line 52.
|
||||
4.
|
||||
LaTeX Font Info: No file PD1cmr.fd. on input line 54.
|
||||
|
||||
|
||||
LaTeX Font Warning: Font shape `PD1/cmr/m/up' undefined
|
||||
(Font) using `PD1/pdf/m/n' instead on input line 52.
|
||||
(Font) using `PD1/pdf/m/n' instead on input line 54.
|
||||
|
||||
LaTeX Font Info: Trying to load font information for PU+cmr on input line 52
|
||||
LaTeX Font Info: Trying to load font information for PU+cmr on input line 54
|
||||
.
|
||||
LaTeX Font Info: No file PUcmr.fd. on input line 52.
|
||||
LaTeX Font Info: No file PUcmr.fd. on input line 54.
|
||||
|
||||
LaTeX Font Warning: Font shape `PU/cmr/m/up' undefined
|
||||
(Font) using `PU/pdf/m/n' instead on input line 52.
|
||||
(Font) using `PU/pdf/m/n' instead on input line 54.
|
||||
|
||||
|
||||
LaTeX Font Warning: Font shape `T2A/cmr/m/up' undefined
|
||||
(Font) using `T2A/cmr/m/n' instead on input line 52.
|
||||
(Font) using `T2A/cmr/m/n' instead on input line 54.
|
||||
|
||||
LaTeX Font Info: Trying to load font information for OML+cmr on input line 5
|
||||
2.
|
||||
4.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/omlcmr.fd
|
||||
File: omlcmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
|
||||
)
|
||||
|
||||
LaTeX Font Warning: Font shape `OML/cmr/m/up' undefined
|
||||
(Font) using `OML/cmr/m/it' instead on input line 52.
|
||||
(Font) using `OML/cmr/m/it' instead on input line 54.
|
||||
|
||||
LaTeX Font Info: Font shape `OML/cmr/m/it' in size <12> not available
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 52.
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 54.
|
||||
LaTeX Font Info: Font shape `OML/cmr/m/up' in size <8> not available
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 52.
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 54.
|
||||
LaTeX Font Info: Font shape `OML/cmr/m/up' in size <6> not available
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 52.
|
||||
(Font) Font shape `OML/cmm/m/it' tried instead on input line 54.
|
||||
LaTeX Font Info: Trying to load font information for OMS+cmr on input line 5
|
||||
2.
|
||||
4.
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd
|
||||
File: omscmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
|
||||
)
|
||||
|
||||
LaTeX Font Warning: Font shape `OMS/cmr/m/up' undefined
|
||||
(Font) using `OMS/cmr/m/n' instead on input line 52.
|
||||
(Font) using `OMS/cmr/m/n' instead on input line 54.
|
||||
|
||||
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 52.
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 54.
|
||||
LaTeX Font Info: Font shape `OMS/cmr/m/up' in size <8> not available
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 52.
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 54.
|
||||
LaTeX Font Info: Font shape `OMS/cmr/m/up' in size <6> not available
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 52.
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 52.
|
||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 54.
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 54.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 52.
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 54.
|
||||
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+wasy on input line 52
|
||||
LaTeX Font Info: Trying to load font information for U+wasy on input line 54
|
||||
.
|
||||
|
||||
(/usr/share/texlive/texmf-dist/tex/latex/wasysym/uwasy.fd
|
||||
@ -792,13 +792,16 @@ File: uwasy.fd 2020/01/19 v2.4 Wasy-2 symbol font definitions
|
||||
<Установка.png, id=4, 781.92125pt x 747.79375pt>
|
||||
File: Установка.png Graphic file (type png)
|
||||
<use Установка.png>
|
||||
Package pdftex.def Info: Установка.png used on input line 60.
|
||||
Package pdftex.def Info: Установка.png used on input line 62.
|
||||
(pdftex.def) Requested size: 367.60695pt x 351.5658pt.
|
||||
[1
|
||||
|
||||
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./Установка.png>]
|
||||
[2] [3] [4]
|
||||
(./Manual.aux)
|
||||
|
||||
LaTeX Warning: `!h' float specifier changed to `!ht'.
|
||||
|
||||
[1
|
||||
|
||||
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2 <./Установка.p
|
||||
ng>] [3] [4] (./Manual.aux)
|
||||
|
||||
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
|
||||
|
||||
@ -806,13 +809,13 @@ Package rerunfilecheck Info: File `Manual.out' has not changed.
|
||||
(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
13708 strings out of 478287
|
||||
209314 string characters out of 5849288
|
||||
523209 words of memory out of 5000000
|
||||
31674 multiletter control sequences out of 15000+600000
|
||||
480337 words of font info for 58 fonts, out of 8000000 for 9000
|
||||
13726 strings out of 478287
|
||||
209473 string characters out of 5849288
|
||||
528209 words of memory out of 5000000
|
||||
31679 multiletter control sequences out of 15000+600000
|
||||
481207 words of font info for 59 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
60i,7n,63p,767b,440s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
60i,7n,63p,555b,494s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t2a.enc}</usr/share/texli
|
||||
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texlive/tex
|
||||
mf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist
|
||||
@ -821,11 +824,12 @@ type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/pu
|
||||
blic/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/a
|
||||
msfonts/cm/cmsy8.pfb></usr/share/texmf/fonts/type1/public/cm-super/sfbx1200.pfb
|
||||
></usr/share/texmf/fonts/type1/public/cm-super/sfrm1200.pfb></usr/share/texmf/f
|
||||
onts/type1/public/cm-super/sfsx1200.pfb>
|
||||
Output written on Manual.pdf (4 pages, 173871 bytes).
|
||||
onts/type1/public/cm-super/sfsx1200.pfb></usr/share/texmf/fonts/type1/public/cm
|
||||
-super/sfti1200.pfb>
|
||||
Output written on Manual.pdf (4 pages, 207082 bytes).
|
||||
PDF statistics:
|
||||
101 PDF objects out of 1000 (max. 8388607)
|
||||
74 compressed objects within 1 object stream
|
||||
23 named destinations out of 1000 (max. 500000)
|
||||
120 PDF objects out of 1000 (max. 8388607)
|
||||
91 compressed objects within 1 object stream
|
||||
35 named destinations out of 1000 (max. 500000)
|
||||
6 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
@ -35,16 +35,18 @@
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
\textsf{\textbf{3.3.4 ЭФФЕКТ ХОЛЛА В ПОЛУПРОВОДНИКАХ}}
|
||||
\textsf{\textbf{3.3.4A ЭФФЕКТ ХОЛЛА В ПОЛУПРОВОДНИКАХ}}
|
||||
\end{center}
|
||||
|
||||
\textbf{Цель работы:} измерение подвижности и концентрации носителей заряда
|
||||
в полупроводниках.
|
||||
|
||||
\textbf{В работе используются:} электромагнит с регулируемым источником питания; вольтметр; амперметр; миллиамперметр; миллитесламетр; источник питания, образцы легированного германия.
|
||||
\textbf{В работе используются:} электромагнит с регулируемым источником питания; вольтметр; амперметр; миллиамперметр; миллитесламетр; источник питания, образцы легированного германия, программное обеспечение.
|
||||
|
||||
Перед выполнением работы необходимо ознакомиться с основами элементарной теории движения носителей заряда в металлах и полупроводниках (п. 4 введения к разделу).
|
||||
|
||||
Работа выполняется при помощи программного обеспечения, связь с приборами осуществляется через цифровой интерфейс RS-232 при помощи USB-портов.
|
||||
|
||||
В работе изучаются особенности проводимости полупроводников в
|
||||
геометрии мостика Холла. Ток пропускается по плоской полупроводниковой пластинке, помещённой в перпендикулярное пластинке магнитное
|
||||
поле. Измеряется разность потенциалов между краями пластинки в поперечном к току направлении. По измерениям определяется константа
|
||||
@ -107,10 +109,14 @@ U_\perp = U_{34} - U_0
|
||||
|
||||
\begin{enumerate}
|
||||
\item Работа будет состоять из 4 частей: градуировка электромагнита, основной эксперимент (эфект холла), определение знака носителей, измерение удельной проводимости.
|
||||
\item Соберите установку согласно схеме на рис. \ref{установка}, подключите к вольтметру контакты 3 и 4.
|
||||
\item Запустите программу <<Эффект Холла>>
|
||||
\item Соберите установку согласно схеме на рис. \ref{установка}, подключите к вольтметру контакты 3 и 4. Убедитесь, что источник питания электромагнита выключен, включите амперметры и вольтметры.
|
||||
\item Запустите программу <<Эффект Холла>>.
|
||||
\item Введите фамилие в поле <<Введите фамилию>>, нажмите клавишу ENTER.
|
||||
|
||||
\begin{center}
|
||||
\textit{I. Градуировка электромагнита.}
|
||||
\end{center}
|
||||
|
||||
\item Для проведения градуировки электромагнита ознакомьтесь с устройством и принципом работы измерителя магнитной индукции ATE-8702. Техническое описание (ТО) расположено на установке.
|
||||
Включите измеритель индукции кнопкой <<POWER>>; через 2-3 секунды последовательным нажатием кнопки <<MODE>> установите режим измерения в постоянном поле <<$a_1$>> (см. рис. 2 ТО).
|
||||
|
||||
@ -120,10 +126,24 @@ U_\perp = U_{34} - U_0
|
||||
|
||||
\item Установите ручки регулировки источника питания электромагнита в минимальное положение и нажмите на кнопку <<Градуировка электромагнита>>. Для начала эксперимента нажмите кнопку <<Старт>>.
|
||||
|
||||
Получите калибровочную кривую электромагнита: измерьте магнитную индукцию миллитесламетром, полученное значение введите в поле <<Индукция>>, нажмите клавишу ENTER, плавно измените ток питания электромагнита. Повторите для 15-20 значений тока питания электромагнита.
|
||||
\item После окончания калибровки выйдите в меню программы с помощью клавиши <<Меню>>. Перейдите к выполнению основного эксперимента кнопкой <<Основной эксперимент>>.
|
||||
\item Введите $a$ в поле <<Введите a>>, нажмите клавишу ENTER. Установите ручки регулировки источника питания электромагнита в минимальное положение, нажмите кнопку <<Старт>>. Снимите 15 точек, затем, остановив процесс кнопкой <<Стоп>>, измените ток на источнике питания электромагнита. Запустите получение данных кнопкой <<Новое напряжение>>. Повторите для 10-12 значений тока на источнике питания электромагнита.
|
||||
\item После окончания основного эксперимента выйдете в основное меню программы кнопкой <<Меню>>. Перейдите к определению знаку носителей заряда кнопкой <<Основной эксперимент>>.
|
||||
Получите калибровочную кривую электромагнита: измерьте магнитную индукцию миллитесламетром, полученное значение введите в поле <<Индукция>>, нажмите клавишу ENTER, измените ток питания электромагнита (на $5-7$ B). Повторите для 15-20 значений тока питания электромагнита.
|
||||
\item После окончания калибровки уберите миллитесламетр в коробку, выйдите в меню программы с помощью клавиши <<Меню>>.
|
||||
|
||||
\begin{center}
|
||||
\textit{II. Определение ЭДС Холла.}
|
||||
\end{center}
|
||||
|
||||
\item Вставьте образец в зазор электромагнита. Перейдите к определению ЭДС Холла кнопкой <<Определение ЭДС Холла>>.
|
||||
\item Введите $a$ в поле <<Введите a>>, нажмите клавишу ENTER. Установите ручки регулировки источника питания электромагнита в минимальное положение, нажмите кнопку <<Старт>>. Подождите, пока с приборов будет получено 15 значений.
|
||||
\item Необходимо следить за ходом программы: получение данных может остановлено при слишком больших значения тока или после получения 15 точек.
|
||||
|
||||
\item Остановите процесс кнопкой <<Стоп>>, измените ток на источнике питания электромагнита (на $8-12$ B). Запустите получение данных кнопкой <<Новое напряжение>>. Повторите для 10-12 значений тока на источнике питания электромагнита.
|
||||
|
||||
\begin{center}
|
||||
\textit{III. Определение знака носителей.}
|
||||
\end{center}
|
||||
|
||||
\item После окончания основного эксперимента выйдете в основное меню программы кнопкой <<Меню>>. Перейдите к определению знаку носителей заряда кнопкой <<Знак носителей>>.
|
||||
\item Определите знак носителей заряда в образце. Для этого необходимо
|
||||
знать направление тока через образец, направление магнитного поля
|
||||
и знак ЭДС Холла.
|
||||
@ -131,13 +151,49 @@ U_\perp = U_{34} - U_0
|
||||
Направление тока в образце показано знаками <<+>> и <<->> на рис. \ref{установка}.
|
||||
Направление тока в обмотках электромагнита при установке разъёма $K_1$ в положение 1 показано стрелкой на торце магнита.
|
||||
|
||||
Измерьте разность потенциалов без магнитного поля (установите ручки регулировки источника питания электромагнита в минимальное положение, нажмите кнопку <<Без поля>>). Подайте небольшое напряжение на электромагнит, нажмите кнопку <<С полем>>. Определите характер проводимости образца (дырочный или электронный).
|
||||
Измерьте разность потенциалов без магнитного поля (установите ручки регулировки источника питания электромагнита в минимальное положение, нажмите кнопку <<Без поля>>). Подайте небольшое напряжение на электромагнит ($~10$ B), нажмите кнопку <<С полем>>. Зафиксируйте результаты.
|
||||
|
||||
\begin{center}
|
||||
\textit{IV. Измерение удельной проводимости.}
|
||||
\end{center}
|
||||
|
||||
\item Выключите источник питания электромагнита, перейдите в основное меню программы кнопкой <<Меню>>. Перейдите к измерению удельной проводимости соответствующей кнопкой.
|
||||
\item Удалите держатель с образцом из зазора электромагнита; подключите к клемма <<U>> и <<0>> вольтметра провода 3 и 5; введите параметры образца в соответствующие поля (после ввода обязательно нажать клавишу <<ENTER>>). Введите $L$ в поле <<Введите L>> и $l$ в поле <<Введите l>>, нажмите кнопку <<Старт>>.
|
||||
|
||||
\begin{center}
|
||||
\textit{V. Обработка результатов.}
|
||||
\end{center}
|
||||
|
||||
\item Перейдите в основное меню программы. Для получения графиков и постоянных из эксперимента нажмите на кнопку <<Обработка данных>>.
|
||||
\item Разберите установку, все полученные данные и графики хранятся в папке с вашей фамилией, сохраните их себе, например, на флешку.
|
||||
|
||||
\begin{center}
|
||||
\textit{VI. Выводы.}
|
||||
\end{center}
|
||||
\item Определите характер проводимости образца (дырочный или электронный) по направлению тока и по знаку постоянной Холла.
|
||||
|
||||
\item Сделайте вывод об адекватности полученных констант. При необходимости обработайте данные самостоятельно.
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\begin{center}
|
||||
\textsf{\textbf{Контрольные вопросы.}}
|
||||
\end{center}
|
||||
|
||||
\begin{enumerate}
|
||||
|
||||
\item Какие вещества называют диэлектриками, проводниками, полупроводниками? Чем объясняется различие их электрических свойств? Как зависит
|
||||
от температуры проводимость металлов и полупроводников?
|
||||
\item Дайте определение константы Холла. Как зависит константа Холла от температуры у металлов и полупроводников?
|
||||
\item Зависит ли результат измерения константы Холла от геометрии образца?
|
||||
\item Зависит ли сопротивление образца от магнитного поля в условиях опыта?
|
||||
\item Как устроен милливеберметр? Зависят ли его показания от сопротивления измерительной катушки? Каким должно быть это сопротивление по
|
||||
сравнению с сопротивлением катушки прибора?
|
||||
\item По результатам измерений оцените частоту столкновений, длину пробега
|
||||
и коэффициент диффузии носителей тока в образце.
|
||||
\item Получите выражение константы Холла для материалов с двумя типами носителей. Указание: воспользуйтесь условием равенства нулю поперечного
|
||||
тока.
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
\end{document}
|
@ -77,8 +77,8 @@ class ResistanceWindow(AbstractWindow):
|
||||
print(voltage*self.parent.l*self.parent.a)
|
||||
print(current*self.parent.L)
|
||||
|
||||
self.parent.sigma = current*self.parent.L/(voltage*self.parent.l*self.parent.a)
|
||||
self.parent.sigma_sigma = self.parent.sigma*((5*10**-5)**2+(0.0035/100)**2)**0.5
|
||||
self.parent.sigma = abs(current*self.parent.L/(voltage*self.parent.l*self.parent.a))
|
||||
self.parent.sigma_sigma = abs(self.parent.sigma*((5*10**-5)**2+(0.0035/100)**2)**0.5)
|
||||
self.current_value.setText(str(current)+', mA')
|
||||
self.voltage_value.setText(str(voltage)+', mV')
|
||||
self.menu.setEnabled(True)
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3
Automation/data.csv
Normal file
3
Automation/data.csv
Normal file
@ -0,0 +1,3 @@
|
||||
"U_34,mV","I_M,mA","U_0,mV","I_0,mA","E,mV",N,"t,ms"
|
||||
0.016666666666666666,0.016666666666666666,0.016666666666666666,0.0016666666666666666,0.05,1,1
|
||||
16.7,16.7,16.7,1.67,0.05,1,1002
|
|
Binary file not shown.
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 181 KiB |
Binary file not shown.
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
Loading…
Reference in New Issue
Block a user