Skip to content
Snippets Groups Projects
Commit e75e7f2f authored by Francesco Carpanese's avatar Francesco Carpanese
Browse files

function get information from the connection matrix and plot it

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11404 d63d8f72-b253-0410-a779-e742ad2e26cf
parent 3e9f38a1
No related branches found
No related tags found
No related merge requests found
function info = extract_info_connection_matrix(IDS)
% Extract the following information from pf_active and connection
% matrix and add them to the IDS structure
% -------------------------------------------
% Which coils belong to a specific circuit added to
% pf_active.circuit{i}.coils_belonging_to_circuit
% Which power supply belongs to a spefic circuit added to
% pf_active.circuit{i}.supplies_belonging_to_circuit
% Which circuit does a given coil belong to added to
% pf_active.coil{i}.belonged_circuit
% Which circuit does a given power supply belong to
% pf_active.supply{i}.belonged_circuit
info = IDS;
info.ntotcoils = numel(IDS.pf_active.coil);
info.ntotcircuits = numel(IDS.pf_active.circuit);
info.ntotsupplies = numel(IDS.pf_active.supply);
info.ntotelements = info.ntotcoils + info.ntotsupplies;
for ii = 1:info.ntotcircuits
% Supplies belonging to the circuit
supplies_of_circuit = {};
supplies_of_circuit_ind = [];
counter = 0;
for jj=1:info.ntotsupplies
index = (2*(jj-1) + 1);
if sum(IDS.pf_active.circuit{ii}.connections(:,index)) == 1
counter = counter +1;
supplies_of_circuit{counter} = IDS.pf_active.supply{jj}.name;
supplies_of_circuit_ind(counter) = jj;
end
end
info.pf_active.circuit{ii}.supplies_belonging_to_circuit = supplies_of_circuit;
info.pf_active.circuit{ii}.supplies_ind_belonging_to_circuit = supplies_of_circuit_ind;
% Find to which circuit each supply belongs to
for jj=supplies_of_circuit_ind
info.pf_active.supply{jj}.belonged_circuit = IDS.pf_active.circuit{ii}.name;
info.pf_active.supply{jj}.belonged_circuit_ind = ii;
end
% Coils belonging to the circuit
coils_of_circuit = {};
coils_of_circuit_ind = [];
counter = 0;
for jj=1:info.ntotcoils
index = (2*(jj-1) + 1 + 2*info.ntotsupplies);
if sum(IDS.pf_active.circuit{ii}.connections(:,index)) == 1
counter = counter +1;
coils_of_circuit{counter} = IDS.pf_active.coil{jj}.name;
coils_of_circuit_ind(counter) = jj;
end
end
info.pf_active.circuit{ii}.coils_belonging_to_circuit = coils_of_circuit;
info.pf_active.circuit{ii}.coils_ind_belonging_to_circuit = coils_of_circuit_ind;
% Find to which circuit each coil belongs to
for jj=coils_of_circuit_ind
info.pf_active.coil{jj}.belonged_circuit = IDS.pf_active.circuit{ii}.name;
info.pf_active.coil{jj}.belonged_circuit_ind = ii;
end
end
function plot_connection_matrices(IDS)
info = extract_info_connection_matrix(IDS);
for kk=1:info.ntotcircuits
figure
mat = info.pf_active.circuit{kk}.connections;
b = zeros([size(mat)]+1);
b(1:end-1, 1:end-1) = mat;
pcolor(b)
yti = [1:size(b,1)]+0.5;
xti = [1:size(b,2)]+0.5;
ylab = cellstr(num2str([1:size(b,1)-1]'));
index = 0;
xlab = {};
% Get the labels
for ii=1:info.ntotsupplies
index = index +1;
if any(ii==info.pf_active.circuit{kk}.supplies_ind_belonging_to_circuit)
addcolor = '\color{red}';
else
addcolor = '\color{green}';
end
xlab{index} = [addcolor info.pf_active.supply{ii}.name 'in'];
index = index +1;
xlab{index} = [addcolor info.pf_active.supply{ii}.name 'out'];
end
for ii=1:info.ntotcoils
if any(ii==info.pf_active.circuit{kk}.coils_ind_belonging_to_circuit)
addcolor = '\color{red}';
else
addcolor = '\color{black}';
end
index = index +1;
xlab{index} = [addcolor info.pf_active.coil{ii}.name 'in'];
index = index +1;
xlab{index} = [addcolor info.pf_active.coil{ii}.name 'out'];
end
shg
axis ij
ax = gca;
colormap(bone(2))
xlabel('Element name. (red) Elemement belonging to circuit. (green) power supplies. (black) coils');
ylabel('Node');
title(['Circuit ' num2str(kk) ': ' info.pf_active.circuit{kk}.name])
set(ax,'Xtick', xti, 'Ytick', yti, 'XTickLabel', xlab, 'YTickLabel', ylab')
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment