© 2020, antonio sala piqueras, universitat politècnica de

7
Normas de sistemas dinámicos: norma (ejemplo Matlab) © 2020, Antonio Sala Piqueras, Universitat Politècnica de València. Todos los derechos reservados. Este código ejecutó correctamente con Matlab R2020a Objetivo: Comprobar la equivalencia entre diferentes definiciones de la norma de un sistema lineal. Tabla de Contenidos 1.- Ejemplo Monovariable........................................................................................................................................ 1 1.1- Interpretación "frecuencial"........................................................................................................................... 1 1.2- Interpretación temporal (ganancia máxima)................................................................................................. 3 2.- Ejemplo Multivariable..........................................................................................................................................4 2.1- Interpretación "frecuencial"....................................................................................................................... 5 2.2- Interpretación temporal (ganancia máxima)............................................................................................. 5 1.- Ejemplo Monovariable s=tf('s'); G=6/(s^2+s+9); %ejemplo monovariable v_2=norm(G,2) %calculamos la norma 2, sólo por curiosidad v_2 = 1.4142 [v_inf,f_pico]=norm(G,inf) v_inf = 2.0284 f_pico = 2.9147 Obviamente, el valor de la norma infinito no tiene nada que ver con la norma 2. 1.1- Interpretación "frecuencial" Como pico de la magnitud de resp. en frecuencia: w=logspace(-2,1.3,1000); fr=abs(freqresp(G,w)); max(fr) ans = 2.0283 f2=reshape(fr,1,1000); plot(w, f2), grid on, title("Respuesta en frecuencia (no logarítmica)"), xlabel("freq. (rad/s)"); yline(v_inf,'-.r','LineWidth',4); xline(f_pico,'-.k'); legend('Resp. frec. G(j\omega)','Máximo') 1

Upload: others

Post on 28-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

Normas de sistemas dinámicos: norma (ejemplo Matlab)© 2020, Antonio Sala Piqueras, Universitat Politècnica de València. Todos los derechos reservados.

Este código ejecutó correctamente con Matlab R2020a

Objetivo: Comprobar la equivalencia entre diferentes definiciones de la norma de un sistema lineal.

Tabla de Contenidos

1.- Ejemplo Monovariable........................................................................................................................................ 11.1- Interpretación "frecuencial"...........................................................................................................................11.2- Interpretación temporal (ganancia máxima).................................................................................................3

2.- Ejemplo Multivariable..........................................................................................................................................42.1- Interpretación "frecuencial"....................................................................................................................... 52.2- Interpretación temporal (ganancia máxima)............................................................................................. 5

1.- Ejemplo Monovariable

s=tf('s');G=6/(s^2+s+9); %ejemplo monovariablev_2=norm(G,2) %calculamos la norma 2, sólo por curiosidad

v_2 = 1.4142

[v_inf,f_pico]=norm(G,inf)

v_inf = 2.0284f_pico = 2.9147

Obviamente, el valor de la norma infinito no tiene nada que ver con la norma 2.

1.1- Interpretación "frecuencial"

Como pico de la magnitud de resp. en frecuencia:

w=logspace(-2,1.3,1000);fr=abs(freqresp(G,w));max(fr)

ans = 2.0283

f2=reshape(fr,1,1000);plot(w, f2), grid on, title("Respuesta en frecuencia (no logarítmica)"),xlabel("freq. (rad/s)"); yline(v_inf,'-.r','LineWidth',4); xline(f_pico,'-.k');legend('Resp. frec. G(j\omega)','Máximo')

1

Page 2: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

En escala logarítmica:

norma_inf_dB=20*log10(v_inf)

norma_inf_dB = 6.1429

bodemag(G,tf(v_inf),w),grid on,xline(f_pico,'-.')

2

Page 3: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

abs(evalfr(G,f_pico*1j))

ans = 2.0284

1.2- Interpretación temporal (ganancia máxima)

T=0.02; Time_simul=0:T:175;Nmuestras=length(Time_simul);u=sin(f_pico*Time_simul); %se aproxima a ganancia máxima%u=sin(f_pico*12*sqrt(10+Time_simul)); %no tiene ganancia máximau(8000:end)=0;y=lsim(G,u,Time_simul); plot(Time_simul,[y u']), grid on, legend('y','u'), axis tight

3

Page 4: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

Aproximaremos usando la integral numérica (trapecio), e idem con la entrada:

tamanyo_y=sqrt(trapz(Time_simul,y.^2))

tamanyo_y = 18.0203

tamanyo_u=sqrt(trapz(Time_simul,u.^2))

tamanyo_u = 8.9411

gan_simulada=tamanyo_y/tamanyo_u

gan_simulada = 2.0155

2.- Ejemplo Multivariable

G=[1/(s+1) -5/(s+2)^2; ... 5/(s+1)/(s^2+0.25*s+2) 6*(0.2*s+1)/(s^2+0.4*s+4)^2];

La norma , y la frecuencia a la que se produce, valen:

[v_inf,f_pico]=norm(G,inf)

v_inf = 10.2688f_pico = 1.9806

4

Page 5: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

2.1- Interpretación "frecuencial"

norma_inf_dB=20*log10(v_inf)

norma_inf_dB = 20.2304

sigmaplot(G,tf(v_inf),w), grid onxline(f_pico,'-.k')legend('Resp. frec. \sigma_M(G(j\omega)), \sigma_m(G(j\omega))','Máximo','Location','best')

La matriz de respuesta en frecuencia a la frecuencia del pico es:

Gjw=evalfr(G,f_pico*1j)

Gjw = 2×2 complex 0.2031 - 0.4023i -0.0062 + 0.6311i -0.7481 + 0.8536i -8.5670 - 5.5090i

Y su máximo valor singular es, en efecto, la norma infinito.

[U,S,V]=svd(Gjw);diag(S)'

ans = 1×2 10.2688 0.4309

2.2- Interpretación temporal (ganancia máxima)

Construyamos la amplitud (módulo) y desfase (argumento) de la dirección de entrada que produce la ganancia

máxima:

5

Page 6: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

V %estas son las direcciones de "entrada" (complejas)

V = 2×2 complex -0.1114 + 0.0000i 0.9938 + 0.0000i -0.1238 + 0.9860i -0.0139 + 0.1105i

peor_mag=abs(V(:,1))

peor_mag = 2×1 0.1114 0.9938

peor_desfase=angle(V(:,1))

peor_desfase = 2×1 3.1416 1.6957

T = 0.01; Time_simul = 0:T:4000;u = diag(peor_mag) * sin( f_pico * Time_simul + peor_desfase );plot(Time_simul(1:2500),u(:,1:2500)), grid onlegend("u_1", "u_2"), title('Entrada peor caso (25s)')

y=lsim(G,u,Time_simul)';plot(Time_simul(1:5000),y(1,1:5000),"Color",[.1 1 .6]);hold onplot(Time_simul(1:5000), y(2,1:5000),"Color",[.6 .4 .25]), grid on, hold offlegend("y_1", "y_2"), title('Salida ante entrada peor caso (50 s)')

6

Page 7: © 2020, Antonio Sala Piqueras, Universitat Politècnica de

Aproximaremos usando la integral numérica (método trapecio), idem con la entrada:

tamanyo_y=sqrt(trapz(Time_simul,y(1,:).^2+y(2,:).^2))

tamanyo_y = 458.4442

tamanyo_u=sqrt(trapz(Time_simul,u(1,:).^2+u(2,:).^2))

tamanyo_u = 44.7198

La suma de los cuadrados de las dos salidas en todos los instantes

tamanyo_y/tamanyo_u

ans = 10.2515

7