6.3 KiB
Индивидуальное контрольное задание.
Вариант 9
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
Разработайте функцию с 3 параметрами: х, yT и T, реализующую расчет по значениям последовательности значений входного сигнала х значений выходного сигнала по формуле: y= (x+T*yТ)/(T+1). Здесь х- одно текущее значение входного сигнала, yT – значение выходного сигнала в предыдущий момент времени, Т – постоянная времени инерционного звена. Создайте список с последовательностью из 100 значений входного синусоидального сигнала с амплитудой 2, периодом 7 и фазой 0.35. Рассчитайте последовательность значений выходных сигналов, принимая Т=3 и yT равным предыдущему в последовательности вычисленных значений y (для первого значения х принять yT=0). Записать результаты в текстовый файл в виде двух столбцов: хi, yi.
test_calc.py:
def calc_y(x, yT, T):
return (x + T * yT) / (T + 1)
test_main.py:
import math
import os
from test_calc import calc_y
x_list = []
for i in range(100):
x = 2 * math.sin(2 * math.pi * i / 7 + 0.35)
x_list.append(x)
T = 3
y_list = []
yT = 0
for x in x_list:
y = calc_y(x, yT, T)
y_list.append(y)
yT = y
fp=open(os.getcwd()+ '/TEMA8/results.txt', 'w')
for xi, yi in zip(x_list, y_list):
fp.write(f"{xi}\t{yi}\n")
fp.close()
results.txt:
0.6857956149109027 0.17144890372772567
1.8964488934073493 0.6026989011476316
1.6790374746606227 0.8717835445258794
0.19727659137173062 0.7031568062373422
-1.4330375889291693 0.16910820744571436
-1.9842452361268608 -0.36923015344742943
-1.0412757492945761 -0.5372415524092161
0.6857956149109016 -0.23148226057918672
1.896448893407349 0.3005005279174472
1.6790374746606234 0.6451347646032413
0.197276591371732 0.533170221295364
-1.4330375889291658 0.04161826873923152
-1.984245236126861 -0.4648476074772916
-1.0412757492945737 -0.6089546429316122
0.6857956149109011 -0.28526707847098387
1.8964488934073476 0.260161914498599
1.6790374746606236 0.6148808045391052
0.19727659137172895 0.5104797512472612
-1.4330375889291704 0.024600416203153286
-1.9842452361268605 -0.47761099687935016
-1.041275749294574 -0.6185271849831562
0.685795614910904 -0.2924464850096411
1.8964488934073476 0.25477735959460607
1.679037474660622 0.61084238836111
0.19727659137172943 0.5074509391137649
-1.4330375889291702 0.022328807103031145
-1.9842452361268597 -0.47931470370444157
-1.0412757492945743 -0.6198049651019748
0.6857956149109036 -0.29340482009875524
1.8964488934073496 0.25405860827777094
1.679037474660626 0.6103033248734847
0.19727659137172993 0.507046641498046
-1.4330375889291698 0.02202558389124204
-1.9842452361268605 -0.4795421211132836
-1.0412757492945688 -0.6199755281586049
0.685795614910903 -0.2935327423912279
1.8964488934073493 0.25396266655841643
1.6790374746606225 0.610231368583968
0.19727659137173043 0.5069926742809086
-1.4330375889291693 0.02198510847838908
-1.9842452361268608 -0.4795724776729234
-1.0412757492945752 -0.6199982955783363
0.6857956149109026 -0.2935498179560266
1.8964488934073493 0.2539498598848174
1.6790374746606305 0.6102217635787707
0.1972765913717309 0.5069854705270107
-1.433037588929169 0.021979705662965754
-1.9842452361268608 -0.4795765297844909
-1.0412757492945757 -0.6200013346620121
0.6857956149109021 -0.29355209726878356
1.8964488934073491 0.2539481504002496
1.6790374746606231 0.6102204814653429
0.19727659137171724 0.5069845089419365
-1.4330375889291687 0.02197898447416019
-1.9842452361268608 -0.47957707067609506
-1.0412757492945761 -0.6200017403307153
0.6857956149109017 -0.2935524015203111
1.896448893407349 0.2539479222116039
1.6790374746606234 0.6102203103238588
0.19727659137173187 0.5069843805858271
-1.4330375889291584 0.021978888207080716
-1.9842452361268608 -0.4795771428764046
-1.0412757492945766 -0.6200017944809476
0.6857956149109012 -0.2935524421329854
1.8964488934073487 0.2539478917520981
1.6790374746606236 0.6102202874792295
0.19727659137173237 0.5069843634523552
-1.4330375889291682 0.021978875356974348
-1.9842452361268592 -0.47957715251398403
-1.041275749294577 -0.6200018017091322
0.6857956149109008 -0.29355244755412396
1.8964488934073487 0.2539478876862442
1.6790374746606316 0.610220284429841
0.19727659137176112 0.5069843611653211
-1.4330375889291578 0.02197887364170137
-1.9842452361268645 -0.4795771538004401
-1.0412757492945894 -0.6200018026739774
0.6857956149109004 -0.293552448277758
1.896448893407344 0.2539478871435175
1.679037474660624 0.6102202840227942
0.19727659137174747 0.5069843608600325
-1.4330375889291476 0.021978873412737465
-1.9842452361268628 -0.4795771539721626
-1.0412757492945777 -0.6200018028027664
0.6857956149108865 -0.29355244837435324
1.8964488934073482 0.25394788707107213
1.679037474660632 0.6102202839684621
0.19727659137176212 0.5069843608192871
-1.4330375889291374 0.02197887338218102
-1.9842452361268612 -0.47957715399507955
-1.0412757492945903 -0.6200018028199572
0.6857956149108727 -0.2935524483872497
1.8964488934073436 0.2539478870613986
1.67903747466064 0.610220283961209
0.19727659137174847 0.5069843608138438
-1.4330375889291667 0.02197887337809118
-1.984245236126863 -0.4795771539981474
-1.0412757492946028 -0.6200018028222611
0.6857956149108856 -0.29355244838897443
1.896448893407348 0.2539478870601062