Этот коммит содержится в:
Ksenia
2025-12-14 18:29:36 +03:00
родитель 0962381968
Коммит 982c060035
5 изменённых файлов: 611 добавлений и 0 удалений

36
TEMA9/SAU.py Обычный файл
Просмотреть файл

@@ -0,0 +1,36 @@
class SAU:
def __init__(self, zn_param):
self.param = zn_param
self.ypr = [0, 0]
def zdn_zn(self, upr):
self.x = upr
def model(self):
def inerz(x, T, yy):
return (x + T * yy) / (T + 1)
y0 = self.x - self.ypr[1] * self.param[3] # Обр.связь с усилителем 2
y1 = self.param[0] * y0 # Усилитель1
y2 = inerz(y1, self.param[1], self.ypr[0]) # Инерционное звено1
y3 = inerz(y2, self.param[2], self.ypr[1]) # Инерционное звено2
self.ypr[0] = y2
self.ypr[1] = y3
def otobraz(self):
print('y=', self.ypr[1])
###main_SAU
prm=[2.5,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь
from SAU import *
xx=[0]+[1]*20 #Входной сигнал – «ступенька»
SAUe=SAU(prm) # Создаём экземпляр класса
yt=[]
for xt in xx: # Прохождение входного сигнала
SAUe.zdn_zn(xt)
SAUe.model()
SAUe.otobraz()
yt.append(SAUe.ypr[1])
import pylab
pylab.plot(yt)
pylab.show()