Simulink data inspector report generator is an empty html

36 visualizaciones (últimos 30 días)
Marco
Marco el 7 de En. de 2026 a las 15:16
Movida: Walter Roberson el 25 de En. de 2026 a las 9:24
Hi Guys,
i am having some trouble understanding where the issue lie.
I have a model running on fortran and a real equipment. I import the two sets of data in matlab, do some post processing to make them comparable and then i use simulink data inspector to compare them. Everything works fine, the comparison matches what i am expecting.
So until this point it works fine, but for some reason, when i attempt to generate any kind of report, i only get an empty html file.
If i follow the report generator examples with the inbuilt stock models it works.
I am not sure if the logging/streaming of signals is required in any way or if there is something else that is missing.
Below is the section of the code giving me trouble. Data is in time tables and i am converting them in time series i add to each run for the comparison.
Simulink.sdi.clear;
Simulink.sdi.view;
Simulink.sdi.setRunNamingRule("<model_name>")
run_model = Simulink.sdi.Run.create("run_model");
run_fcc = Simulink.sdi.Run.create("run_fcc");
size_model=size(model_for_comparison);
for i=1:size_model(1,2)
Simulink.sdi.addToRun(run_model,'vars',model_for_comparison(:,i));
end
size_fcc=size(excel_time_final1);
for i=1:size_fcc(1,2)
Simulink.sdi.addToRun(run_fcc,'vars',excel_time_final1(:,i));
end
pause(20);
diffResult = Simulink.sdi.compareRuns(run_fcc.ID,run_model.ID,"abstol",1,"reltol",0.05,"timetol",1);
signalMetadata = [Simulink.sdi.SignalMetaData.Run, ...
Simulink.sdi.SignalMetaData.Line, ...
Simulink.sdi.SignalMetaData.BlockName, ...
Simulink.sdi.SignalMetaData.SignalName];
Simulink.sdi.report('ReportType','Compare',"ReportOutputFile", "Compare.html");

Respuestas (2)

Oliver Jaehrig
Oliver Jaehrig el 8 de En. de 2026 a las 16:16
Please create a Technical Support case for that issue and if possible provide the files needed for reproduction ☺

Marco
Marco el 23 de En. de 2026 a las 8:52
Movida: Walter Roberson hace alrededor de 1 hora
So, techincal support provided the following answer:
In the meantime there is a workaround for you to fix the report by changing the sources. That means you can open the compare.html file and search for all "DataSource" lines. For example in line 1164 and all other lines (I have counted 6...)
Escape the inner quotes:
"DataSource1": " .AOA{:,\"\"}",
"DataSource2": " .AOA{:,\"\"}",
Or use single-quoted JS strings so the inner double-quotes don't need escaping:
"DataSource1": ' .AOA{:,""}',
"DataSource2": ' .AOA{:,""}',
As a result i created the following script to replace programatically the affected strings with the output highlighted by the support team
currentfolder=pwd;
%% replace report_name with the name of the html file created by the simulink.sdi.report command
[fidi,messagi]=fopen(append(currentfolder,'\sdireports\',report_name, '1.html'),'rt');
%% new file will be created to not modify and lose the original input
[fido,message]=fopen(append(currentfolder,'\sdireports\',report_name, '_final.html'),'wt') ;
%% the section below is useful for debuggin (e.g working in a folder with no writing rights)
if fido < 0
error('Failed to open myfile because: %s', message);
end
if fidi < 0
error('Failed to open myfile because: %s', messagi);
end
while~feof(fidi)
l=fgetl(fidi); % read line
if strfind(l,'DataSource1": " .')
% modify line here
l_temp=split(l,"\");
l2=strcat(l_temp(1,1),'\"\"}",');
l=string(l2);
end
if strfind(l,'DataSource2": " .')
% modify line here
l_temp=split(l,"\");
l2=strcat(l_temp(1,1),'\"\"}",');
l=string(l2);
end
fprintf(fido,'%s\n',string(l)); %% copy every line in the new file, including the modified ones
end
fidi=fclose(fidi);
fido=fclose(fido);

Categorías

Más información sobre Simulink Report Generator en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by