我是靠谱客的博主 缥缈翅膀,这篇文章主要介绍使用MATLAB中S函数flag=1,请教:S函数 LEVEL-1运行报错:flag=2的问题,不胜感激!...,现在分享给大家,希望可以做个参考。

问题如下:在建模后利用S函数做卡尔曼滤波算法,其中涉及诸多时变的模型参数得在每次采样时刻的更新,因此编写了如下代码及大致建模框图,还有报错内容,还望各位能不吝赐教。     求解器采用的是变步长,最大步长设为1;   参数是用Mux混路后输入,

报错内容为:while executing MATLAB S-function 'KF', flag = 2 (update), at time 0.0.输入参数太多。

代码如下:

function [sys,x0,str,ts] = KF(t,x,u,flag)

switch flag,

case 0

[sys,x0,str,ts]=mdlInitializeSizes;

case 2

sys=mdlUpdate(t,x,u);

case 3

sys=mdlOutputs(t,x,u);

case{1,4,9}

sys=[];

% Unexpected flags %

%%%%%%%%%%%%%%%%%%%%

otherwise

DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));

end

function [sys,x0,str,ts]=mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates  = 0;

sizes.NumDiscStates  = 2;

sizes.NumOutputs

最后

以上就是缥缈翅膀最近收集整理的关于使用MATLAB中S函数flag=1,请教:S函数 LEVEL-1运行报错:flag=2的问题,不胜感激!...的全部内容,更多相关使用MATLAB中S函数flag=1,请教:S函数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(128)

评论列表共有 0 条评论

立即
投稿
返回
顶部