Это не система MIMO, это система SISO, но у вас есть несколько входов.
Вы можете создать систему MIMO и применять все свои входы одновременно, которые будут вычисляться по каналам, но одновременно.Более того, вы не можете использовать scipy.signal.lsim
для систем MIMO.Вы можете использовать другие параметры, такие как python-control
(если у вас есть расширение slycot
, в противном случае снова нет MIMO) или harold
, если у вас есть Python 3.6 или выше (отказ от ответственности: я автор).
import numpy as np
from harold import *
import matplotlib.pyplot
nbr_inputs = 5
t_in = np.arange(0,10,0.2)
dim = (nbr_inputs, len(t_in))
x = np.cumsum(np.random.normal(0,2e-3, dim), axis=1)
# Forming a 1x5 system, common denominator will be completed automatically
H = Transfer([[[1, 3, 3]]*nbr_inputs], [1, 2, 1])
Ключевое слово per_channel=True
применяет первый ввод к первому каналу, второй ввод ко второму и т. Д.В противном случае комбинированный ответ возвращается.Вы можете проверить формы, поиграв с ними, чтобы понять, что я имею в виду.
# Notice it is x.T below -> input shape = <num samples>, <num inputs>
y, t = simulate_linear_system(H, x.T, t_in, per_channel=True)
plt.plot(t, y)
Это дает