From c3488f3affa7245896127218faf1fb981f8376eb Mon Sep 17 00:00:00 2001 From: TabolinIA Date: Sat, 6 Dec 2025 20:54:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=BE=D1=82=D1=87=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA8/MM0.py | 4 + TEMA8/MM1.py | 31 ++++++ TEMA8/MM2.py | 25 +++++ TEMA8/Mod0.py | 3 + TEMA8/Ris1.png | Bin 0 -> 16855 bytes TEMA8/report.md | 270 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 333 insertions(+) create mode 100644 TEMA8/MM0.py create mode 100644 TEMA8/MM1.py create mode 100644 TEMA8/MM2.py create mode 100644 TEMA8/Ris1.png create mode 100644 TEMA8/report.md diff --git a/TEMA8/MM0.py b/TEMA8/MM0.py new file mode 100644 index 0000000..89443a5 --- /dev/null +++ b/TEMA8/MM0.py @@ -0,0 +1,4 @@ +# MM0 +# Запуск и вывод вых сигнала +import MM2 +print('y=',MM2.vyhod) diff --git a/TEMA8/MM1.py b/TEMA8/MM1.py new file mode 100644 index 0000000..b195e92 --- /dev/null +++ b/TEMA8/MM1.py @@ -0,0 +1,31 @@ +# MM1 +# Функции узлов САУ +def realdvig(xtt,kk1,TT,yti1,ytin1): + """Реальный двигатель + xtt - входной сигнал + kk1 - коэффициент усиления + TT - постоянная времени""" + yp=kk1*xtt # усилитель + yti1=yp+yti1 # интегратор + ytin1=(yti1+TT*ytin1)/(TT+1) + return [yti1,ytin1] + +def tahogen(xtt,kk2,yti2): + """Тахогенератор + xtt - входной сигнал + kk2 - коэф. усиления""" + yp=kk2*xtt # усилитель + yti2=yp+yti2 # интегратор + return yti2 + +def nechus(xtt,gran): + """Зона нечувствительности + xtt - входной сигнал + gran - границы зоны""" + if xtt(-gran): + ytt=0 + elif xtt>=gran: + ytt=xtt-gran + elif xtt<=(-gran): + ytt=xtt+gran + return ytt diff --git a/TEMA8/MM2.py b/TEMA8/MM2.py new file mode 100644 index 0000000..6a61ba2 --- /dev/null +++ b/TEMA8/MM2.py @@ -0,0 +1,25 @@ +# MM2 +# Инструкции, обеспечивающие ввод параметров задачи, формирование вх. сигнала, импорт модуля ММ1 и реализацию модели при расчете вых. сигнала. +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) diff --git a/TEMA8/Mod0.py b/TEMA8/Mod0.py index 6337fc3..a0464cf 100644 --- a/TEMA8/Mod0.py +++ b/TEMA8/Mod0.py @@ -1,9 +1,12 @@ #Модуль Mod0 import Mod1 print('perm1=',Mod1.perm1) +Mod1.perm1 = str(int(Mod1.perm1)*3) +print('3*perm1=',Mod1.perm1) from Mod2 import alpha as al tt=al() print('tt=',tt) from Mod2 import beta qq=beta(float(tt)) print('qq=',qq) + diff --git a/TEMA8/Ris1.png b/TEMA8/Ris1.png new file mode 100644 index 0000000000000000000000000000000000000000..c842fafa643c1a06555247ffc1a9473078a4a340 GIT binary patch literal 16855 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

&6Oo@F`8XT+aa zj+su3f=Q!dtOgp9L$0YcFf*^`b-on&kBK+j2I#KhdaQeTV zFxB#kxrqs|w^!|oUxX~4V9Mcs1)G!M4s(6*Xpya=QRmNzoRaUnhXo*uNVtz?XL)C9 zSqB(vn(qwfIp6AIH!M8LU=+I(0~=$jAAYOLG2!hup09_a(}kg_s+TcG#06GovHcA` zJEX;!GLx}H7pwDw2R-NM=rAIV#yLVOn1Ih;%XTA&txWy$>h*Jl(%doF+Jh7INLp3O zjzZ;#3cz8PFqvR^?qXY}W*m3bty{OOz!bZkmTdb*E~u0bWZ<2CQ`;)IKC--d^W8!s zDSK!aSn13+2xhW1;L<61z#|si^cp1Xe9waAW`M9(*REYF1ReewDi*0p3s8{rUAXXd z2UHw^Q9+jg)L$@6foSngk@jis^TA5Ob0`n=&I*AjR87SyGkX9^ zKWotGFI?))3W=Jsuswc(0B^f)9LW#sj`b(NYddgIO$8M3exMT!0-u2O$zF@%_Gu!x zn0lJlc0h)v`wXO@qZSdcazc;d6F|mKdadg@w!Hmru$sQWu+u*K?lGIUI9QEya<*imZK`SSosMMjc3O7!qG40KY6NxP z9Ft;LEmeGWlFE_Zje`3i|7C|Wz%{`C>r456x1XHJrXHk!; + +dir(type) +['__abstractmethods__', '__annotations__', '__base__', '__bases__', '__basicsize__', '__call__', '__class__', '__delattr__', '__dict__', '__dictoffset__', '__dir__', '__doc__', '__eq__', '__flags__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__instancecheck__', '__itemsize__', '__le__', '__lt__', '__module__', '__mro__', '__name__', '__ne__', '__new__', '__or__', '__prepare__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__setattr__', '__sizeof__', '__str__', '__subclasscheck__', '__subclasses__', '__subclasshook__', '__text_signature__', '__type_params__', '__weakrefoffset__', 'mro'] + +Mod1.perm1 +'5' +``` +Повторное выполнение модуля +```py +import Mod1 + # запуска модуля не произошло + +importlib.reload(Mod1) +Mod1:Введите значение = 3 +Mod1:Значение perm1= 3 + +Mod1.perm1 +'3' +``` +## 2.2. Занесение импортированных модулей в словарь. +```py +print(sorted(sys.modules.keys())) +['Mod1', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', ... +``` +```py +sys.modules.pop('Mod1') + + +print(sorted(sys.modules.keys())) +['__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', ... + +import Mod1 +Mod1:Введите значение = 35 +Mod1:Значение perm1= 35 +sys.modules.pop('Mod1') + +``` +## 2.3. Запуск модуля на выполнение с помощью функции. +Выполняется с помощью функции `exec()` +```py +exec(open('Mod1.py').read()) +Mod1:Введите значение = 6 +Mod1:Значение perm1= 6 +Mod1.perm1 +'35' +exec(open('Mod1.py').read()) +Mod1:Введите значение = 44 +Mod1:Значение perm1= 44 +Mod1.perm1 +'35' +exec(open('Mod1.py').read()) +Mod1:Введите значение = 12 +Mod1:Значение perm1= 12 +Mod1.perm1 +'35' +``` +## 2.4. Использование инструкции `from ... import ...`. +Пример 1. +```py +from Mod1 import perm1 +print(sorted(sys.modules.keys())) +['Mod1', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', ... +Mod1.perm1 +'35' +``` +Пример 2. +```py +from Mod2 import beta +g=beta(2) +****BETA**** +g +535.4916555247646 +dir() +['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys'] +alpha() +Traceback (most recent call last): + File "", line 1, in + alpha() +NameError: name 'alpha' is not defined +from Mod2 import alpha as al +al() +****ALPHA**** +Значение t=55 +'55' +del al,beta +from Mod2 import alpha as al, beta as bt +del al,bt +from Mod2 import * +tt=alpha() +****ALPHA**** +Значение t=0.12 +uu=beta(float(tt)) +****BETA**** +uu +1.4578913609506803 +``` +## 3. Создание многомодульных программ. +## 3.1. Пример простой многомодульной программы. +```py +sys.modules.pop('Mod1') + +sys.modules.pop('Mod2') + +``` +```py +import Mod0 +Mod1:Введите значение = 4 +Mod1:Значение perm1= 4 +perm1= 4 +****ALPHA**** +Значение t=5 +tt= 5 +****BETA**** +qq= 6635623.99934113 +Mod0.tt,Mod0.qq,Mod0.Mod1.perm1 +('5', 6635623.99934113, '4') +``` +## 3.2. Пример. +```py +import MM0 +y= [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.995050282999456, 7.337875156918653, 10.174309420549172, 10.298227259219182, ... +``` +```py +import matplotlib.pyplot as plt +y=MM0.MM2.vyhod +plt.plot(y) +[] +plt.show() +``` +!(Ris1.png)[Выходной сигнал] +Выходной сигнал +## 3.3. Области действия объектов в модулях. +Новое содержание модуля `Mod2.py`: +```py +def alpha(): + print('****ALPHA****') + t=input('Значение t=') + beta(int(t)) + return t + +def beta(q): + print('****BETA****') + import math + expi=q*math.pi + return math.exp(expi) +``` +Вызов модуля: +```py +from Mod2 import * +alpha() +****ALPHA**** +Значение t=5 +****BETA**** +'5' +``` +Новое содержимое модуля `Mod2`(вызов `beta` из `alpha`): +```py +from Mod2 import * +beta(6) +****BETA**** +****ALPHA**** +Значение t=5 +153552935.39544657 +``` +Другой пример - отображение на экране в модуле `Mod0` значения объектов `t` и `expi` +Новое содержимое модуля `Mod0` +```py +#Модуль Mod0 +import Mod1 +print('perm1=',Mod1.perm1) +from Mod2 import alpha as al +tt=al() +print('tt=',tt) +from Mod2 import beta +qq=beta(float(tt)) +print('qq=',qq) +print(t,expi) +``` +Запуск +```py +import Mod0 +perm1= 4 +****ALPHA**** +Значение t=7 +tt= 7 +****BETA**** +****ALPHA**** +Значение t=6 +qq= 3553321280.847041 +Traceback (most recent call last): + File "", line 1, in + import Mod0 + File "C:\Users\User\Desktop\python-labs\TEMA8\Mod0.py", line 10, in + print(t,expi) +NameError: name 't' is not defined +``` +Ещё один пример - увеличение в 3 раза значения объекта `perm1` в модуле `Mod0` +Новое содержимое модуля `Mod0`: +```py +#Модуль Mod0 +import Mod1 +print('perm1=',Mod1.perm1) +Mod1.perm1 = int(Mod1.perm1)*3 +from Mod2 import alpha as al +tt=al() +print('tt=',tt) +from Mod2 import beta +qq=beta(float(tt)) +print('qq=',qq) +``` +```py +import Mod0 +perm1= 12 +3*perm1= 36 +****ALPHA**** +Значение t=9 +tt= 9 +****BETA**** +****ALPHA**** +Значение t=90 +qq= 1902773895292.1592 +``` +Увеличение в 2 раза объектов `perm`,`tt`,`qq` в командной строке. +```py +import Mod0 +perm1= 36 +3*perm1= 108 +****ALPHA**** +Значение t=2 +tt= 2 +****BETA**** +****ALPHA**** +Значение t=2 +qq= 535.4916555247646 +Mod0.Mod1.perm1=int(Mod0.Mod1.perm1)*2 +Mod0.Mod1.perm1 +'216' +Mod0.tt=int(Mod0.Mod1.perm1)*2 +Mod0.tt +432 +Mod0.qq=Mod0.qq*2 +Mod0.qq +1070.9833110495292 +``` \ No newline at end of file