diff --git a/TEMA9/CAU.py b/TEMA9/CAU.py new file mode 100644 index 0000000..74c2768 --- /dev/null +++ b/TEMA9/CAU.py @@ -0,0 +1,21 @@ +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]) diff --git a/TEMA9/CAU_test.py b/TEMA9/CAU_test.py new file mode 100644 index 0000000..819552a --- /dev/null +++ b/TEMA9/CAU_test.py @@ -0,0 +1,18 @@ +###main_SAU +prm=[2.5,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь +from CAU 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.title('Инерционная модель') +pylab.xlabel('Время') +pylab.ylabel('Выходные данные') +pylab.grid() +pylab.show() diff --git a/TEMA9/scrlab9.png b/TEMA9/scrlab9.png new file mode 100644 index 0000000..e4362a9 Binary files /dev/null and b/TEMA9/scrlab9.png differ