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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user