MATLAB系统辨识工具箱所得到模型的初始状态问题
用identGUI辨识出传递函数动态模型,用compare(input,model,'InitialState','e')得到的结果比较好,但compare(input,...
用ident GUI辨识出传递函数动态模型,用compare(input,model,'InitialState','e')得到的结果比较好,但compare(input,model,'InitialState','m')的结果就相差很多了
但因为工程要求,编写仿真平台使用的不是MATLAB而是其他语言,不能直接使用工具箱里的函数(但是可以调用MATLAB的基本语句)。在仿真中使用该模型的时候,初始状态应该怎样设置?在网上看到“'InitialState','e'”是“estimates the initial conditions for best fit”,究竟是怎样estimate出来的? 展开
但因为工程要求,编写仿真平台使用的不是MATLAB而是其他语言,不能直接使用工具箱里的函数(但是可以调用MATLAB的基本语句)。在仿真中使用该模型的时候,初始状态应该怎样设置?在网上看到“'InitialState','e'”是“estimates the initial conditions for best fit”,究竟是怎样estimate出来的? 展开
1个回答
展开全部
分析了一下代码,应该是调用predict函数(toolbox\ident\ident\@idmodel\predict.m),初值估计的代码应该在子函数x0iniest中,你可以自己衫袜跟踪运行看看相应的算法,或者,举一个具体的实例,我可以结合具体斗配实例帮助你空塌指做分析。
追问
目前手边没有MATLAB所以只能明天去实验室再看……话说如果要模拟实际工况的话,这种估计出来的初始值有其使用价值么?总觉得这么做有点自欺欺人
追答
没进行深入研究,理解未必正确,说点个人看法供参考。
1、老外做科学研究还是比较靠谱的,既然把e作为一种方法供选择(而且是默认的),应该不会是自欺欺人;
2、根据文档,e和m的差别好像是,e把初始条件也作为未知的,这样相当于模型有了更多的自由度,所以会有更好的拟合效果;而m是使用模型中内部存储的初始状态(internally stored initial state of the model),这就有个问题:这个状态你知道是什么吗?符合实际吗?
3、除了e和m,其实还有另外两个选择:
'z':使用零初始条件(uses zero initial conditions);
x0,直接用一个列向量来指定初值。
请考虑一下,会不会这两种的某一个更合乎你的需要?
特别提醒:以上属于个人的粗浅理解,未必正确,仅供参考。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询