Skip to content

Instantly share code, notes, and snippets.

@maxerbox
Created June 8, 2021 18:51
Show Gist options
  • Save maxerbox/d05b3dc58a070b3c0c557a54ed587df9 to your computer and use it in GitHub Desktop.
Save maxerbox/d05b3dc58a070b3c0c557a54ed587df9 to your computer and use it in GitHub Desktop.
close all;
clc;
% Paramètres géométriques du capteur :
R=0.005; %Rayon d'une électrode en m
L=0.14; %Distance entre les électrodes en m
Uexp=2.47; %Tension en Volt
%TODO
epsilon = 710e-12; %Permitivité du milieu (comment le matériau est permissif)
%TODO
gamma = 0.0828; %Conductivité de l'eau en ? (à mesurer)
d = 0.20;
% Paramètres de la grille de points centrée autour du capteur :
Xmin=-1;
Xmax=1;
Ymin=-1;
Ymax=1;
dx=0.05;
dy=0.05;
% Calcul du courant I et de la quantité surfacique de charge Sigma:
Init = (Uexp*gamma*2*pi)/(1/R - 1/L); %gamma conductivité de l'eau en
Sigma = (I*epsilon)/(gamma*4*pi*R^2);
% Création de la grille de points :
[X,Y]=meshgrid(Xmin:dx:Xmax,Ymin:dy:Ymax);
% Evaluation en chaque point de la grille de la valeur du potentiel
% électrique :
[n,m]=size(X);
V=zeros(n,m);
for i=1:1:n
for j=1:1:m
R1 = ((X(i,j) - L/2)^2 + Y(i,j)^2)^1/2;
R2 = ((X(i,j) + L/2)^2 + Y(i,j)^2)^1/2;
R3 = ((X(i,j) + L/2 + 2*d)^2 + Y(i,j)^2)^1/2;
R4 = ((X(i,j) + L/2 + 2*d + L)^2 + Y(i,j)^2)^1/2;
if (R1 < R)
V(i,j) = 0; % A compléter
V(i,j) = ((Sigma*R^2)/(epsilon))*(- 1/R + 1/L + 1/(2*d+L) - 1/(2*L + 2*d) );
elseif (R2 < R)
V(i,j) = 0; % A compléter
V(i,j) = ((Sigma*R^2)/(epsilon))*(1/L - 1/R - 1/(2*d) + 1/(2*d+L));
elseif (R3 < R)
V(i,j) = ((Sigma*R^2)/(epsilon))*(-1/(2*d+L) + 1/(2*d) + 1/R - 1/L);
elseif (R4 < R)
V(i,j) = ((Sigma*R^2)/(epsilon))*(-1/(2*d+2*L) + 1/(2*d+L) + 1/L - 1/R);
else
V(i,j) = 0; % A compléter
V(i,j) = ((Sigma*R^2)/(epsilon))*(-1/R1 + 1/R2 + 1/R3 - 1/R4);
end
end
end
% Evaluation en chaque point de la grille du champ électrique :
[Ex,Ey]=gradient(V,dx,dy);
% Plot :
figure(01);
contour(X,Y,V);
hold on;
streamslice(X,Y,Ex,Ey); %A utiliser si sur Matlab
%streamline(X,Y, Ex,Ey); %Ne fonctionne pas sur Octave
axis equal
xlabel('x (m)');
ylabel('y (m)');
hold off
d = 0:0.005:0.195;
Ipast = zeros(length(d),1);
for i = 1:length(d)
D1 = (-1/R + 1/L + 1/(L+2*d(i)) - 1/(2*L+2*d(i)));
D2 = (-1/L + 1/R + 1/(2*d(i)) - 1/(L+2*d(i)));
Ipast(i) = -(Uexp*gamma*4*pi)/(D1 - D2) - Init;
end
Xexp = fliplr([0.12, 0.115, 0.11, 0.105, 0.10, 0.095, 0.09, 0.085, 0.08, 0.075, 0.07] - 0.064);
Uexp = fliplr([3.967, 3.965, 3.961, 3.956, 3.949, 3.938, 3.928, 3.9, 3.852, 3.791, 3.664]);
Iexp = -Uexp./(4.7e3);
figure(11)
plot(Xexp, Iexp, '-b');
hold on;
plot(d, Ipast, '-r');
xlabel('d (mètres)');
ylabel('I (ampères)');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment