con dos fuentes de tensión Modelado y respuesta libre ...

11
Modelado y respuesta libre / forzada (escalón) de un circuito RC con dos fuentes de tensión © 2020, Antonio Sala Piqueras, Universitat Politècnica de València. Todos los derechos reservados. Este código funcionó con Matlab R2020b Objetivo: modelar un circuito de primer orden con dos fuentes de tensión. Obtener matriz de transferencia y representación interna normalizada. Obtener respuesta escalón unitario, respuesta libre. Análisis en representación interna (vbles. de estado). Modelado físico Consideremos el siguiente circuito: syms U_1 U_2 %entradas syms i_1 i_2 V_c %salidas syms dVc_dt i_c %derivada de V_c temporal (deriv. estado) e intens. condensador (a eli syms R_1 R_2 C %parámetros constantes Modelo=[ i_1==(U_1-V_c)/R_1; i_2==(U_2-V_c)/R_2; ... dVc_dt==1/C*i_c; i_c==i_1+i_2 ] Modelo = Transformada de Laplace: matriz de transferencia, término cond. iniciales, y respuesta ante escalón syms s %vble. de Laplace syms V_c_inicial %condiciones iniciales (si V_c(0) fuera "no nula") ModeloLaplace=subs(Modelo,dVc_dt,s*V_c-V_c_inicial) ModeloLaplace = 1

Transcript of con dos fuentes de tensión Modelado y respuesta libre ...

Page 1: con dos fuentes de tensión Modelado y respuesta libre ...

Modelado y respuesta libre / forzada (escalón) de un circuito RCcon dos fuentes de tensión© 2020, Antonio Sala Piqueras, Universitat Politècnica de València. Todos los derechos reservados.

Este código funcionó con Matlab R2020b

Objetivo: modelar un circuito de primer orden con dos fuentes de tensión. Obtener matriz de transferencia y

representación interna normalizada. Obtener respuesta escalón unitario, respuesta libre.

Análisis en representación interna (vbles. de estado).

Modelado físicoConsideremos el siguiente circuito:

syms U_1 U_2 %entradassyms i_1 i_2 V_c %salidassyms dVc_dt i_c %derivada de V_c temporal (deriv. estado) e intens. condensador (a eliminar)syms R_1 R_2 C %parámetros constantes

Modelo=[ i_1==(U_1-V_c)/R_1; i_2==(U_2-V_c)/R_2; ... dVc_dt==1/C*i_c; i_c==i_1+i_2 ]

Modelo =

Transformada de Laplace: matriz de transferencia, término cond. iniciales, yrespuesta ante escalón

syms s %vble. de Laplacesyms V_c_inicial %condiciones iniciales (si V_c(0) fuera "no nula")ModeloLaplace=subs(Modelo,dVc_dt,s*V_c-V_c_inicial)

ModeloLaplace =

1

Page 2: con dos fuentes de tensión Modelado y respuesta libre ...

length(symvar(ModeloLaplace))

ans = 11

Suponiendo conocidas entradas , , parámetros constantes , , C, la variable de Laplace s, y las

condiciones iniciales de , podemos despejar 4 cosas:

sol=solve(ModeloLaplace, i_1, i_2, V_c, i_c);salidas=[sol.i_1;sol.i_2;sol.V_c]

salidas =

%sol.i_c %podría ser salida, si yo quisiera pero no me apetece verla.MatrizDeTransFerencia=jacobian(salidas,[U_1;U_2])

MatrizDeTransFerencia =

size(MatrizDeTransFerencia)

ans = 1×2 3 2

TerminoCondIniciales=jacobian(salidas,V_c_inicial)*V_c_inicial

TerminoCondIniciales =

2

Page 3: con dos fuentes de tensión Modelado y respuesta libre ...

%TC2=simplify(salidas-MatrizDeTransFerencia*[U_1;U_2])

R_1=10;R_2=20;C=1e-3; %para obtener valores numéricosmdTNum=eval(MatrizDeTransFerencia)

mdTNum =

Si multiplicamos todo por y hacemos transformada inversa de Laplace, tenemos las seis respuestas

"forzadas" ante escalón (cond. iniciales tensión en condensador = 0 ):

RespEscalon=ilaplace(mdTNum*1/s)

RespEscalon =

Tfinal=0.06;fplot(RespEscalon(1,1),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_1, salida i_1"), ylabel("i_1"),xlabel("tiempo")

3

Page 4: con dos fuentes de tensión Modelado y respuesta libre ...

fplot(RespEscalon(2,1),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_1, salida i_2"), ylabel("i_2"),xlabel("tiempo")

4

Page 5: con dos fuentes de tensión Modelado y respuesta libre ...

fplot(RespEscalon(3,1),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_1, salida V_c"), ylabel("V_c"),xlabel("tiempo")

fplot(RespEscalon(1,2),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_2, salida i_1"), ylabel("i_1"),xlabel("tiempo")

5

Page 6: con dos fuentes de tensión Modelado y respuesta libre ...

fplot(RespEscalon(2,2),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_2, salida i_2"), ylabel("i_2"),xlabel("tiempo")

6

Page 7: con dos fuentes de tensión Modelado y respuesta libre ...

fplot(RespEscalon(3,2),[0 Tfinal]), grid on, title("Resp. Escalón: entrada V_2, salida V_c"), ylabel("V_c"),xlabel("tiempo")

Ante condiciones iniciales no nulas habría que sumar a los cálculos de respuesta forzada la respuesta libre

siguiente:

RespLibre=ilaplace(TerminoCondIniciales)

RespLibre =

Representación interna normalizada y respuesta ante escalón (controlsystem Toolbox)

symvar(Modelo)

7

Page 8: con dos fuentes de tensión Modelado y respuesta libre ...

ans =

length(ans)

ans = 10

solNorm=solve(Modelo, i_1, i_2, i_c, dVc_dt);Estados=[V_c];Entradas=[U_1;U_2];Ec_estado=solNorm.dVc_dt

Ec_estado =

Ec_Salida=[solNorm.i_1;solNorm.i_2;V_c]

Ec_Salida =

Asymbolic=jacobian(Ec_estado,Estados) %es de 1er orden, A es 1x1

Asymbolic =

Bsymbolic=jacobian(Ec_estado,Entradas) %1 estado x 2 entradas

Bsymbolic =

Csymbolic=jacobian(Ec_Salida,Estados) %3 salidas x 1 estado

Csymbolic =

Dsymbolic=jacobian(Ec_Salida,Entradas) %3 salidas x 2 entradas

Dsymbolic =

8

Page 9: con dos fuentes de tensión Modelado y respuesta libre ...

Podemos obtener la fórmula de la MdT a partir de la representación interna normalizada, con la fórmula

orden=1;MdTdesdeSS= ... simplify(Csymbolic*inv(s*eye(orden)-Asymbolic)*Bsymbolic+Dsymbolic)

MdTdesdeSS =

R_1=10;R_2=20;C=1e-3; %para obtener valores numéricosA=eval(Asymbolic)

A = -150

B=eval(Bsymbolic)

B = 1×2 100 50

C=eval(Csymbolic)

C = 3×1 -0.1000 -0.0500 1.0000

D=eval(Dsymbolic)

D = 3×2 0.1000 0 0 0.0500 0 0

sys=ss(A,B,C,D);sys.InputName={'U_1','U_2'};sys.OutputName={'i_1','i_2','V_c'};

La respuesta escalón ante condiciones iniciales cero sería:

step(sys), grid on

9

Page 10: con dos fuentes de tensión Modelado y respuesta libre ...

Nota: la respuesta ante condiciones iniciales no nulas se evaluaría con el comando initial y la respuesta

combinada ante entradas y condiciones arbitrarias con el comando lsim, no en los objetivos de este material.

initial(sys,2) %resp. libre empezando el condensador cargado en 2 Vgrid on

10

Page 11: con dos fuentes de tensión Modelado y respuesta libre ...

11