Está en la página 1de 28

UNIVE

RSIDA
D
MAYO
R DE
SAN
ANDRE
S
Materia : Laboratorio de diseño de sistemas de control.
Docente : Ing. Máximo Torrez H.
Universitario: Marvin Maldonado Morales
Carrera : Ing. Electromecánica.
Fecha de entrega: 23/07/20

LA PAZ-BOLIVIA
I/2020
IDENTIFICACION DE PARAMETROS EN SISTEMAS DINAMICOS DE ORDEN
SUPERIOR.
Identificación de sistemas
¿Qué es la identificación?
Podemos definir la identificación de sistemas, como los estudios de técnicas que persiguen la
obtención de modelos matemáticos de sistemas dinámicos a partir de mediciones realizadas en el
proceso: entradas o variables de control, salidas o variables controladas y perturbaciones 
El enfoque de la identificación se puede realizar en función de la estructura del modelo, y del
comportamiento físico o no del mismo. Podemos distinguir:
Black-box: los parámetros del modelo no tienen una interpretación física. Un modelo basado en leyes
fundamentales es muy complicado o se desconoce.
Gray-box:  algunas partes del sistema son modeladas basándose en principios fundamentales, y otras
como una caja negra. Algunos de los parámetros del modelo pueden tener una interpretación física; a
este tipo de modelos también se les conoce como “Tailor-made”, estimando sólo los parámetros no
conocidos.

Para comenzar dentro la investigación que realice puedo comenzar realizan el sistema se primer
orden.
SISTEMAS DE PRIMER ORDEN.
La función de transferencia de primer orden sin cero tiene únicamente tiene un polo real resultado del
despeje de s del denominador de la función de transferencia. El denominador de la función de
transferencia también se llama ecuación característica

Donde se define a como el polo que se ubica en el eje real del plano s

Fig 1: Se muestra un bloque con un sistema de primer orden y su polo representado con una x en el eje
real, o sea el eje de la frecuencia exponencial σ
Al ser estimulado con una señal escalón unitario el sistema se eleva exponencialmente hasta
establecerse solo si está en el eje izquierdo, o sea para valores negativos de a, a esta condición se le
llama polo estable y es una condición muy deseable en los sistemas de control.
Como se puede observar con el uso del deslizador a mayor valor a mayor velocidad tendrá la respuesta
del sistema.
Identificación con modelos discretos para sistemas lineales, Modelo Matemático y aplicaciones.

Aproximamos con un sistema de PRIMER ORDEN.


'Tiempo de muestreo de la planta'
clc; clear all; close all;
Ts=0.2;
disp('funcion de transferencia de mi planta')
num=[4];
dem=[1 8];
tf(num,dem)
step(tf(num,dem))
grid
hold on
disp('Desarrollo por el metodo de minimos cuadrados')
N=8; %Numero de muestras
u_k=ones(N,1); %Entrada tipo escalon
Ruido=0.02*rand(N,1); %Ruido
y_ki=[0 0.3983 0.4766 0.4957 0.4991 0.4993 0.4995 0.4998]';%Muestras de "tf"
y_k=Ruido+y_ki %Valores mas ruido
disp('Aproximamos con un sistema de PRIMER orden')
PHI=[[0;y_k(1:length(y_k)-1)],u_k,[0;u_k(1:length(u_k)-1)]]
% si la matriz (PHI'*PHI) es no singular, el minomo es unicao y esta dada
% por:
Theta=((PHI'*PHI)^-1)*PHI'*y_k
%La planta aproximada en el dominio discreto sera:
step(tf([Theta(2,1) Theta(3,1)],[1 -Theta(1,1)],Ts))
disp('La funcion de transferencia aproximada en el dominio continuo')
'sera:'
G_z=tf([Theta(2,1) Theta(3,1)],[1 -Theta(1,1)],Ts)
G_s=d2c(G_z)
step(G_s)
[nc,dc]=tfdata(G_s,'V')
%Del ultimo grafico hallamos los valores de Y_k para asi poder calcular el
%error y la funcion de coste:
Yk=[0 0.3983 0.4766 0.4957 0.4991 0.4993 0.4995 0.4998]';
%determina los parametors que minimize el criterio.
sumE3=sum((y_k-Yk).^2)
% las variable ee(t) el modelo de regresion puesto que las variables
% realcionadas con el ruido no se conocen t lo podemos halar por la
% sigueinte ecuacion:
ee_t=(y_k-Yk)
% una aproxiamcion simple es cambiar el criterio de minimos cuadrados.
V=(1/(2*N))*sumE3
legend('respuesta del sistema','aproximacion con el dominio discreto')
title('función de tranferencia de PRIMER ORDEN')

RESPUESTA EN LA VENTANA DE COMANDO.


ans =

Tiempo de muestreo de la planta

funcion de transferencia de mi planta

ans =

4
-----
s + 8

Continuous-time transfer function.

Desarrollo por el metodo de minimos cuadrados

y_k =

0.0121
0.4021
0.4914
0.5006
0.5174
0.5047
0.5148
0.5036

Aproximamos con un sistema de PRIMER orden


PHI =

0 1.0000 0
0.0121 1.0000 1.0000
0.4021 1.0000 1.0000
0.4914 1.0000 1.0000
0.5006 1.0000 1.0000
0.5174 1.0000 1.0000
0.5047 1.0000 1.0000
0.5148 1.0000 1.0000

Theta =

0.2138
0.0121
0.3886

La funcion de transferencia aproximada en el dominio continuo

ans =

sera:

G_z =

0.01215 z + 0.3886
------------------
z - 0.2138

Sample time: 0.2 seconds


Discrete-time transfer function.

G_s =

0.01215 s + 3.932
-----------------
s + 7.714

Continuous-time transfer function.

nc =

0.0121 3.9320

dc =

1.0000 7.7137

sumE3 =
0.0010

ee_t =

0.0121
0.0038
0.0148
0.0049
0.0183
0.0054
0.0153
0.0038

V =

6.3640e-05
Aproximamos con un sistema de SEGUNDO ORDEN.
'Tiempo de muestreo de la planta'
Ts=1.2;
disp('funcion de transferencia de mi planta')
num=[1];
dem=[1 2 2];
tf(num,dem)
step(tf(num,dem))
grid
hold on
disp('Desarrollo por el metodo de minimos cuadrados')
N=9; %Numero de muestras
u_k=ones(N,1); %Entrada tipo escalon
% Ruido=0.02*rand(N,1); %Ruido
y_k=[0 0.3051 0.5028 0.5183 0.5037 0.4992 0.4995 0.5000 0.5000]';%Muestras de "tf"
% y_k=Ruido+y_ki %Valores mas ruido
disp('Aproximamos con un sistema de segundo orden')
PHI=[[0;y_k(1:length(y_k)-1)],[0;0;y_k(1:length(y_k)-2)],u_k,[0;u_k(1:length(u_k)-1)],
[0;0;u_k(1:length(u_k)-2)]]
% si la matriz (PHI'*PHI) es no singular, el minomo es unicao y esta dada
% por:
Theta=((PHI'*PHI)^-1)*PHI'*y_k
%La planta aproximada en el dominio discreto sera:
step(tf([0 0.3051 0.3243 0.0833],[1 0.4148 -0.0467 0.0571],Ts))
% step(tf([Theta(3,1) Theta(4,1) Theta(5,1)],[1 Theta(1,1) Theta(2,1)],Ts))
disp('La funcion de transferencia aproximada en el dominio continuo')
'sera:'
G_z=tf([0 0.3051 0.3243 0.0833],[1 0.4148 -0.0467 0.0571],Ts)
G_s=d2c(G_z)
step(G_s)
[nc,dc]=tfdata(G_s,'V')
%Del ultimo grafico hallamos los valores de Y_k para asi poder calcular el
%error y la funcion de coste:
Yk=[0 0.5051 0.5028 0.5184 0.5037 0.4992 0.5000 0.5000 0.5000]';
%determina los parametors que minimize el criterio.
sumE3=sum((y_k-Yk).^2)
% las variable ee(t) el modelo de regresion puesto que las variables
% realcionadas con el ruido no se conocen t lo podemos halar por la
% sigueinte ecuacion:
ee_t=(y_k-Yk)
% una aproxiamcion simple es cambiar el criterio de minimos cuadrados.
V=(1/(2*N))*sumE3
legend('respuesta del sistema','aproximacion con el dominio discreto')
title('función de tranferencia de segundo orden')

RESPUESTA EN LA VENTANA DE COMANDO.

ans =

Tiempo de muestreo de la planta

funcion de transferencia de mi planta


ans =

1
-------------
s^2 + 2 s + 2

Continuous-time transfer function.

Desarrollo por el metodo de minimos cuadrados


Aproximamos con un sistema de segundo orden

PHI =

0 0 1.0000 0 0
0 0 1.0000 1.0000 0
0.3051 0 1.0000 1.0000 1.0000
0.5028 0.3051 1.0000 1.0000 1.0000
0.5183 0.5028 1.0000 1.0000 1.0000
0.5037 0.5183 1.0000 1.0000 1.0000
0.4992 0.5037 1.0000 1.0000 1.0000
0.4995 0.4992 1.0000 1.0000 1.0000
0.5000 0.4995 1.0000 1.0000 1.0000

Theta =

0.2183
-0.0907
0.0000
0.3051
0.1311

La funcion de transferencia aproximada en el dominio continuo

ans =

sera:

G_z =

0.3051 z^2 + 0.3243 z + 0.0833


------------------------------------
z^3 + 0.4148 z^2 - 0.0467 z + 0.0571

Sample time: 1.2 seconds


Discrete-time transfer function.

Warning: The model order was increased to


handle real negative poles.

G_s =

-0.002331 s^3 + 1.002 s^2 + 0.7534 s + 7.022


---------------------------------------------
s^4 + 2.768 s^3 + 10.54 s^2 + 15.56 s + 14.04

Continuous-time transfer function.

nc =

0 -0.0023 1.0023 0.7534 7.0216

dc =

1.0000 2.7685 10.5392 15.5576 14.0411

sumE3 =

0.0400

ee_t =

0
-0.2000
0
-0.0001
0
0
-0.0005
0
0

V =

0.0022
Aproximamos con un sistema de TERCER ORDEN.
'Tiempo de muestreo de la planta'
Ts=1.5;
disp('funcion de transferencia de mi planta')
num=[2];
dem=[1 8 8 3];
tf(num,dem)
step(tf(num,dem))
grid
hold on
disp('Desarrollo por el metodo de minimos cuadrados')
N=9; %Numero de muestras
u_k=ones(N,1); %Entrada tipo escalon
% Ruido=0.02*rand(N,1); %Ruido
y_k=[0 0.1622 0.4158 0.5759 0.6473 0.6696 0.6726 0.6721 0.6719]';%Muestras de "tf"
% y_k=Ruido+y_ki %Valores mas ruido
disp('Aproximamos con un sistema de TERCER orden')
PHI=[[0;y_k(1:length(y_k)-1)],[0;0;y_k(1:length(y_k)-2)],[0;0;0;y_k(1:length(y_k)-3)],u_k,
[0;u_k(1:length(u_k)-1)],[0;0;u_k(1:length(u_k)-2)],[0;0;0;u_k(1:length(u_k)-3)]]
% si la matriz (PHI'*PHI) es no singular, el minomo es unicao y esta dada
% por:
Theta=((PHI'*PHI)^-1)*PHI'*y_k
%La planta aproximada en el dominio discreto sera:
step(tf([0 0.1622 -0.0065 -0.1097],[1 -1.6035 0.8429 -0.1720],Ts))
disp('La funcion de transferencia aproximada en el dominio continuo')
'sera:'
G_z=tf([0 0.1622 -0.0065 -0.1097],[1 -1.6035 0.8429 -0.1720],Ts)
G_s=d2c(G_z)
step(G_s)
[nc,dc]=tfdata(G_s,'V')
%Del ultimo grafico hallamos los valores de Y_k para asi poder calcular el
%error :
Yk=[0 0.1622 0.4158 0.5760 0.6470 0.6695 0.6733 0.6733 0.6733]';
%determina los parametors que minimize el criterio.
sumE3=sum((y_k-Yk).^2)
% las variable ee(t) el modelo de regresion puesto que las variables
% realcionadas con el ruido no se conocen t lo podemos halar por la
% sigueinte ecuacion:
ee_t=(y_k-Yk)
% una aproxiamcion simple es cambiar el criterio de minimos cuadrados.
V=(1/(2*N))*sumE3
legend('respuesta del sistema','aproximacion con el dominio discreto')
title('función de tranferencia de TERCER ORDEN')

ans =

Tiempo de muestreo de la planta

funcion de transferencia de mi planta

ans =
2
---------------------
s^3 + 8 s^2 + 8 s + 3

Continuous-time transfer function.

Desarrollo por el metodo de minimos cuadrados


Aproximamos con un sistema de TERCER orden

PHI =

0 0 0 1.0000 0 0 0
0 0 0 1.0000 1.0000 0 0
0.1622 0 0 1.0000 1.0000 1.0000 0
0.4158 0.1622 0 1.0000 1.0000 1.0000 1.0000
0.5759 0.4158 0.1622 1.0000 1.0000 1.0000 1.0000
0.6473 0.5759 0.4158 1.0000 1.0000 1.0000 1.0000
0.6696 0.6473 0.5759 1.0000 1.0000 1.0000 1.0000
0.6726 0.6696 0.6473 1.0000 1.0000 1.0000 1.0000
0.6721 0.6726 0.6696 1.0000 1.0000 1.0000 1.0000

Theta =

1.6035
-0.8429
0.1720
-0.0000
0.1622
-0.0065
-0.1097

La funcion de transferencia aproximada en el dominio continuo

ans =

sera:

G_z =

0.1622 z^2 - 0.0065 z - 0.1097


----------------------------------
z^3 - 1.603 z^2 + 0.8429 z - 0.172

Sample time: 1.5 seconds


Discrete-time transfer function.

G_s =

-0.03482 s^2 + 0.2764 s + 0.03199


------------------------------------
s^3 + 1.174 s^2 + 0.5475 s + 0.04687
Continuous-time transfer function.

nc =

0 -0.0348 0.2764 0.0320

dc =

1.0000 1.1735 0.5475 0.0469

sumE3 =

4.0000e-06

ee_t =

0
0
0
-0.0001
0.0003
0.0001
-0.0007
-0.0012
-0.0014

V =

2.2222e-07
Programa para verificar.
SISTEMAS DE PRIMER ORDEN.
clc; clear all; close all;
'funcion de tansferencia.'
zeta=0.5; % valor de a
s=tf('s'); % define mi funcion de transferencia.
G=zeta/(s+zeta)
t=linspace(0,50,1000);
u=ones(1,1000);
q=lsim(G,u,t);
syms s;
G=zeta/(s*(s+zeta));
ct=ilaplace(G);
pretty (ct)
plot(t,q)
tao=round(1/zeta)*(1000/50);
hold on
plot(t(tao),q(tao),'ro')
plot(t(5*tao),q(5*tao),'g*')
hold off
legend('respuesta del sistema','constante de tiempo=2','tiempo de establecimiento=10')
title('función de tranferencia de primer orden'

RESPUESTA DE LA VENTANA DE COMANDOS.


funcion de tansferencia.

G =

0.5
-------
s + 0.5

Continuous-time transfer function.

/ t \
1 - exp| - - |
\ 2 /
SISTEMAS DE SEGUNDO ORDEN.

METODOLOGIA E IMPLEMENTACION.
Identificación de sistemas subamortiguados
Programa de verificación.

s=tf('s'); % definiendo mi funcion de transferencia.


zeta=0.10; % zeta lo estamos llamando a epcilon
omega_n=0.25; % valor de wn
G1=omega_n/(s^2+2*zeta*omega_n*s+omega_n^2);
t=linspace(0,200,1000);
u=ones(1,1000);
c1=lsim(G1,u,t);
% figure 1
plot(t,c1)
title('sistema de segundo orden sub amortiguado')
syms s;
G=omega_n/(s*(s^2+2*zeta*omega_n*s+omega_n^2));
ct=ilaplace(G);
pretty(collect(ct))
sigma=-zeta*omega_n
zeta=omega_n*sqrt(1-zeta^2)
pzmap(G1)

repuesta de la ventana de comandos.


/ / 3 sqrt(11) t \ \
| sqrt(11) sin| ------------ | |
| t \ | / 3 sqrt(11) t \ \ 40 / |
4 - exp| - -- | | cos| ------------ | + ---------------------------- | 4
\ 40 / \ \ 40 / 33 /

sigma =

-0.0250

zeta =

0.2487
Y en función de los términos reales σ y complejos ±jω de los polos

s=tf('s'); % definiendo mi funcion de transferencia.


sigma=0.7;
zeta=1.2;
polo1=-sigma+sqrt(-1)*zeta;
polo2=-sigma-sqrt(-1)*zeta;
G=zpk([],[polo1 polo2],[polo1*polo2])
% figure 2
t=linspace(0,50,1000);
u=ones(1,1000);
c=lsim(G,u,t);
plot(t,c)
% pzmap(G)

respuesta de la ventana de comando:


G=

1.93
-------------------
(s^2 + 1.4s + 1.93)

Continuous-time zero/pole/gain model.


SISTEMA DE SEGUNDO ORDEN SOBREAMORTIGUADO.

Programa de verificación.

s=tf('s'); % definiendo mi funcion de transferencia.


polo1=2.93;
polo2=0.19;
disp('funcion de transferencia')
G=zpk([],[-polo1 -polo2],[polo1*polo2])
t=linspace(0,50,1000);
u=ones(1,1000);
c=lsim(G,u,t);
plot(t,c)

respuesta en la ventana de comando.


función de transferencia

G=
0.5567
-----------------
(s+2.93) (s+0.19)

Continuous-time zero/pole/gain model.

SISTEMAS DE ORDEN SUPERIOR CON POLOS Y CEROS ADICIONALES.

Programa de verificación.

s=tf('s'); % definiendo mi funcion de transferencia.


sigma=0.7;
omega=1.2;
real=sigma*6;
polo1=-sigma+sqrt(-1)*omega;
polo2=-sigma-sqrt(-1)*omega;
G=zpk([],[polo1 polo2 -real],[polo1*polo2*real])
G1=zpk([],[polo1 polo2],[polo1*polo2]);
t=linspace(0,50,1000);
u=ones(1,1000);
c=lsim(G,u,t);
c1=lsim(G1,u,t);
plot(t,c1,t,c,':')
legend('función de transferencia','función de transferencia con polo real adicional')
pzmap(G)

respuesta en la ventana de comando.

G=

8.106
---------------------------
(s+4.2) (s^2 + 1.4s + 1.93)

Continuous-time zero/pole/gain model.

Entre más se aleja un cero del eje real más débil será su efecto sobre una ft y se puede hacer sus polos
complejos dominantes

s=tf('s'); % definiendo mi funcion de transferencia.


sigma=0.7;
omega=1.2;
real=sigma*2;
polo1=-sigma+sqrt(-1)*omega;
polo2=-sigma-sqrt(-1)*omega;
G=zpk([-real],[polo1 polo2],[polo1*polo2/real])
G1=zpk([],[polo1 polo2],[polo1*polo2]);
t=linspace(0,50,1000);
u=ones(1,1000);
c=lsim(G,u,t);
c1=lsim(G1,u,t);
plot(t,c1,t,c,':')
legend('Función de transferencia','función de transferencia con cero real negativo')

respuesta de la ventana de comando.


G=

1.3786 (s+1.4)
-------------------
(s^2 + 1.4s + 1.93)

SISTEMAS CON RETROALIMENTACION

Los sistemas de control en lazo cerrado son aquellos en los que existe una realimentación de la señal
de salida o, dicho de otra forma, aquellos en los que la señal de salida tiene efecto sobre la acción de
control.
La señal de salida, además ser la propia salida, es utilizada como una de las entradas del sistema, ya
que le aporta información útil.
Otra forma de representar el sistema de control en lazo cerrado se puede observar en la siguiente
figura:

A la salida del controlador se obtiene la variable, o señal manipulada, correctora o de control,


precisa para conseguir un control óptimo del sistema.
Algunas de las principales características de los sistemas en lazo cerrado son las siguientes:

 Se trata de sistemas complejos, ya que poseen gran cantidad de parámetros.


 La salida se compara con la entrada y afecta al control del sistema.
 Son notablemente más estables frente a perturbaciones y variaciones internas.

Programa de verificación.

%Efecto de la retroalmentación en un sistema de primer orden


s=tf('s'); % definiendo mi funcion de transferencia.
zeta=0.9;
G=zeta/(s+zeta);
G1=feedback(G,1);
t=linspace(0,50,1000);
u=ones(1,1000);
q=lsim(G,u,t);
c=lsim(G1,u,t);
plot(t,q,t,c,'-.')
legend('en lazo abierto','retroalimentacion')
title('función de tranferencia de primer orden en lazo abierto y retroalimentacion')
Efecto de la retroalimentación en un sistema subamortiguado

s=tf('s'); % definiendo mi funcion de transferencia.


zeta=0.13;
omega_n=0.4;
G1=omega_n/(s^2+2*zeta*omega_n*s+omega_n^2);
G2=feedback(G1,1);
t=linspace(0,200,1000);
u=ones(1,1000);
c=lsim(G1,u,t);
c2=lsim(G2,u,t);
plot(t,c,t,c2,'-.')
legend('sin retroalimentación','retroalimentado')
title('función de transferencia subamortiguada con y sin retroalimentar')

También podría gustarte