test for part 2 added, minor ui changes
This commit is contained in:
		
							parent
							
								
									d6f8f6f13f
								
							
						
					
					
						commit
						46b5845387
					
				@ -1,6 +1,8 @@
 | 
			
		||||
import matplotlib.pyplot as plt
 | 
			
		||||
import random
 | 
			
		||||
 | 
			
		||||
from numpy import tanh
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_point(part, num):
 | 
			
		||||
    if part == 1:
 | 
			
		||||
@ -38,8 +40,13 @@ def get_point(part, num):
 | 
			
		||||
        vol[2][num].append(random.random() * 100)
 | 
			
		||||
        cur[2][num].append(random.random() * 100)
 | 
			
		||||
    elif part == 4:
 | 
			
		||||
        vol[3][num].append(random.random() * 100)
 | 
			
		||||
        cur[3][num].append(random.random() * 100)
 | 
			
		||||
        vol[3][num].append(random.random() * 50 - 25)
 | 
			
		||||
        if experiment % 3 == 0:
 | 
			
		||||
            cur[3][num].append((83 * tanh(15.5 / 83 * vol[3][num][-1]) + 1.7 * vol[3][num][-1]) * (0.98 + random.random() / 25))
 | 
			
		||||
        elif experiment % 3 == 1:
 | 
			
		||||
            cur[3][num].append((44 * tanh(8.7 / 44 * vol[3][num][-1]) + 0.9 * vol[3][num][-1]) * (0.98 + random.random() / 25))
 | 
			
		||||
        else:
 | 
			
		||||
            cur[3][num].append((22 * tanh(4.4 / 22 * vol[3][num][-1]) + 0.5 * vol[3][num][-1]) * (0.98 + random.random() / 25))
 | 
			
		||||
 | 
			
		||||
def update_plot(part, num):
 | 
			
		||||
    for i in range(10):
 | 
			
		||||
@ -48,8 +55,10 @@ def update_plot(part, num):
 | 
			
		||||
def saveplot(part):
 | 
			
		||||
    plt.figure(figsize=(8, 6))
 | 
			
		||||
    for i in range(len(vol[part - 1])):
 | 
			
		||||
        plt.scatter(cur[part - 1][i], vol[part - 1][i], marker='o')
 | 
			
		||||
        plt.scatter(vol[part - 1][i], cur[part - 1][i], marker='o')
 | 
			
		||||
    plt.grid()
 | 
			
		||||
    plt.xlabel('Напряжение, В')
 | 
			
		||||
    plt.ylabel('Ток, мкА')
 | 
			
		||||
    plt.savefig('tmpplots/tmpplot' + str(part) + '.jpg', dpi=200)
 | 
			
		||||
    plt.close()
 | 
			
		||||
 | 
			
		||||
@ -63,12 +72,18 @@ def empty_plot(part):
 | 
			
		||||
    plt.close()
 | 
			
		||||
 | 
			
		||||
def plus_plot(part):
 | 
			
		||||
    global experiment
 | 
			
		||||
    vol[part - 1].append([])
 | 
			
		||||
    cur[part - 1].append([])
 | 
			
		||||
    experiment += 1
 | 
			
		||||
 | 
			
		||||
def minus_plot(part):
 | 
			
		||||
    vol[part - 1].pop()
 | 
			
		||||
    cur[part - 1].pop()
 | 
			
		||||
    if len(vol[part - 1]) == 0:
 | 
			
		||||
        vol[part - 1].append([])
 | 
			
		||||
        cur[part - 1].append([])
 | 
			
		||||
 | 
			
		||||
vol = [[], [], [[]], [[]]]
 | 
			
		||||
cur = [[], [], [[]], [[]]]
 | 
			
		||||
experiment = 0
 | 
			
		||||
@ -216,6 +216,7 @@ class Part2(QtWidgets.QWidget):
 | 
			
		||||
        super().__init__()
 | 
			
		||||
        self.n = 0
 | 
			
		||||
        self.num = 0
 | 
			
		||||
        self.i = 0
 | 
			
		||||
        self.hint_open = False
 | 
			
		||||
        self.started = False
 | 
			
		||||
        self.q = QtGui.QScreen.availableGeometry(QtWidgets.QApplication.primaryScreen())
 | 
			
		||||
@ -230,6 +231,11 @@ class Part2(QtWidgets.QWidget):
 | 
			
		||||
        self.points.setGeometry(QtCore.QRect(7.5 * h - 150, 3 * h - 80, 300, 20))
 | 
			
		||||
        self.points.setText('Измеренных точек в текущей серии: ' + str(self.n))
 | 
			
		||||
 | 
			
		||||
        self.current = QtWidgets.QLabel(self)
 | 
			
		||||
        self.current.setGeometry(QtCore.QRect(7.5 * h - 150, 3 * h - 120, 300, 20))
 | 
			
		||||
        self.current.setText('Текущий ток разряда: ' + str(self.i))
 | 
			
		||||
        self.current.setStyleSheet('color: green;')
 | 
			
		||||
 | 
			
		||||
        self.disclaimer = QtWidgets.QLabel(self)
 | 
			
		||||
        self.disclaimer.setText('<html><p align=\"left\"><span style=\" font-size:10pt; font-weight:600;\">Не '
 | 
			
		||||
                                'забудьте прочитать методику<\p><p align=\"left\"><span style=\" font-size:10pt; '
 | 
			
		||||
@ -298,14 +304,27 @@ class Part2(QtWidgets.QWidget):
 | 
			
		||||
        self.start_btn.clicked.connect(self.start_stop)
 | 
			
		||||
        self.delete_btn.clicked.connect(self.delete)
 | 
			
		||||
        self.hint_btn.clicked.connect(self.hint)
 | 
			
		||||
        self.save_btn.clicked.connect(self.savefile)
 | 
			
		||||
        self.save_btn.clicked.connect(self.save_file)
 | 
			
		||||
 | 
			
		||||
        timer = QtCore.QTimer(self)
 | 
			
		||||
        timer.timeout.connect(self.upd_plot)
 | 
			
		||||
        timer.start(500)
 | 
			
		||||
 | 
			
		||||
        timer2 = QtCore.QTimer(self)
 | 
			
		||||
        timer2.timeout.connect(self.cur_check)
 | 
			
		||||
        timer2.start(1000)
 | 
			
		||||
 | 
			
		||||
    @QtCore.Slot()
 | 
			
		||||
    def savefile(self):
 | 
			
		||||
    def cur_check(self):
 | 
			
		||||
        if plots.experiment % 3 == 0:
 | 
			
		||||
            self.i = 5
 | 
			
		||||
        elif plots.experiment % 3 == 1:
 | 
			
		||||
            self.i = 3
 | 
			
		||||
        else:
 | 
			
		||||
            self.i = 1.5
 | 
			
		||||
        self.current.setText('Текущий ток разряда: ' + str(self.i) + 'мА')
 | 
			
		||||
 | 
			
		||||
    def save_file(self):
 | 
			
		||||
        file, check = QtWidgets.QFileDialog.getSaveFileName(None, "Сохранить график 2",
 | 
			
		||||
                                                  r"C:\Users\Vadim\Desktop\plot2.jpg", "Images (*.png *.jpg)")
 | 
			
		||||
        if check:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user