Euler method with state space model
    24 views (last 30 days)
  
       Show older comments
    
    Michael Brehmer
 on 10 Dec 2020
  
    
    
    
    
    Answered: Michael Brehmer
 on 11 Dec 2020
            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 Comments
Accepted Answer
More Answers (0)
See Also
Categories
				Find more on Ordinary Differential Equations in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!