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

Connection matrix implemented

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11390 d63d8f72-b253-0410-a779-e742ad2e26cf
parent e60bd03d
No related branches found
No related tags found
No related merge requests found
...@@ -22,8 +22,8 @@ coil_names_and_current_sign = {... ...@@ -22,8 +22,8 @@ coil_names_and_current_sign = {...
{'F_006'}, [1]; ... % Circuit 16 {'F_006'}, [1]; ... % Circuit 16
{'F_007'}, [1]; ... % Circuit 17 {'F_007'}, [1]; ... % Circuit 17
{'F_008'}, [1]; ... % Circuit 18 {'F_008'}, [1]; ... % Circuit 18
{'G_001', 'G_002', 'G_003', 'G_004', 'G_005', 'G_006'}, [1,1,1,1,1,1]; ... % Circuit 19 {'G_001', 'G_002', 'G_003', 'G_004', 'G_005', 'G_006'}, [1,1,1,-1,-1,-1]; ... % Circuit 19 Lower coils connected in opposite direcetion
{'T_001', 'T_002', 'T_003'}, [1,1,1]; ...% Circuit 20 {'T_001', 'T_002', 'T_003'}, [1,1,-1]; ...% Circuit 20 %T003 in opposite direction
}; };
power_supply_names_and_current_sign = {... power_supply_names_and_current_sign = {...
...@@ -90,32 +90,111 @@ combined_structure.mds_paths = mds_paths; ...@@ -90,32 +90,111 @@ combined_structure.mds_paths = mds_paths;
combined_structure.coil_current_signs = coil_current_sign; combined_structure.coil_current_signs = coil_current_sign;
combined_structure.power_supply_current_signs = power_supply_current_sign; combined_structure.power_supply_current_signs = power_supply_current_sign;
combined_structure.circuit_names = circuit_names; combined_structure.circuit_names = circuit_names;
combined_structure = get_circuiting(combined_struct); %Add circuiting information combined_structure = get_circuiting(combined_structure); %Add circuiting information
end end
%% Create the connection matrix from the previous information
function circuit_struct = get_circuiting(circuit_struct) function circuit_struct = get_circuiting(circuit_struct)
% Get dimension of the circuits % Get dimension of the circuits
circuit_struct.ntotcircuits = numel(circuit_struct.circuit_names); circuit_struct.ntotcircuits = numel(circuit_struct.circuit_names);
circuit_struct.ntotpowersupply = numel(circuit_struct.power_supply_names); circuit_struct.ntotpowersupplies = numel(circuit_struct.power_supply_names);
circuit_struct.ntotcoils = numel([circuit_struct.coil_names{1:end}]); circuit_struct.ntotcoils = numel([circuit_struct.coil_names{1:end}]);
circuit_struct.ncoilpercircuit = zeros(1,ntotcircuits); circuit_struct.ncoilpercircuit = zeros(1,circuit_struct.ntotcircuits);
for ii=1:ntotcircuits for ii=1:circuit_struct.ntotcircuits
circuit_struct.ncoilpercircuit(ii) = numel(circuit_struct.coil_names{ii}); circuit_struct.ncoilpercircuit(ii) = numel(circuit_struct.coil_names{ii});
end end
% Each circuit has only 1 power supply, number of elements per circuit = % Each circuit has only 1 power supply-> number of elements per circuit =
% number of nodes per circuit= number of coils per circuit + 1; % number of nodes per circuit= number of coils per circuit + 1;
circuit_struct.nnodespercircuit = circuit_struct.ncoilpercircuit + 1; circuit_struct.nnodespercircuit = circuit_struct.ncoilpercircuit + 1;
circuit_struct.nelementspercircuit = circuit_struct.nnodespercircuit;
circuit_struct.ntotelements = sum(circuit_struct.nnodespercircuit); circuit_struct.ntotelements = sum(circuit_struct.nnodespercircuit);
connection_matrix = struct([]); circuit_struct.connection_matrix = struct([]);
power_supply_index = 0;
coil_column_index = 2*circuit_struct.ntotpowersupplies ;
for ii=1:circuit_struct.ntotcircuits for ii=1:circuit_struct.ntotcircuits
circuit_connetion_matrix = zeros(circuit_struct.nnodespercircuit(ii), 2*circuit_struct.ntotelements); circuit_connection_matrix = zeros(circuit_struct.nnodespercircuit(ii), 2*circuit_struct.ntotelements);
% Put power supply connection
power_supply_index = ii;
if circuit_struct.power_supply_current_signs{power_supply_index} == 1
circuit_connection_matrix(1,2*(power_supply_index-1)+2) = 1;
circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+1) = 1;
elseif circuit_struct.power_supply_current_signs{power_supply_index} == -1
circuit_connection_matrix(1,2*(power_supply_index-1)+1) = 1;
circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+2) = 1;
end
% Put coil connection
for jj=1:circuit_struct.ncoilpercircuit(ii)
if circuit_struct.coil_current_signs{ii}(jj) == 1
circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 1 ) = 1;
circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 2 ) = 1;
elseif circuit_struct.coil_current_signs{ii}(jj) == -1
circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 2 ) = 1;
circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 1 ) = 1;
end
end
coil_column_index = coil_column_index + 2*circuit_struct.ncoilpercircuit(ii);
circuit_struct.connection_matrix{ii} = circuit_connection_matrix;
% Plot all the connaction matrices as a check
doplot = 0;
if doplot
plot_connection_matrix(circuit_connection_matrix, circuit_struct.power_supply_names, circuit_struct.coil_names);
end
end end
end end
%% Plot connection matrix
function plot_connection_matrix(mat, psnames, cnames, circuitname, circuit )
% Plot the value of a matrix in separated block
figure
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:numel(psnames)
index = index +1;
xlab{index} = [psnames{ii}{1} 'in'];
index = index +1;
xlab{index} = [psnames{ii}{1} 'out'];
end
for ii=1:numel(cnames)
for jj=1:numel(cnames{ii})
index = index +1;
xlab{index} = [cnames{ii}{jj} 'in'];
index = index +1;
xlab{index} = [cnames{ii}{jj} 'out'];
end
end
shg
axis ij
ax = gca;
colormap(bone(2))
xlabel('Element name');
ylabel('Node');
set(ax,'Xtick', xti, 'Ytick', yti, 'XTickLabel', xlab, 'YTickLabel', ylab')
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment