iCAx开思网

标题: Matlab读取Adams/Control生成的接口文件时出错! [打印本页]

作者: micjor    时间: 2008-4-11 12:12
标题: Matlab读取Adams/Control生成的接口文件时出错!
联合仿真时,首先要由Adams/Control生成接口文件
比如:test.adm, test.cmd, test.m
然后在Matlab中读test.m时就出错,如下:

DECODE Decode convolutional codeword using Viterbi algorithm.

    WARNING : This is now an obsolete mode of DECODE.  Please use VITDEC
              instead.

    See also ENCODE, CYCLPOLY, SYNDTABLE, GEN2PAR.
??? Output argument "msg" (and maybe others) not assigned during call to "D:\Program Files\MATLAB71\toolbox\comm\comm\decode.m (decode)"

好像是说decode函数读变量有问题

Matlab与Adams都设置了相同的工作目录
难道由于版本不行?Matlab7.1.0.246(R14) service pack 3;Adams2005

望高手赐教,万分感谢!

作者: micjor    时间: 2008-4-11 16:48
哈哈,问题解决了
仔细研究了test.m文件,其中有段代码

[flag, topdir]=dos('adams05 -top');
if flag == 0
   temp_str=strcat(topdir, arch);
   addpath(temp_str)
   temp_str=strcat(topdir, '\controls\', arch);
  addpath(temp_str)
  temp_str=strcat(topdir, '\controls\', 'matlab');
   addpath(temp_str)
   ADAMS_sysdir = strcat(topdir, '');
else
   addpath( 'd:\MSC~1.SOF\MSC~1.ADA\2005\win32' ) ;
   addpath( 'd:\MSC~1.SOF\MSC~1.ADA\2005\controls\win32' ) ;
   addpath( 'd:\MSC~1.SOF\MSC~1.ADA\2005\controls\matlab' ) ;
  ADAMS_sysdir = 'd:\MSC~1.SOF\MSC~1.ADA\2005\' ;
end

把flag==0改成flag==1,让if为假,直接执行else后的语句
这段的意思就是加载三条路径,if为真时不知道为什么错

这段正确了,后面decode函数的错也就没了
这是参考了别人经验,可能有高手早知道flag==0这个地方有问题吧
作者: cai304    时间: 2009-5-9 08:01
请问楼主 :
我只会用adams生成  test.m文件
而不知道test.adm, test.cmd, 是怎么生成的
要是方便的话加我QQ287334873
望不吝赐教
非常感谢




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3