Почему я получаю сообщение об ошибке «Размеры объединяемых массивов не согласованы при создании файла COMTRADE для модели simulink? - PullRequest
0 голосов
/ 23 января 2020

Я использую приведенный выше код для генерации файлов COMTRADE для различных сценариев ios в Simulink. но всякий раз, когда я добавляю отображение в имитационную модель, я получаю сообщение об ошибке, объясняющее следующее: Размеры сцепляемых массивов не согласованы. Как решить проблему, чтобы я мог использовать дисплей, но в то же время я хочу создать файл COMTRADE?

Ниже приведен код MATLAB, который я использую

  % Create the .dat file
clc
format short
NS1 = size(tout);                 % to find the number of samples
NS2 = NS1(1,1);
FileName = input('Please enter a file name:', 's');
FN_cfg = [FileName,'.cfg'];
FN_dat = [FileName,'.dat'];
Data =[transpose((1:1:NS2)) tout M];
csvwrite(FN_dat,Data)
unique(tout, 'rows', 'stable');
% Create the .cfg file
Config = {'Simulation',' ' ,'1999' ;
                '12', '12A', '0D'};
fileid = fopen(FN_cfg,'w');
for r = 1:size(Config,1)
     for c = 1:size(Config,2)
         var = eval(('Config{r,c}'));
         
         if size(var,1) == 0
            var = ' ';
         end
        
        if isnumeric(var) == 1
           var = num2str(var);
        end
       fprintf(fileid,var);
       if c ~= size(Config,2)
          fprintf(fileid,(','));
       end
    end
    fprintf(fileid, '\n');
end
fclose(fileid);
AC = {'1','Vr',' ',' ','V','1','0','0','-99999','99998','1','1','P';
      '2','Vy',' ',' ','V','1','0','0','-99999','99998','1','1','P';
      '3','Vb',' ',' ','V','1','0','0','-99999','99998','1','1','P';
      '4','Ir',' ',' ','A','1','0','0','-99999','99998','1','1','P';
      '5','Iy',' ',' ','A','1','0','0','-99999','99998','1','1','P';
      '6','Ib',' ',' ','A','1','0','0','-99999','99998','1','1','P';
      '7','Vr',' ',' ','V','1','0','0','-99999','99998','1','1','S';
      '8','Vy',' ',' ','V','1','0','0','-99999','99998','1','1','S';
      '9','Vb',' ',' ','V','1','0','0','-99999','99998','1','1','S';
     '10','Ir',' ',' ','A','1','0','0','-99999','99998','1','1','S';
     '11','Iy',' ',' ','A','1','0','0','-99999','99998','1','1','S';
     '12','Ib',' ',' ','A','1','0','0','-99999','99998','1','1','S'};
fileid = fopen(FN_cfg,'a');
for r = 1:size(AC,1)
     for c = 1:size(AC,2)
         var = eval(('AC{r,c}'));
         
         if size(var,1) == 0
            var = ' ';
         end
        
        if isnumeric(var) == 1
           var = num2str(var);
        end
       fprintf(fileid,(var));
       if c ~= size(AC,2)
          fprintf(fileid,(','));
       end
    end
    fprintf(fileid, '\n');
end
    fprintf(fileid, '50','\n');
    fprintf(fileid, '\n1');
    fprintf(fileid, '\n20000,');
    fprintf(fileid, '%1d',(NS2));
    fprintf(fileid, '\n%s', (datestr(now)));
    fprintf(fileid, '\n%s', (datestr(now)));
    fprintf(fileid, '\nASCII');
    fprintf(fileid, '\n1');
fclose(fileid);
disp('COMTRADE GENERATED!')
...