编码器。当编译TwinCat目标偏心不工作

5视图(30天)
你好,
我工作在一个情况下我把仿真软件生成的代码到嵌入式PC。万博1manbetx我的模型在仿真软件工作正常,但是当我试图为我的万博1manbetx嵌入式控制器生成代码,它失败了。下面的错误消息。
_ 未能消除调用MATLAB函数“黄油”。non-simulation构建,电话不支持的MATLAB函数消除如果他们不万博1manbetx影响功能。函数“filter1 / MATLAB函数”(# 34.92.133),第6行,列1:“[a, b] =黄油(w (x, y) / (z / 2),“带通”)”
我发现真正的问题是,coder.extrinsic(“黄油”)是不允许外部编译器。但是我真的需要一种方法来创建一个巴特沃斯滤波器在matlab函数块。因为我的系统需要有适应带宽的滤波器。有没有人知道一个可能的解决方案?
函数[a, b] = fcn (w x, y, z)
(11)= 0 (1);
b = 0 (1 (11));
coder.extrinsic (“黄油”);
[a, b] =黄油(w (x, y) / (z / 2),“带通”);

接受的答案

汤姆·布莱恩
汤姆·布莱恩 2014年3月17日
如果你离开了coder.extrinsic(黄油)命令,那么它将为嵌入式处理器生成代码。但是,在这种情况下,黄油()命令需要持续的投入。
可以创建一个表可以索引到的常系数值的函数离散w, x, y, z值。这是一个可行的选择吗?
2的评论
干billiet
干billiet 2014年3月20日
这确实不行不通的。因为解非常数。但它brougt我添加一个“数据库”的概念(阅读:大数组)计算数组中已经移情功能。

登录置评。

答案(1)

Kaustubha Govind
Kaustubha Govind 2014年3月13日
你可以实现的功能在C语言中,或找到一个这样做的第三方库,称之为在MATLAB代码中使用 coder.ceval
1评论
Ketan
Ketan 2014年3月15日
这里有一些其他的选择:
——在MATLAB中实现自己理想的滤波器系数的计算和调用这个代码在您的功能块
——试图利用一些更高级的过滤功能的DSP系统工具箱:

登录置评。

类别

找到更多的在DSP系统工具箱支持硬件万博1manbetx帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!