¿Cómo hago un CPE (elemento de fase constante) con el lenguaje Simscape?

1

Quiero usar un CPE en mi circuito, pero no puedo encontrar un CPE en el Simscape biblioteca, así que quiero hacer un CEP con el lenguaje Simscape. ¿Que puedo hacer? Solo quiero construir este circuito, como la imagen, la impedancia es un número complejo, no puedo expresar su parte imaginaria.

    
pregunta C.Bing

1 respuesta

1

Puedes escribir un componente personalizado:

component CPE

%   The rest of the comment shows up as the component explanation.
nodes %conserving ports
 p = foundation.electrical.electrical; % +:top
 n = foundation.electrical.electrical; % -:bottom


end
nodes(Access=private)
 n1 = foundation.electrical.electrical; 
 n2 = foundation.electrical.electrical; 

end
% These ports show up in the block diagram.  The comments immediately after the domain declaration controls the displayed name and location of the ports in the block diagram
parameters
 Rs = { 1, 'Ohm' }; % Rs
 Rt = {2, 'Ohm'};   % Rt
 Q = {2, '1'};   % Q is unitless 
 Aw = {2, '1'};   % Aw is unitless 

end

variables(Access=public)
 i = { 0, 'A' };  % Current
%  v = { 0, 'V' };  % Voltage
 Zcpe = { 1, 'ohm' }; % 
 Zw = { 0.75, 'ohm' }; % 

end

function setup  

    n1.v =  {value={0, 'V'},priority=priority.high};
    n2.v =  {value={0, 'K'},priority=priority.high};

end

% Parameter validation. These branches are half of the equations, 
%the other half go in the equations section, there can only be an
% equal number of branch equations + equations = variables.
branches
    i1  : p.i -> n1.i;
    i3  : n1.i -> n.i;
    i2  : n1.i -> n2.i;
%   i2a  : n2.i -> n.i; %may not need this one, might want to eliminate node n2 and go straght from n1 to n



end



equations

 let 



     v = p.v - n1.v;
     v2 = n1.v - n.v;
     v3 = n1.v - n.v;
 in

    v ==  i1*Rs; % Voltage equation
    i1 == i2 + i3;
    Zcpe*Zcpe * -Q*w ==  1; %This will also need to be converted to a differential equation this is just an example
    %The equation is rewritten as follows Zcpe == 1/Q/(j*w); 
    %to this by squaring both sides Zcpe*Zcpe == -1/(Q*Q*w*w); to this Zcpe*Zcpe *(Q*Q*w*w) ==1; 

    %write the Zw equation the same but square it twice Zw*Zw*Zw*Zw == -4*Aw*Aw*Aw*Aw/(w*W);
    Zw*Zw*Zw*Zw*w*w == -4*Aw*Aw*Aw*Aw; %This will also need to be converted to a differential equation this is just an example
    v2 == i2*Zcpe;
    v3 == i3*(Rt+Zw);


 end

end % equations


end %component  I miss the curly braces...

Este código no está ni siquiera cerca de ser viable, recuerde, esto tomó una pequeña cantidad de mi tiempo, así que espero que tenga algo de aprecio por él (y vote en consecuencia). Escribir componentes personalizados no es fácil y tomará algunas semanas quitarse el cabello con frustración antes de entender los conceptos para hacer que esto funcione. Hay un concepto que no entiendo que deberá completar y que, al agregar las ecuaciones diferenciales, este componente personalizado es un ejemplo. Simscape hace s-parametros

Tuve que revisar la documentación unas 4 veces y probar ejemplos sencillos antes de poder llegar a un componente completo con muchos nodos. Lo primero que haría sería conseguir que el componente Zcpe funcionara y se probara como un componente personalizado, y luego subirlo. Si puedes conseguir Zcpe, puedes hacer que todo funcione.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas