Solve state space equation and initial conditions
48 次查看(过去 30 天)
显示 更早的评论
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 个评论
Aquatris
2018-8-29
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.
回答(1 个)
Akshay Khadse
2018-8-29
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!