Mark Lewis' BLOG

导航

【博客搬家】【转】matlab 6.5和7.0中simulink模型的兼容问题

此为【博客搬家】文章,原文发布在:http://hi.baidu.com/lanseiboy/blog/item/91f10ca15e071ba0caefd02e.html
 
【转】matlab 6.5和7.0中simulink模型的兼容问题
2010-06-15 16:16

mdl文件在6.5里面做的,但是到了7.0里面却打不开,下面就是相关信息:

Warning: Unable to load model file 'd:\MATLAB7\work\*.mdl'.   Run "bdclose all; set_param(0, 'CharacterEncoding', Enc)" where Enc is one of 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 1795, byte offset 21. 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.

问题产生原因:模型中含有不能识别的字符,比如中文等等,尤其是matlab对中文的支持不是很好(不知道是不是D版的原因)。解决的办法:

(1)在工作空间中输入下列命令,然后打开

bdclose all;

set_param(0,'CharacterEncoding','windows-1252')

或(2)在工作空间中输入下列命令,然后打开

bdclose all

set_param(0, 'CharacterEncoding', 'ISO-8859-1')

或(3)用写字板或记事本打开模型文件*.mdl,发现原来是有汉字不能识别,将其改为英文,存盘退出即可。

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


同样如果要在7.0的模型里用中文注释,然后保存,就需要

set_param('ModelName', 'SavedCharacterEncoding', 'ISO-8859-1')

这里ModelName是你的mdl模型名,而且必须被打开了。

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

posted on 2011-03-20 09:33  Mark Lewis  阅读(1055)  评论(0编辑  收藏  举报