форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
43 строки
1.7 KiB
Python
43 строки
1.7 KiB
Python
# MM2.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 = []
|
|
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)
|
|
|