From 00d6ce48a67db0232f4e3faec82adc6053888bc3 Mon Sep 17 00:00:00 2001 From: Solovyova_ED Date: Mon, 8 Dec 2025 01:33:24 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'TEMA8/report.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA8/report.md | 73 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 22 deletions(-) diff --git a/TEMA8/report.md b/TEMA8/report.md index 6197170..07e7f3d 100644 --- a/TEMA8/report.md +++ b/TEMA8/report.md @@ -199,38 +199,67 @@ Mod0.tt;Mod0.qq;Mod0.Mod1.perm1 ``` ## 3.2. Еще пример. -Создайте модуль MM1, включив в него (скопировать из текста темы 7) разработанные при выполнении предыдущей темы функции, реализующие усилитель, реальный двигатель, тахогенератор и нелинейное звено типа «зона нечувствительности». Затем создайте модуль ММ2, включив в него инструкции, обеспечивающие ввод параметров задачи, формирование входного сигнала, импорт модуля ММ1 и реализацию модели при расчете выходного сигнала: +Файл MM0.py: ```py -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 MM2 +print('y =', MM2.vyhod) +``` +Файл MM1.py: +```py +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 +``` +Файл MM2.py: +```py +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=[] +vhod = [] for i in range(N): - vhod.append(A*math.sin((2*i*math.pi)/F)) + vhod.append(A*math.sin((2*i*math.pi)/F)) -import MM1 as mod -yi1=0;yin1=0;yi2=0 +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) + 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) ``` -Наконец, создайте главную программу – модуль ММ0, запускающую на выполнение модуль ММ2 и выводящую полученный выходной сигнал + ```py -import MM2 -print('y=',MM2.vyhod) +k1,T,k2,Xm,A,F,N=9,6,4,11,3,0.5,1500 +y = [0, 0, ... 0, -70.20177063675057, 0, 257.73311334096866, -677.4095530135962, ... -6.270038281034423e+306, -1.198995988522659e+307] ``` -В ответ на запрос программы введите некоторые, подходящие по смыслу значения параметров задачи и проанализируйте полученный выходной сигнал. + ## 3.3. Области действия объектов в модулях.