概述
问题如下:在建模后利用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函数 LEVEL-1运行报错:flag=2的问题,不胜感激!...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复