Я пытаюсь проверить свой код RK4 и иметь модель пространства состояний для решения той же системы. У меня есть система с 14 состояниями с начальными условиями, но условия меняются со временем (каждая итерация). Я пытаюсь сформулировать матрицы A, B, C, D и использовать sys
и lsim
, чтобы скомпилировать результаты для всех моих состояний за весь промежуток времени. Я пытаюсь сделать это примерно так:
for t=1:1:5401
y1b=whatever
.
.
y14b = whatever
y_0 = vector of ICs
A = (will change with time)
B = (1,14) with mostly zeros and 3 ones
C = ones(14,1)
D = 0
Q = eye(14)
R = eye(1)
k = lqr(A,B,C,D)
A_bar = A - B*k
sys = ss(A_bar,B,C,D)
u = zeros(14,1)
sto(t,14) = lsim(sys,u,t,y_0)
then solve for new y1b-y14b from outside function
end
Другими словами, я пытаюсь использовать sto(t,14)
для хранения каждой итерации lsim
и получаю матрицу всех моих состояний для каждого временного шага от 1 до 5401. Я продолжаю получать это сообщение об ошибке:
Error using DynamicSystem/lsim (line 85)
In time response commands, the time vector must be real, finite, and must contain
monotonically increasing and evenly spaced time samples.
а также
Error using DynamicSystem/lsim (line 85)
When simulating the response to a specific input signal, the input data U must be a
matrix with as many rows as samples in the time vector T, and as many columns as
input channels.
Любой полезный вклад приветствуется. Спасибо