登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 Simulink打不开的解决办法  

2010-05-20 22:17:03|  分类: matlab仿真 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
       近来,好多研友反应从论坛下载的模块不能打开,其实这个问题好早就有人提出,也讨论了一些解决方法。为了方便大家,我整理了一下相关内容,并置顶讨论,大家如果有新的见解和解决方法,提出来大家共同探讨。

1.问题产生的原因:
(1)matlab版本的不同,比如用6.5打开7.0时,7.0的一些模块6.5没有;
(2)模型中含有不能识别的字符,比如中文等等,尤其是matlab对中文的支持不是很好(不知道是不是D版的原因)。

2.解决的办法
(1)在工作空间中输入下列命令,然后打开。
bdclose all;
Enc='windows-1252';
set_param(0,'CharacterEncoding',Enc);
(2)用
bdclose all
set_param(0, 'CharacterEncoding', 'ISO-8859-1')
即可打开6.5中编辑的带中文的mdl文件
同样如果要在7.0的模型里用中文注释,然后保存,就需要
set_param('ModelName', 'SavedCharacterEncoding', 'ISO-8859-1')
这里ModelName是你的mdl模型名,而且必须被打开了。(by chen1974)
(3)用记事本打开
为了大家更加清楚,我给大家截了一些图片:)
a. 打不开文件,出现错误:
Warning: Unable to load model file 'C:\MATLAB7\work\demo.mdl'.  Run "bdclose all; set_param(0, 'CharacterEncoding', Enc)" where Enc is one of Shift_JIS, windows-1252, ISO-8859-1, then load the model.  The first character that is not supported in the current character encoding setting ('ibm-1386_P100-2002') occurs on line 37, byte offset 22. To correctly load models with non-ASCII characters, you must explicitly use the character encoding that was used to save the file.  Type "help slCharacterEncoding" for more information on setting character encoding and to learn more about which encodings are commonly found on your platform.
> In general\private\openmdl at 13
  In open at 130
  In uiopen at 151


b. 右键点击用写字板或记事本打开,发现原来是有汉字不能识别,将其改为英文即可,存盘退出。


c.出现问题的参数是“LastModifiedBy”,这是最后修改模型人的名字;假如你的机子装系统的时候个人名字和单位填的是中文的话就要注意了,你装matlab时默认得也是这个中文名字,如果不改的话就会出现这个问题了。所以大家尽量用英文(包括S-function的注释),以避免不必要的麻烦!

然后就可以打开了:) 


3.最后给大家几点建议:
(1)建议大家都统一用matlab7.0版本的,一些7.0.1等等如无必要,就不要装了。顺便说一下,有人说装了matlab7.0以后,系统进程里有一个Matlab Server.exe,占用内存很大,去掉的方法就是在管理工具->服务中将的启动类型由“自动”改为”禁止“就可以了。
(2)尽量避免用中文!
1)装matlab的时候,注意你的用户及单位一定要用英文或数字,不要用中文;
2)自己封装的模块名字不要用中文,模型中的注释也要用英文;
3)文件存放的路径也要用英文,如:C:\MATLAB7\work\matwav。

暂时先想到这么多,以后有的话会继续补充。
 
 
 

但是其中的fuzzy logic controller刚开始用常常容易出错

常见报错:

1、MinMax blocks do not accept 'boolean' signals. The input signal(s) of block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Max (COA)' must be one of the MATLAB 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'single', or 'double' data types
2、An error occurred while propagating data type 'boolean' from block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Zero Strength (COA)', output port 1。

 

以下是解决方案:

 

1、fis编辑器(MATLAB的command window中键入fuzzy打开)中,建立好规则后,file-export-to workspace

2、对于7.0版本,simulink模型窗口菜单中,Simulation-Configuration Parameters-Implement logic signals as boolean data前面默认的勾选去掉

    而对于6.5及以前版本,则是SIMULATION -SIMULATION PARAMETERS-ADVANCED中

 

这是个小问题,但是非常折磨人!

  评论这张
 
阅读(2489)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018