ответвлено от main/python-labs
Изменил(а) на 'TEMA8/report.md'
Этот коммит содержится в:
@@ -199,7 +199,36 @@ Mod0.tt;Mod0.qq;Mod0.Mod1.perm1
|
||||
```
|
||||
## 3.2. Еще пример.
|
||||
|
||||
Создайте модуль MM1, включив в него (скопировать из текста темы 7) разработанные при выполнении предыдущей темы функции, реализующие усилитель, реальный двигатель, тахогенератор и нелинейное звено типа «зона нечувствительности». Затем создайте модуль ММ2, включив в него инструкции, обеспечивающие ввод параметров задачи, формирование входного сигнала, импорт модуля ММ1 и реализацию модели при расчете выходного сигнала:
|
||||
Файл MM0.py:
|
||||
```py
|
||||
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])
|
||||
@@ -215,7 +244,7 @@ vhod=[]
|
||||
for i in range(N):
|
||||
vhod.append(A*math.sin((2*i*math.pi)/F))
|
||||
|
||||
import MM1 as mod
|
||||
import mm1 as mod
|
||||
yi1 = 0; yin1 = 0; yi2 = 0
|
||||
vyhod=[]
|
||||
for xt in vhod:
|
||||
@@ -225,12 +254,12 @@ for xt in vhod:
|
||||
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. Области действия объектов в модулях.
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user