我正在使用可逆最小二乘(RLS)来确定动态系统的系统参数。RLS算法是在离散时间内实现的,而实际系统是连续的。在实践中,这很容易做到,但是我如何一起模拟这两个呢?顺序解决方案无济于事,因为我想使用RLS估计来影响系统输入。
如果我正确的话,内置的事件触发功能只能停止集成。因此,我必须在RLS算法的每个采样点处停止,然后解决采样之间的误差。->在Simulink中如何实现?
我发现的唯一真正的解决方案是以自适应步长实现自己的RK45。它被设计为采用离散和连续的系统(饱和度方程和差分方程),并以自适应步长进行求解,直到需要获取新样本为止。这种方法就像一个魅力一样-在慢速动态下,仅对离散点进行采样才能获得足够短的采样时间,而快速动态性则可以产生较小的积分步长,这与预期的一样!
而且该实现比预期的要省力得多,并且与Matlabs ode45相比令人惊讶地好。更低的计算成本,更高的精度,更少的ode跳变后的振荡!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句