simulink生成Java代码_MATLAB:Simulink问题“不支持代码生成”

我有类似于Simulink上的以下框图,它看起来相当混乱,尤其是越来越多的块 .

d68d7aca-88f8-4226-8362-a7196b671552.png

我想用功能块替换3点求和块,同时保持相同的输出 .

ebf5adaf-8b6a-4059-8c6f-1b034b7a06f8.png

首先,我开始将代码放在功能块中:

function y = fcn(u)

sys1 = tf(0.5,[1 0 0 4]);

sys2 = tf([3 0.5],[1 0 15]);

sys3 = tf(1,[1 1]);

y = sys1 + sys2 + sys3;

但是我遇到了一个错误,称Simulink不支持代码生成 .

“'tf'类不支持代码生成 . ”

我试图用一些困难实现外在函数或'包装函数' . 我创建了一个名为myWrapper.m的新脚本,其中包含相同的代码:

function y = myWrapper(u)

sys1 = tf(0.5,[1 0 0 0 4]);

sys2 = tf([3 5],[1 0 15]);

sys3 = tf(1,[1 1]);

y = sys1 + sys2 + sys3;

并将MATLAB函数编辑为:

function y1 = fcn(u1)

y1 = myWrapper(u1);

错误仍然存在 .

我想以某种方式从MATLAB功能块访问 myWrapper.m 文件 . 有关如何做到这一点的任何指示?按照上面给出的链接和official docs,我在MATLAB功能块中以这样的结果结束:

function y1 = fcn(u1)coder.extrinsic('myWrapper')

y1 = myWrapper(u1);

上面的最后一个代码在语法上是不正确的,我对它应该如何完成感到茫然 . MATLAB自动将上述代码更正为:

function y1 = fcn(u1,coder,extrinsic, myWrapper )

y1 = myWrapper(u1);

这不是我想要的 .

关于如何做到这一点的任何提示和/或建议将不胜感激 .

两年前在MathWorks论坛here上提出了类似的问题,没有回复 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值