Solve state space equation and initial conditions

55 Ansichten (letzte 30 Tage)
Eloy Pena Asensio
Eloy Pena Asensio am 20 Aug. 2018
Kommentiert: Aquatris am 29 Aug. 2018
Hello everybody.
I am trying to implement an adaptive filter identification system. The mass is variable so I have to calculate with Matlab (no Simulink) each transfer function for each mass. The problem is the continuity: I have all the state spaces but I can not solve de last "position" in order to introduce it as initial condition in the next state space.
I have state space equation like:
xdot=A.x+B.u(t) where u=sen(t)
y= C.x where C is [0 C2] so I can solve x2 because I know the value of the amplitude y(t).
The problem is that I can not solve x1, I dont know how to use ode45 for this.
The purpose is to use lsim(sys,u,t,x0) where x0=[x1 x2]
How could I resolve the value of x1 in the last position of my last state space?
A =
x1 x2
x1 -4 -12.5
x2 8 0
B =
u1
x1 4
x2 0
C =
x1 x2
y1 0 3.125
D =
u1
y1 0
As aspicted in the attached figure, the next state space starts in the correct position (last state space position) because I solved x2 but not with the proper velocity and acceleration because I didnt solve x1. The mass changes in each vertical line, the mass change point is marked with a circle
  11 Kommentare
Eloy Pena Asensio
Eloy Pena Asensio am 29 Aug. 2018
But the initial condiction x0, x1 express the velocity and the position. That is why i am confusse about to extrat from y=Cx. What parameter should I uso in y to extract x1?
Aquatris
Aquatris am 29 Aug. 2018
That depends on your system. How did you find the "3.125" number in your C matrix to get the position? You will use the same method to get C value for velocity.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Akshay Khadse
Akshay Khadse am 29 Aug. 2018
For using “ode45”, you will need to create a MATLAB function independent of “u” by substituting “sin(t)” in its place. Then, the “ode45” could be used as
[t,x] = ode45(@functionName,tspan,y0);
where “tspan = [t0 tf]” is the vector with start and end time of the solution and “y0” is the initial condition vector
Examples regarding these can be viewed in documentation of ode45 .

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by