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出来的?
展开
 我来答
tianxiawulang
2014-01-12 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2632万
展开全部

分析了一下代码,应该是调用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 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式