Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
查看: 1429|回复: 19

求助: 模型中一些参数在生成时被自动优化

[复制链接]

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
发表于 2025-11-12 15:59:47 | 显示全部楼层 |阅读模式
在Simulink模型中新建了一些参数,希望在生成代码的时候能生成全局变量,但是这些参数在模型中并没有作用就被自动优化了没有生成代码(参数设置里也已经设置为exported global)。
请问这个问题应该如何解决?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
 楼主| 发表于 2025-11-12 16:02:08 | 显示全部楼层
这些参数在模型里并没有用到,但是在该项目中除了模型生成代码外,还会有一部分手写的代码,那里会用到这些参数,所以就有了这个问题。

点评

给这个补充点赞!  发表于 2025-11-12 16:47
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2025-11-12 17:18:57 | 显示全部楼层
lh_404 发表于 2025-11-12 16:02
这些参数在模型里并没有用到,但是在该项目中除了模型生成代码外,还会有一部分手写的代码,那里会用到这些 ...

模型中不使用,可以不用模型生成它们。使用手写代码单独管理,跟其它手写代码一样处理,有何不可。
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
 楼主| 发表于 2025-11-12 17:37:02 | 显示全部楼层
hyowinner 发表于 2025-11-12 17:18
模型中不使用,可以不用模型生成它们。使用手写代码单独管理,跟其它手写代码一样处理,有何不可。 ...

因为我希望把这些参数的赋值初始化都在模型中做了,这样手写代码的部分就不用再修改了。
如果要这样的话,单独建一个S FUNCTION模块来为这些参数生成代码是否可行?
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2025-11-12 18:11:45 | 显示全部楼层
lh_404 发表于 2025-11-12 17:37
因为我希望把这些参数的赋值初始化都在模型中做了,这样手写代码的部分就不用再修改了。
如果要这样的话 ...

可以,只是相比直接把Terminator改为outport的方案相比要麻烦不少。
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
 楼主| 发表于 2025-11-13 09:31:09 | 显示全部楼层
hyowinner 发表于 2025-11-12 18:11
可以,只是相比直接把Terminator改为outport的方案相比要麻烦不少。

校长,我试了下,把terminator改成outport之后,因为outport出来也没接到别的地方去,生成代码还是会被优化掉。是不是必须要做些什么参与运算?但是模型里又的确没用到这些参数。
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2025-11-13 10:46:03 | 显示全部楼层
lh_404 发表于 2025-11-13 09:31
校长,我试了下,把terminator改成outport之后,因为outport出来也没接到别的地方去,生成代码还是会被优 ...



是不是你没有设置Constant模块的采样时间呢?校长这里可以生成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
 楼主| 发表于 2025-11-13 11:23:43 | 显示全部楼层
hyowinner 发表于 2025-11-13 10:46
是不是你没有设置Constant模块的采样时间呢?校长这里可以生成。

采样时间都设置为了-1但是仍然不生成。请问这个outport后面没有连任何东西吗?这个参数a是不是被配置为了exported global?
回复

使用道具 举报

108

主题

281

帖子

4507

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4507
QQ
发表于 2025-11-13 11:31:54 | 显示全部楼层
lh_404 发表于 2025-11-13 11:23
采样时间都设置为了-1但是仍然不生成。请问这个outport后面没有连任何东西吗?这个参数a是不是被配置为了 ...

是的,连接如上图所示。
a设置成了ExportedGlobal。

你模型可以发出来我看看。
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

3

主题

16

帖子

81

积分

MBD初级工程师

Rank: 2

积分
81
 楼主| 发表于 2025-11-13 14:27:00 | 显示全部楼层
hyowinner 发表于 2025-11-13 11:31
是的,连接如上图所示。
a设置成了ExportedGlobal。

发现原因了,要把这些常数模块和outport都放在模型根目录下才会生成代码(原本放在一个function call subsystem中)。
然后发现了新的问题:这些outport也会生成代码,并放入step函数中,如图所示。但是这些代码会影响我原本的程序在单片机上的运行。当我把step函数中这些outport的代码都注释掉之后,程序运行就正常了。甚至我在模型的中断里就没有调用这个step函数。请问这有可能是什么原因?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-6-25 05:28 , Processed in 0.129110 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表