форкнуто от main/python-labs
Родитель
daff1ea6fe
Сommit
1d1da5636e
@ -0,0 +1,2 @@
|
|||||||
|
import MM2
|
||||||
|
print("y =", MM2.vyhod)
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
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):
|
||||||
|
return 0
|
||||||
|
elif xtt >= gran:
|
||||||
|
return xtt - gran
|
||||||
|
elif xtt <= (-gran):
|
||||||
|
return xtt + gran
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
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)
|
||||||
Загрузка…
Ссылка в новой задаче