- The result of (j*w0*C) has the size of 7x6 matrix
- But G is a 7x7 matrix
- So you are getting dimension mismatch error
Help needed to calculate complex voltage
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I'm trying to calculate the complex voltage and a magnitude plot for a circuit with my code. However I am not generating the plot as expected (plot should look like a bode plot) and am not sure what I am doing wrong. Below is the code I have as well as the code for the function I am using in my main code.
   %%Main code
   rs   =  4000
   r1   =  8000
   r2   =  4000 
   re   =  3300
   rc   =  6000 
   rl   =  4000 
   r0   =  103500
   rpi  =  2610 
   c1   = 1*10^(-6)
   c2   = 1*10^(-6)
   ce   = 10*10^(-6)
   cpi  = 17*10^(-12)
   cmew = 2.5*10^(-12)
   gm   = 38.5*10^(-3)
   Vg   = 1 
   G = [(1/rs),(-1/rs), 0, 0, 0, 0, 1;...
       (-1/rs), (1/rs), 0, 0, 0, 0, 0;... 
       0, 0, ((1/r1)+(1/r2)+(1/rpi)), (-1/rpi) 0, 0, 0;...
       0, 0, ((-1/rpi)-gm), ((1/rpi)+(1/r0)+gm+(1/re)),((-1/r0)), 0, 0;...
       0, 0, gm,((-1/r0)-gm), ((1/r0)+(1/rc)), 0, 0;... 
       0, 0, 0, 0, 0,(1/rl), 0;... 
       1, 0, 0, 0, 0, 0, 0] 
   C = [0, 0, 0, 0, 0, 0, 0;...
       0, c1, -c1, 0, 0, 0, 0;...
       0, -c1, (c1+cmew+cpi), -cpi, -cmew, 0, 0;...
       0, 0, -cpi, (ce+cpi), 0, 0, 0;...
       0, 0, -cmew, 0, (c2+cmew), -c2, 0;...
       0, 0, 0, 0, -c2, c2, 0;...
       0, 0, 0, 0, 0, 0, 0]
   w = [0;0;0;0;0;0;Vg] 
    a = [1 2 3 4 5 6 7 8 9];
    z = [a 10*a 100*a 1000*a 10000*a 100000*a 1000000];
    [magnitude,phase] = bode1(G,C,w,z)
  end
%%Function for [magnitude,phase] = bode1(G,C,w,z)%%
 function [mag,phase] = bode1(G,C,w,z)
  for n = 1:length(z) 
      w0 = z(n)*2*pi;
        A = G+(j*w0*C);
        x = w'*inv(A);
        t = abs(x);
        i =(180/pi)*angle(x);
        if n == 1
            magnitude = t;
            phas = i;
        else
            magnitude = [magnitude t];
            phas = [phas i];
        end
        [m1, n1] = size(magnitude);
        [m2, n2] = size(phas);
        mag(1:m1,1:n1,n) = magnitude(:,:); 
        phase(1:m2,1:n2,n) = phas(:,:); 
    end   
end
0 comentarios
Respuestas (1)
  Stalin Samuel
      
 el 27 de Feb. de 2017
        0 comentarios
Ver también
Categorías
				Más información sobre Optics en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

