look up table查表模块

2020-04-17 00:42

如何用matlab&simulink的look up table查表模块实现下例函数?

2013-06-01 20:02

例如输入0~2pi/3时 输出为1 输入为2pi/3~pi时 输出为0 感谢回答

就是说输出时不连续的 这样应该怎么设置输入输出 图中这个表应该怎样实现呢

你好,我试了下貌似应该是像我图里这样设置(Iar)

可是运行之后出现下图这种情况。主要是lookup table模块设置完不是应该可以在模块上显示出波形的吗 我的却是一个问号

回答

首先,你现在设置的参数是存在问题的,因为作为输入参数的插值节点(breakpoints)要求必须严格单调增加,而你所给的 [0 2*pi/3 2*pi/3 pi pi 5*pi/3 5*pi/3 2*pi]

其第2、3,4、5,6、7三组节点相同,不满足要求。

修改的做法是,在跃变的节点处把左边的节点减去eps或右边的加上eps(虽然从原理上看是跃变,但从实现的角度需要做这样的处理,几乎完全不会有影响),例如: [0 2*pi/3-eps 2*pi/3 pi-eps pi 5*pi/3-eps 5*pi/3 2*pi]

其次,建议使用Lookup Table模块进行一元插值,没必要使用n-D Lookup Table模块。后者增加了不必要的复杂不说,而且在我这里设置和一元查表模块相同的参数却仍然报错,原因暂未查明。

最后,建议把查表的数据保存为变量,然后在模块参数中使用变量,维护起来更方便(尤其对于节点参数需要多次使用的的这种场合)。 ======= 补充说明 =======

在写完上面的内容后(在R2008a上测试),我又在R2012b上试了试,有两点补充:

1、Lookup Table模块在R2010b之后的版本被取消了,取代它的是1-D Lookup Table,而其本质上是n-D Lookup Table模块的特殊参数设置。从你的贴图看,用的应该是R2011a或者更新的版本。

2、关于上面的节点数据报错问题:

[0 2*pi/3-eps 2*pi/3 pi-eps pi 5*pi/3-eps 5*pi/3 2*pi]

在R2012b上报出更具体的错误位置(在第7个节点处),经试 (5*pi/3-eps)-5*pi/3

得到结果为0,这是因为eps/(5*pi/3)=4.2407e-17,已超出双精度浮点数的精度范围,也就是说,在5*pi/3上面加eps和没加一样。

解决的办法可以是把eps换成一个更大的数,或者使用类似pi*(1-eps)代替pi-eps的做法: x=[0 2*pi/3-eps 2*pi/3 pi*(1-eps) pi 5*pi/3*(1-eps) 5*pi/3 2*pi];

我把示例模型作为附件上传,供参考。

Lookup_Table_2012b.mdl大小:33.84K

怎么在matlab simulink中的查表模块(look up table)添加已经做好的表格

2011-08-25 22:09

对于3维以上的表格,是没有办法直接编辑的,方法是这样: 首先在breakpoints中将你每一维的插值点写入,比如是: [10,20] [10,20] [10,20]

这样表格为两页两行两列。总共有八个数据。 table data中的数是这样写的

reshape([4,16,10,0,5,19,18,0],2,2,2)

这里使用到了reshape函数,它是把一个向量重新整合成一个矩阵的形式。


look up table查表模块.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:城市道路交通考题归纳

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: