ответвлено от main/python-labs
Изменил(а) на 'TEMA7/report.md'
Этот коммит содержится в:
@@ -300,7 +300,7 @@ def func5(diap,shag):
|
|||||||
""" Итератор, возвращающий значения
|
""" Итератор, возвращающий значения
|
||||||
из диапазона от 1 до diap с шагом shag"""
|
из диапазона от 1 до diap с шагом shag"""
|
||||||
for j in range(1,diap+1,shag):
|
for j in range(1,diap+1,shag):
|
||||||
yield j
|
yield j #делает одну итерацию
|
||||||
|
|
||||||
for mm in func5(7,3):
|
for mm in func5(7,3):
|
||||||
print(mm)
|
print(mm)
|
||||||
@@ -309,7 +309,7 @@ def func5(diap,shag):
|
|||||||
7
|
7
|
||||||
|
|
||||||
alp=func5(7,3)
|
alp=func5(7,3)
|
||||||
print(alp.__next__())
|
print(alp.__next__())
|
||||||
1
|
1
|
||||||
print(alp.__next__())
|
print(alp.__next__())
|
||||||
4
|
4
|
||||||
@@ -319,7 +319,7 @@ print(alp.__next__())
|
|||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<pyshell#26>", line 1, in <module>
|
File "<pyshell#26>", line 1, in <module>
|
||||||
print(alp.__next__())
|
print(alp.__next__())
|
||||||
StopIteration
|
StopIteration #отработал условие и устал
|
||||||
```
|
```
|
||||||
|
|
||||||
## 6. Локализация объектов в функциях
|
## 6. Локализация объектов в функциях
|
||||||
@@ -329,14 +329,14 @@ glb=10
|
|||||||
def func7(arg):
|
def func7(arg):
|
||||||
loc1=15
|
loc1=15
|
||||||
glb=8
|
glb=8
|
||||||
return loc1*arg
|
return loc1*arg #arg принимает значения глоб. параметра глб, поэтому на 8 не умножается
|
||||||
|
|
||||||
res=func7(glb);res
|
res=func7(glb);res
|
||||||
150
|
150
|
||||||
|
|
||||||
def func8(arg):
|
def func8(arg):
|
||||||
loc1=15
|
loc1=15
|
||||||
print(glb)
|
print(glb) #в момент запуска glb считается локальной переменной в функции func8, однако в момент печати не была локализована
|
||||||
glb=8
|
glb=8
|
||||||
return loc1*arg
|
return loc1*arg
|
||||||
|
|
||||||
@@ -351,13 +351,13 @@ UnboundLocalError: cannot access local variable 'glb' where it is not associated
|
|||||||
glb=11
|
glb=11
|
||||||
def func7(arg):
|
def func7(arg):
|
||||||
loc1=15
|
loc1=15
|
||||||
global glb
|
global glb
|
||||||
print(glb)
|
print(glb) #объявлена как глобальная и выведена до присваивания ей нового значения 8, поэтому 11
|
||||||
glb=8
|
glb=8
|
||||||
return loc1*arg
|
return loc1*arg
|
||||||
res=func7(glb);res
|
res=func7(glb);res
|
||||||
11
|
11
|
||||||
165
|
165 #при следующей попытке запуска функции умножит loc1 на 8, а не на 11
|
||||||
```
|
```
|
||||||
|
|
||||||
**6.2. Выявление локализации объекта с помощью функций locals() и globals() из builtins**
|
**6.2. Выявление локализации объекта с помощью функций locals() и globals() из builtins**
|
||||||
@@ -401,7 +401,7 @@ def func9(arg2,arg3):
|
|||||||
kk=func9(10,1)
|
kk=func9(10,1)
|
||||||
glob_func9_1: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
|
glob_func9_1: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
|
||||||
locl_func9_1: dict_keys(['arg1', 'loc1', 'glb1'])
|
locl_func9_1: dict_keys(['arg1', 'loc1', 'glb1'])
|
||||||
loc_func9: dict_keys(['arg2', 'arg3', 'func9_1', 'loc1', 'glb'])
|
loc_func9: dict_keys(['arg2', 'arg3', 'func9_1', 'loc1', 'glb']) #фукнция func9 сработала позже, следовательно арг2 арг3 появились позже
|
||||||
glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
|
glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -409,7 +409,7 @@ glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__sp
|
|||||||
```python
|
```python
|
||||||
import math
|
import math
|
||||||
|
|
||||||
# Ввод параметров
|
|
||||||
znach = input('k1,T,k2,Xm,A,F,N=').split(',')
|
znach = input('k1,T,k2,Xm,A,F,N=').split(',')
|
||||||
k1 = float(znach[0])
|
k1 = float(znach[0])
|
||||||
T = float(znach[1])
|
T = float(znach[1])
|
||||||
@@ -419,17 +419,15 @@ A = float(znach[4])
|
|||||||
F = float(znach[5])
|
F = float(znach[5])
|
||||||
N = int(znach[6])
|
N = int(znach[6])
|
||||||
|
|
||||||
print(f"Параметры системы: k1={k1}, T={T}, k2={k2}, Xm={Xm}")
|
|
||||||
print(f"Входной сигнал: A={A}, F={F}, N={N}")
|
|
||||||
|
|
||||||
# Создание входного сигнала (синусоида)
|
|
||||||
vhod = []
|
vhod = []
|
||||||
for i in range(N):
|
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))
|
||||||
|
|
||||||
print("Входной сигнал:", vhod[:10]) # Покажем первые 10 значений
|
print("Входной сигнал:", vhod)
|
||||||
|
|
||||||
|
|
||||||
# Функции компонентов системы
|
|
||||||
def realdvig(xtt, kk1, TT, yti1, ytin1):
|
def realdvig(xtt, kk1, TT, yti1, ytin1):
|
||||||
"""Модель реального двигателя"""
|
"""Модель реального двигателя"""
|
||||||
yp = kk1 * xtt # усилитель
|
yp = kk1 * xtt # усилитель
|
||||||
@@ -453,12 +451,11 @@ def nechus(xtt, gran):
|
|||||||
ytt = xtt + gran
|
ytt = xtt + gran
|
||||||
return ytt
|
return ytt
|
||||||
|
|
||||||
# Моделирование системы
|
|
||||||
yi1 = 0 # состояние интегратора двигателя
|
|
||||||
yin1 = 0 # состояние инерционного звена
|
|
||||||
yi2 = 0 # состояние интегратора тахогенератора
|
|
||||||
|
|
||||||
vyhod = [] # выход системы
|
yi1 = 0
|
||||||
|
yin1 = 0
|
||||||
|
yi2 = 0
|
||||||
|
vyhod = []
|
||||||
|
|
||||||
for xt in vhod:
|
for xt in vhod:
|
||||||
xt1 = xt - yi2 # отрицательная обратная связь
|
xt1 = xt - yi2 # отрицательная обратная связь
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user