Как смоделировать один шаг к передаточной функции в python - PullRequest
0 голосов
/ 08 декабря 2018

Я нашел scipy.signal.dstep, scipy.signal.dlsim функции, которые помогают имитировать поведение передаточной функции, например: signal.dlsim(signal.cont2discrete(([1], [1, 1]), 0.1), u=[1, 1], t=[0.0, 0.1]) позволяет моделировать 1/(s+1) функцию в интервале времени [0, 0.1] с управляющим сигналом со значением 1.Но эти функции не позволяют моделировать только один шаг с начальными значениями.

Существуют ли другие функции, позволяющие смоделировать один шаг передаточной функции или как это лучше сделать?

1 Ответ

0 голосов
/ 18 декабря 2018

Прежде всего, я не уверен, хотите ли вы использовать дискретное время или непрерывное время, потому что вы используете оператор s для продолжения.время, функции dstep и dlsim используются для представления дискретного времени.Однако в моем примере я использовал непрерывный.

Вы можете создать объект dlti в python с помощью функции scipy.signal * lti.Созданный объект фильтра имеет метод step, где первый параметр используется для начального вектора времени. lti.step Таким образом, вы можете построить свой шаговый ответ с помощью этого фрагмента.

import scipy.signal as sig
import matplotlib.pyplot as plt

filt = sig.lti(1, (1,1))

plt.plot(*filt.step())
plt.plot(*filt.step(-1))
plt.show()

Если вы не хотите строить их, просто позвоните

t, a = filt.step()
...