谐振子系统的仿真速度

时间:2014-11-17 11:09:41

标签: matlab estimation

我正在编写一个仿真来获得谐振子系统的真实速度

enter image description here

其中P = [p1 p2; p2 p3]可以使用Rung-Kutta积分方法找到P(0)= [1 0; 0 1]

现在,我想编写matlab代码以获得系统的真实位置z并估计x,其中x = [x1 x2]'。这是我找到x和z的代码。但是,结果不正确。你能帮我修改吗?这是我的matlab代码

function  z=getPos(x)
  %% Function to get velocity
  v=0+1*randn; %r=1;
  z=[0 1]*x+v; 
return

这是我的结果 enter image description here

让我们看看帮助我是解决方案的正确实现。谢谢

1 个答案:

答案 0 :(得分:0)

你的代码可以返回一个负值,因为randn是一个标准差为1的正态分布随机数。理论上这可以返回任何数字,并且有大约15%的可能性小于-1。

你也应该在每一步更新x。我将x作为getPos和xdot的输入作为输出。然后添加另一个步骤来更新位置。