Euler method with state space model
37 ビュー (過去 30 日間)
古いコメントを表示
Michael Brehmer
2020 年 12 月 10 日
回答済み: Michael Brehmer
2020 年 12 月 11 日
Hello,
Im trying solve an equation in form of a state space model with Eulers (forward) method.
My input u is a vector of accelerations that I have given on discrete points (ax). As output I expect a scalar for each discrete point on which eulers method is calculated.
What I did so far:
generate a PTD2 with those values:
s=tf('s');
pt2 = s/((s+0.1)*(s+4));
SYS = ss(pt2);
A = SYS.A;
B = SYS.B;
C = SYS.C;
D = SYS.D;
I created a linspaced timevector t_i that is equally distributed over all my discrete points. To make it easier to read I extracted some values of the real data:
% ax = traj.ax(1:10);
% you can use this vector of accelerations if you want
ax = [-0.7412; -0.749 ;-0.7525;-0.7508;-0.7443;-0.7331;-0.7178;-0.699;-0.6779;-0.6540];
t_i = linspace(1, 5, 10);
h = diff(t_i(1:2)); % calc step size
x = t_i(1) : h : t_i(end); % the range of x - not sure about this
y = zeros(length(x),2); % allocate the result y
u= ax; %make clear that ax is the input
Now I want to solve Eulers method as state space model:
for i=1:10-1
dx = A*x(i) + B*u(i);
x_k1 = x_k + dx*h; %x_k1 is x_k+1
x_k = x_k1;
% y should be a scalar output in my case, since I want to get weighted accelerations as output - but I can only compile if I put the (i,:) right now.
y(i,:) = C*x_k;
end
Is it possible to use x as a state vector of the ptd2 inside the eulers method? how should I define the range for x in this case, do I even need it?
I wrote this with the help of some code I found in the forum to differential equation problems, and tried to expand it to a state space model but im a bit lost right now. I tricked with the matrices for y, since I expect an output that is a scalar for each input but I have no idea how to achieve this.
Is it even possible to solve a state space model with this euler method?
0 件のコメント
採用された回答
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Assembly についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!