Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: lh_404

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

[复制链接]

99

主题

247

帖子

4216

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4216
QQ
发表于 2025-11-13 14:30:00 | 显示全部楼层
lh_404 发表于 2025-11-13 14:27
发现原因了,要把这些常数模块和outport都放在模型根目录下才会生成代码(原本放在一个function call subs ...

阻碍你生成代码的FunctionCallSubsystem,不是采样时间。
放在顶层之后,把Constant的采样时间设置Inf,使得不在Step函数里生成赋值代码。
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyo_Matlab
回复

使用道具 举报

3

主题

15

帖子

73

积分

MBD初级工程师

Rank: 2

积分
73
 楼主| 发表于 2025-11-13 15:39:52 | 显示全部楼层
本帖最后由 lh_404 于 2025-11-13 16:12 编辑
hyowinner 发表于 2025-11-13 14:30
阻碍你生成代码的FunctionCallSubsystem,不是采样时间。
放在顶层之后,把Constant的采样时间设置Inf, ...

校长,我把这些常数都放在顶层了,而且也都设置了采样时间为Inf无穷大,编译了模型之后这些模块也变成了粉色(表示不会变化?)。但是还是会在step函数里生成赋值的指令。这个有可能是什么原因?

本帖子中包含更多资源

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

x
回复

使用道具 举报

99

主题

247

帖子

4216

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4216
QQ
发表于 2025-11-13 17:24:10 | 显示全部楼层
lh_404 发表于 2025-11-13 15:39
校长,我把这些常数都放在顶层了,而且也都设置了采样时间为Inf无穷大,编译了模型之后这些模块也变成了粉 ...

粉色是一种采样时间表示,不是被优化了。
你可以把Constant跟输出端口放到初始化模块里,它就不会生成到Step函数里了,参考下面模型:

本帖子中包含更多资源

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

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

使用道具 举报

3

主题

15

帖子

73

积分

MBD初级工程师

Rank: 2

积分
73
 楼主| 发表于 2025-11-14 11:09:59 | 显示全部楼层
hyowinner 发表于 2025-11-13 17:24
粉色是一种采样时间表示,不是被优化了。
你可以把Constant跟输出端口放到初始化模块里,它就不会生成到S ...

校长,我现在就按这个方法做了,的确能把这部分的代码不生成在step里,生成在Initialize函数里了。但是实测这部分代码会影响单片机的正常运行(中断执行的频率不对了),无论采样时间选Inf还是-1都不行,必须注释掉之后才能正常运行。按说这部分代码只会跑一次,而且outport结果并没有在其他地方调用。这个有可能是什么原因?

本帖子中包含更多资源

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

x
回复

使用道具 举报

99

主题

247

帖子

4216

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4216
QQ
发表于 2025-11-14 15:13:10 | 显示全部楼层
lh_404 发表于 2025-11-14 11:09
校长,我现在就按这个方法做了,的确能把这部分的代码不生成在step里,生成在Initialize函数里了。但是实 ...

中断跟FOC_demo_Y结构体变量有什么关系?
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyo_Matlab
回复

使用道具 举报

3

主题

15

帖子

73

积分

MBD初级工程师

Rank: 2

积分
73
 楼主| 发表于 2025-11-14 15:20:56 | 显示全部楼层
hyowinner 发表于 2025-11-14 15:13
中断跟FOC_demo_Y结构体变量有什么关系?

没有任何关系。和这个结构体有关的代码只有这些outport的赋值。
回复

使用道具 举报

99

主题

247

帖子

4216

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4216
QQ
发表于 2025-11-14 16:36:15 | 显示全部楼层
lh_404 发表于 2025-11-14 15:20
没有任何关系。和这个结构体有关的代码只有这些outport的赋值。

那只能推测是这几行代码改变了编译器的优化策略,导致存储位置或尺寸有变化,可以分析下map文件看看。
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyo_Matlab
回复

使用道具 举报

3

主题

15

帖子

73

积分

MBD初级工程师

Rank: 2

积分
73
 楼主| 发表于 2025-11-19 09:47:45 来自手机 | 显示全部楼层
hyowinner 发表于 2025-11-14 16:36
那只能推测是这几行代码改变了编译器的优化策略,导致存储位置或尺寸有变化,可以分析下map文件看看。 ...

感谢校长提供思路!校长学富五车才高八斗!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-7 12:11 , Processed in 0.089169 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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