我需要从速度信号中获得一个位置。我需要在SIMULINK和MATLAB中完成它,我需要这样做来控制一个真正的机器人。 我无法使用SIMULINK的标准连续时间积分器,因为我的时间步长在每次迭代时都会发生变化。
因此我想在下面的嵌入式matlab函数中使用一个简单的forward-euler方法。
我不确定这是最好的解决方案,因此我想知道您对此的看法|
function pCurr = fcn(vCurr, dt,p0)
%#codegen
persistent pOld
persistent vOld
if isempty(pOld)
pOld = p0;
end
if isempty(vOld)
vOld = vCurr;
end
pOld = pOld + trapz([vOld vCurr])*dt;
vOld = vCurr;
pCurr = pOld;
end
提前致谢