声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1814|回复: 12

[基本模块类] 关于模块的封装,请高手帮忙!!!

[复制链接]
发表于 2008-1-24 09:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在模块的封装时,想用一个checkbox的相应变量来控制其他变量的使能与否,在checkbox相应变量的回调函数里输入set_param(gcb,'MaskCallbacks',{'','','','','WaveSelector_Callback'});再建立一个m文件编写一个回调函数WaveSelector_Callback( ),m文件的实现如下:
function WaveSelector_Callback( )
if str2num(get_param(gcb,'show'))==1
   set_param(gcb,'MaskEnables',{'on','on','off', 'off','on'});
else
   set_param(gcb,'MaskEnables',{'on','on','on', 'on','on'});
end

但是在模型封装好之后,双击模块勾选checkbox确定后提示变量show没有定义.
不知道 checkbox的值是不是获取方法有误,还是有其他的原因,还请高手指点!!!
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-1-24 12:29 | 显示全部楼层
高手帮忙啊!!!
 楼主| 发表于 2008-1-25 09:26 | 显示全部楼层
witty01和花如月两位高手在吗,还请指教啊!!!
发表于 2008-1-25 13:55 | 显示全部楼层
:@) ,花如月是高手,我可不是
首先你的语句我不是很懂,
但是,你把这个语句放在checkbox的callback里面肯定是不对的,
你没看封装的帮助文件吧,里面有一句话
Callbacks are not intended to be used to alter the contents of a masked
subsystem. Altering a masked subsystem's contents in a callback, for example
by adding or deleting blocks or changing block parameter values, can trigger
errors during model update or simulation. If you need to modify the contents
of a masked subsystem, use the mask's initialization code to perform the modifications。
所以你应该把他放在initialization标签里面

在maskedit的对话框里面点击help就可以看到封装的帮助
 楼主| 发表于 2008-1-28 10:20 | 显示全部楼层
witty01你好,如果改在initialization中实现的话,这些语句只执行一次,不能达到勾选checkbox与否动态改变参数设置的使能状态的目的.看了一些matlab中自带的电机模块,它也把这个语句放在checkbox的callback里面,只是它用的powericon( )函数不知道怎么实现!
发表于 2008-1-28 12:55 | 显示全部楼层
电机模型的checkbox并没有动态啊,参数在仿真的过程中都是不变的, 我觉得它那个checkbox只是决定是否显示下面的参数吧。
 楼主| 发表于 2008-1-29 09:09 | 显示全部楼层
我使用checkbox就是要实现这种功能,还请指教啊!!!
发表于 2008-1-29 15:54 | 显示全部楼层
你要的是事实改变参数吗?
老实说用你的思路怎样实现我不会
我在处理这个问题的时候是把变化的参数作为一个输入
我觉得只有从其它模块传递来的参数是实时变化的
 楼主| 发表于 2008-1-29 16:12 | 显示全部楼层
witty01,你好,你的意思我明白了,如果我把动态参数用一个外界输入,checkbox只是用来控制一些参数的使能与否,checkbox的状态怎么获取?又怎么用它来控制其它参数的使能状态呢?很谢谢您这么热心,感谢!!!
发表于 2008-1-29 16:34 | 显示全部楼层
个人认为:checkbox不能控制什么的
至于实现其它参数的使能与否我也正在考虑这个问题
还没想出来,下个月一定要想出来,我的工作计划啊,:lol
一起想吧
 楼主| 发表于 2008-1-29 16:41 | 显示全部楼层
好的,总想把自己的模型封装的和matlab自带模型一样,不过内部的很多东西我们都看不到,一起努力!!!在线的时候多登陆一下QQ,这样方便交流哦!!!
发表于 2008-1-29 16:58 | 显示全部楼层
不行,单位不让上QQ,会扣钱,还要影响部门KPI
 楼主| 发表于 2008-1-29 17:02 | 显示全部楼层
哦,那我以后在论坛里发短消息给你请教问题!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-9 12:28 , Processed in 0.059101 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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