我正在编写一个仿真来获得谐振子系统的真实速度
其中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
这是我的结果
让我们看看帮助我是解决方案的正确实现。谢谢
答案 0 :(得分:0)
你的代码可以返回一个负值,因为randn是一个标准差为1的正态分布随机数。理论上这可以返回任何数字,并且有大约15%的可能性小于-1。
你也应该在每一步更新x。我将x作为getPos和xdot的输入作为输出。然后添加另一个步骤来更新位置。