ответвлено от main/python-labs
Добавлены отчёты, задания и тесты
Этот коммит содержится в:
3
TEMA8/MM0.py
Обычный файл
3
TEMA8/MM0.py
Обычный файл
@@ -0,0 +1,3 @@
|
||||
import MM2
|
||||
print('y=',MM2.vyhod)
|
||||
|
||||
22
TEMA8/MM1.py
Обычный файл
22
TEMA8/MM1.py
Обычный файл
@@ -0,0 +1,22 @@
|
||||
def realdvig(xtt,kk1,TT,yti1,ytin1):
|
||||
#Модель реального двигателя
|
||||
yp = kk1 * xtt #усилитель
|
||||
yti1 = yp + yti1 #Интегратор
|
||||
ytin1 = (yti1+TT*ytin1)/(TT+1)
|
||||
return [yti1, ytin1]
|
||||
|
||||
def tahogen(xtt,kk2,yti2):
|
||||
#Модель тахогенератора
|
||||
yp = kk2 * xtt #усилитель
|
||||
yti2 = yp + yti2 #интегратор
|
||||
return yti2
|
||||
|
||||
def nechus(xtt,gran):
|
||||
if (xtt < gran) and (xtt > (-gran)):
|
||||
ytt = 0
|
||||
elif xtt >= gran:
|
||||
ytt = xtt - gran
|
||||
elif xtt <= (-gran):
|
||||
ytt = xtt + gran
|
||||
return ytt
|
||||
|
||||
25
TEMA8/MM2.py
Обычный файл
25
TEMA8/MM2.py
Обычный файл
@@ -0,0 +1,25 @@
|
||||
znach = input('k1,T,k2,Xm,A,F,N=').split(',')
|
||||
k1 = float(znach[0])
|
||||
T = float(znach[1])
|
||||
k2 = float(znach[2])
|
||||
Xm = float(znach[3])
|
||||
A = float(znach[4])
|
||||
F = float(znach[5])
|
||||
N = int(znach[6])
|
||||
|
||||
import math
|
||||
vhod = []
|
||||
for i in range(N):
|
||||
vhod.append(A * math.sin((2 * i * math.pi) / F))
|
||||
|
||||
import MM1 as mod
|
||||
yi1 = 0
|
||||
yin1 = 0
|
||||
yi2 = 0
|
||||
vyhod = []
|
||||
for xt in vhod:
|
||||
xt1 = xt - yi2 # отрицательная обратная связь
|
||||
[yi1, yin1] = mod.realdvig(xt1, k1, T, yi1, yin1)
|
||||
yi2 = mod.tahogen(yin1, k2, yi2)
|
||||
yt = mod.nechus(yin1, Xm)
|
||||
vyhod.append(yt)
|
||||
@@ -1,2 +1,9 @@
|
||||
perm1=input('Mod1:Введите значение = ')
|
||||
print('Mod1:Значение perm1=',perm1)
|
||||
def reading (file):
|
||||
nums = []
|
||||
with open(file, 'r') as file:
|
||||
for line in file:
|
||||
nums.extend(map(float, line.split()))
|
||||
return nums
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
def alpha():
|
||||
print('****ALPHA****')
|
||||
t=input('Значение t=')
|
||||
return t
|
||||
import math
|
||||
|
||||
def correlation(list1, list2):
|
||||
n = min(len(list1), len(list2))
|
||||
if n < 2:
|
||||
return None
|
||||
|
||||
x, y = list1[:n], list2[:n]
|
||||
mean_x, mean_y = sum(x)/n, sum(y)/n
|
||||
|
||||
num = sum((x[i]-mean_x)*(y[i]-mean_y) for i in range(n))
|
||||
den = math.sqrt(sum((x[i]-mean_x)**2 for i in range(n)) *
|
||||
sum((y[i]-mean_y)**2 for i in range(n)))
|
||||
|
||||
return num/den if den != 0 else None
|
||||
|
||||
def beta(q):
|
||||
print('****BETA****')
|
||||
import math
|
||||
expi=q*math.pi
|
||||
return math.exp(expi)
|
||||
|
||||
|
||||
15
TEMA8/Mod3.py
Обычный файл
15
TEMA8/Mod3.py
Обычный файл
@@ -0,0 +1,15 @@
|
||||
from Mod1 import reading
|
||||
from Mod2 import correlation
|
||||
|
||||
file1 = input("Введите имя первого файла: ")
|
||||
file2 = input("Введите имя второго файла: ")
|
||||
|
||||
arr1 = reading(file1)
|
||||
arr2 = reading(file2)
|
||||
|
||||
if arr1 is None or arr2 is None:
|
||||
print("Не удалось считать данные из файлов.")
|
||||
else:
|
||||
corr = correlation(arr1, arr2)
|
||||
if corr is not None:
|
||||
print(f"Коэффициент корреляции: {corr:.2f}")
|
||||
2
TEMA8/data1.txt
Обычный файл
2
TEMA8/data1.txt
Обычный файл
@@ -0,0 +1,2 @@
|
||||
1.0 2.0 3.0 4.0 5.0
|
||||
6.0 7.0 8.0 9.0 10.0
|
||||
2
TEMA8/data2.txt
Обычный файл
2
TEMA8/data2.txt
Обычный файл
@@ -0,0 +1,2 @@
|
||||
10.0 9.5 9.0 8.5 8.0
|
||||
7.5 7.0 6.5 6.0 1.0
|
||||
Ссылка в новой задаче
Block a user