Я использую приведенный выше код для генерации файлов 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!')