Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file 'okno.ui'
- #
- # Created by: PyQt5 UI code generator 5.10.1
- #
- # WARNING! All changes made in this file will be lost!
- from PyQt5 import QtCore, QtGui, QtWidgets
- from PyQt5.QtWidgets import QMessageBox
- import pyqtgraph as pg
- import matplotlib.pyplot as plt
- from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
- from math import tan, cos, pi, sqrt, sin,exp, fabs, atan
- import numpy as np
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(700, 500)
- self.centralwidget = QtWidgets.QWidget(MainWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
- self.tableWidget.setGeometry(QtCore.QRect(30, 10, 650, 520))
- self.tableWidget.setObjectName("tableWidget")
- self.tableWidget.setColumnCount(0)
- self.tableWidget.setRowCount(0)
- self.pushButton = QtWidgets.QPushButton(self.centralwidget)
- self.pushButton.setGeometry(QtCore.QRect(350, 450, 89, 25))
- self.pushButton.setObjectName("pushButton")
- self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_2.setGeometry(QtCore.QRect(350, 130, 113, 25))
- self.lineEdit_2.setObjectName("lineEdit_2")
- self.lineEdit_2.setText("50")
- self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_3.setGeometry(QtCore.QRect(350, 160, 113, 25))
- self.lineEdit_3.setObjectName("lineEdit_3")
- self.lineEdit_3.setText("0.59")
- self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_4.setGeometry(QtCore.QRect(350, 190, 113, 25))
- self.lineEdit_4.setObjectName("lineEdit_4")
- self.lineEdit_4.setText("1.65")
- self.label_2 = QtWidgets.QLabel(self.centralwidget)
- self.label_2.setGeometry(QtCore.QRect(270, 130, 67, 17))
- self.label_2.setObjectName("label_2")
- self.label_3 = QtWidgets.QLabel(self.centralwidget)
- self.label_3.setGeometry(QtCore.QRect(80, 160, 241, 21))
- self.label_3.setObjectName("label_3")
- self.label_4 = QtWidgets.QLabel(self.centralwidget)
- self.label_4.setGeometry(QtCore.QRect(40, 180, 331, 41))
- self.label_4.setObjectName("label_4")
- self.label_5 = QtWidgets.QLabel(self.centralwidget)
- self.label_5.setGeometry(QtCore.QRect(80, 40, 571, 31))
- self.label_5.setObjectName("label_5")
- self.label_7 = QtWidgets.QLabel(self.centralwidget)
- self.label_7.setGeometry(QtCore.QRect(126, 220, 211, 20))
- self.label_7.setObjectName("label_7")
- self.label_9 = QtWidgets.QLabel(self.centralwidget)
- self.label_9.setGeometry(QtCore.QRect(196, 260, 141, 20))
- self.label_9.setObjectName("label_9")
- self.label_10 = QtWidgets.QLabel(self.centralwidget)
- self.label_10.setGeometry(QtCore.QRect(116, 300, 211, 21))
- self.label_10.setObjectName("label_10")
- self.label_11 = QtWidgets.QLabel(self.centralwidget)
- self.label_11.setGeometry(QtCore.QRect(116, 340, 211, 21))
- self.label_11.setObjectName("label_11")
- self.label_12 = QtWidgets.QLabel(self.centralwidget)
- self.label_12.setGeometry(QtCore.QRect(116, 380, 211, 21))
- self.label_12.setObjectName("label_12")
- self.lineEdit_6 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_6.setGeometry(QtCore.QRect(350, 220, 113, 25))
- self.lineEdit_6.setObjectName("lineEdit_6")
- self.lineEdit_6.setText("0.002")
- self.lineEdit_8 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_8.setGeometry(QtCore.QRect(350, 260, 113, 25))
- self.lineEdit_8.setObjectName("lineEdit_8")
- self.lineEdit_8.setText("0")
- self.lineEdit_9 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_9.setGeometry(QtCore.QRect(350, 300, 113, 25))
- self.lineEdit_9.setObjectName("lineEdit_9")
- self.lineEdit_9.setText("500")
- self.lineEdit_10 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_10.setGeometry(QtCore.QRect(350, 340, 113, 25))
- self.lineEdit_10.setObjectName("lineEdit_10")
- self.lineEdit_11 = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit_11.setGeometry(QtCore.QRect(350, 380, 113, 25))
- self.lineEdit_11.setObjectName("lineEdit_11")
- self.lineEdit_11.setText("0.1")
- self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
- self.pushButton_2.setGeometry(QtCore.QRect(250, 450, 89, 25))
- self.pushButton_2.setObjectName("pushButton_2")
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 22))
- self.menubar.setObjectName("menubar")
- MainWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(MainWindow)
- self.statusbar.setObjectName("statusbar")
- MainWindow.setStatusBar(self.statusbar)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- self.pushButton.clicked.connect(self.buttonClicked)
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "Электронная пушка"))
- self.pushButton.setText(_translate("MainWindow", "ОК"))
- self.label_2.setText(_translate("MainWindow", "Длина:"))
- self.label_3.setText(_translate("MainWindow", "Коэффициент теплопроводности:"))
- self.label_4.setText(_translate("MainWindow", "Коэффициент объёмной теплоёмкости:"))
- self.label_5.setText(_translate("MainWindow", "Процесс остывания корпуса электронной пушки"))
- self.label_7.setText(_translate("MainWindow", "Коэффициент теплоотдачи:"))
- self.label_9.setText(_translate("MainWindow", "Момент времени:"))
- self.label_10.setText(_translate("MainWindow", "Колличество слагаемых ряда:"))
- self.label_11.setText(_translate("MainWindow", "Погрешность:"))
- self.label_12.setText(_translate("MainWindow", "Толщина стенки трубки:"))
- self.pushButton_2.setText(_translate("MainWindow", "Закрыть"))
- def buttonClicked(self):
- er = True
- err = ""
- erre = ""
- errn = ""
- try:
- L = float(self.lineEdit_2.text())
- except:
- err += "L введено неправильно \n"
- try:
- k = float(self.lineEdit_3.text())
- except:
- err += "k введено неправильно \n"
- try:
- c = float(self.lineEdit_4.text())
- except:
- err += "с введено неправильно \n"
- try:
- d = float(self.lineEdit_11.text())
- except:
- err += "d введено неправильно \n"
- try:
- a = float(self.lineEdit_6.text())
- except:
- err += "a введено неправильно \n"
- #u_c = float(self.lineEdit_7.text())
- try:
- t = float(self.lineEdit_8.text())
- except:
- err += "t введено неправильно \n"
- try:
- n = int(self.lineEdit_9.text())
- except:
- errn += "n введено неправильно \n"
- try:
- eps = float(self.lineEdit_10.text())
- except:
- erre += "Погрешность введена неправильно \n"
- if (len(errn) != 0 and len(erre) != 0):
- er = False
- QMessageBox.about(gun, "Ошибка", erre)
- if len(err) != 0:
- er = False
- QMessageBox.about(gun, "Ошибка", err)
- def nubmer_sum(n,L,a,t,c,k):
- return (2*L*c*exp(-2*a*t/(c*d))*exp((-(pi*(1+2*n)/(2*L))**2)*k*t*c))/(pi*pi*((1 + 2*(n+1))**2)*k*t)
- def series_sum(L,k,c,a,t,n,z):
- sum = 0
- for i in range(n):
- sum = sum + sin(pi*(1+2*i)/4)*(4/(pi*(1+2*i)))*cos(z*pi*(1+2*i)/(2*L))*exp(-((2*a/(k*d) + (pi*(1+2*i)/(2*L))**2)*k*t)/c)
- return sum
- if er == True:
- if t != 0:
- if len(erre) == 0:
- i = 0;
- while nubmer_sum(i,L,a,t,c,k) > eps:
- i = i + 1
- self.lineEdit_9.setText("%.i" % i)
- n = i
- print(n)
- elif len(erre) != 0 and len(errn) != 0:
- erre += "Погрешность введена неправильно; \n"
- QMessageBox.about(gun, "Ошибка", erre)
- if t == 0 and len(erre) == 0:
- err += "Оценка остатка ряда расходится; \n"
- QMessageBox.about(gun, "Ошибка", err)
- if len(err) != 0 and len(errn) != 0:
- er = False
- QMessageBox.about(gun, "Ошибка", err)
- if er == True:
- arr = np.linspace(0, L, 500).tolist()
- fourier_arr=[]
- for elem in arr:
- fourier_arr.append(series_sum(L,k,c,a,t,n, elem))
- fig, ax = plt.subplots()
- ax.plot(arr, fourier_arr, color="red", label="Распределение Температуры")
- ax.set_xlabel("Длина трубки")
- ax.set_ylabel("w(x,t)")
- plt.grid()
- plt.show(True)
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- gun = QtWidgets.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(gun)
- gun.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement