Ingeniero en Automática y Electrónica Industrial


Modelación de procesos


MODELACION DE PROCESOS

5/10/07

Problema Nº1

La Fig. Nº1, muestra un levitador magnético idealizado. Donde la tensión e(t) es manipulada para que la “bolita” se sitúe a 30 cm sobre el nivel del suelo. Para esto se utiliza el electroimán que puede ser representado por el circuito R L. Recordar que la dinámica impuesta por este circuito, está dada por una ecuación diferencial de 1º orden, proveniente de LVK “Ley de Voltaje de Kirchoff”, desarrollada en (1).

'Modelación de procesos'
(1)

Por otro lado, la fuerza de atracción Fe(t), que ejerce el electroimán, está dada por (2).

'Modelación de procesos'
, (2)

Parámetro

Valor

Unidad de Medida

M

0.2

'Modelación de procesos'

d

1.5

'Modelación de procesos'

k

24.5

'Modelación de procesos'

g

9.8

'Modelación de procesos'

l0

0,3

'Modelación de procesos'

l1

0.6

'Modelación de procesos'

ki

3e-3

'Modelación de procesos'

a

0.02

'Modelación de procesos'

R

1

'Modelación de procesos'

L

0.06

'Modelación de procesos'

'Modelación de procesos'

Fig. Nº1 Levitador magnético.

a. Determinar las variables de entrada, variables de salida, variables de estado, perturbaciones y parámetros.

b. Escribir las ecuaciones asociadas al sistema metódicamente.

c. Determine la tensión e10, e20, y e30 a aplicar en t0 = 0, t1 = 1, t2 = 5 s, para tener en S.S. (“Stationary State”) a la “bolita” a 30, 35 y 25 cm desde el piso, respectivamente.

d. Encuentre el perfil de tensión a aplicar para conseguir lo indicado en anteriormente y simule el sistema para un rango de simulación de 0 " t < 8 s. Grafique e[V], i[A], x[cm], y v [km/hr]. Asegúrese de estar en S.S. para t = 0.

e. Comentar los resultados obtenidos.

Solución Tarea N°1 Modelación de Procesos.

Problema N°1

a. Determinar las variables de entrada, variables de salida, variables de estado, perturbaciones y parámetros.

Variables de entrada:

  • Tensión: e(t)

Variables de salida:

  • Posición: x(t)

Variables de estado:

  • Corriente del electroimán: i(t)

  • Posición: x(t)

  • Velocidad: 'Modelación de procesos'

Perturbaciones:

  • No hay

Parámetros:

  • Masa: M

  • Coeficiente de viscosidad del amortiguador: d

  • Coeficiente de elasticidad del resorte: k

  • Aceleración de gravedad: g

  • Distancia de la bolita al piso: l0

  • Distancia del electroimán al piso: l1

  • Constante de corriente del electroimán: ki

  • Espesor del imán: a

  • Resistencia: R

  • Inductancia de la bobina: L

b. Escribir las ecuaciones asociadas al sistema metódicamente.


Para este modelo se han tomado ciertas consideraciones para que sea un levitador magnético idealizado, por ejemplo:

  • No existe fricción viscosa entre la masa levitante y el aire.

  • La masa M a levitar solo tiene un grado de libertad (x).



A partir de la posición de equilibrio la fuerza de equilibrio, la fuerza que realiza el resorte puede escribirse como:

'Modelación de procesos'

La fuerza que realiza el amortiguador como:

'Modelación de procesos'

La fuerza de gravedad:

'Modelación de procesos'

La fuerza del electroimán:

'Modelación de procesos'

Figura 2. Diagrama de cuerpo libre sistema

Masa-Resorte-Amortiguador-electroimán


De la segunda Ley de Newton y diagrama de cuerpo libre de la Figura 2, se puede escribir:

'Modelación de procesos'

'Modelación de procesos'

Es decir:

'Modelación de procesos'
, (3)

Tenemos que consideras que:

'Modelación de procesos'
, (4)

Y así dejamos y(t) en función de x(t).

Reemplazando la ecuación (4) en (3) y ordenando, nos queda:

'Modelación de procesos'
(5)

También podemos obtener otra ecuación de la ecuación (1):

'Modelación de procesos'
(1)

Despejando 'Modelación de procesos'
, tenemos la ecuación (6):

'Modelación de procesos'
(6)

Ocuparemos (1) y (5) para representar nuestro sistema en matrices, con 'Modelación de procesos'
,'Modelación de procesos'
,'Modelación de procesos'
y 'Modelación de procesos'
:

'Modelación de procesos'

'Modelación de procesos'

'Modelación de procesos'

Claramente se ve que el sistema de ecuaciones es no lineal. Para linealizarlo encontramos sus derivadas con respecto a las variables de estado, entrada y perturbaciones para obtener el modelo.

'Modelación de procesos'

Ahora tenemos el siguiente sistema de ecuaciones LINEAL:

'Modelación de procesos'

c. Determine la tensión e10, e20, y e30 a aplicar en t0 = 0, t1 = 1, t2 = 5 s, para tener en S.S. (“Stationary State”) a la “bolita” a 30, 35 y 25 cm desde el piso, respectivamente.

Sabemos por las ecuación (1) que e depende de i, por lo tanto basta encontrar i en el tiempo indicado para saber que voltaje aplicar. Ocupamos la ecuación (5), sabiendo que para que se cumpla la condición de sistema estacionario, no debe haber aceleración y la velocidad tiene que ser una constante, así: 'Modelación de procesos'

Ahora solo queda reemplazar la posición y los parámetros en la ecuación, dando i(t)=cte, reemplazándola en la ecuación (1), teniendo los siguientes valores:

e10= 14.46 [V]

e20= 16.95 [V]

e30= 9.52 [V]

d. Encuentre el perfil de tensión a aplicar para conseguir lo indicado en anteriormente y simule el sistema para un rango de simulación de 0 " t < 8 s. Grafique e[V], i[A], x[cm], y v [km/hr]. Asegúrese de estar en S.S. para t = 0.

Los graficos se obtuvieron gracias a los siguientes códigos:

-E1.m:

%Tarea 1: PROBLEMA N°1: SISTEMA MASA RESORTE AMORTIGUADOR ELECTROIMAN

clear all;

close all;

clc;

global M d k g l0 l1 ki a R L

%Parámetros

M=0.2; %[Kg]

d=1.5; %[Kg/s]

k=24.5; %[Kg/s^2]

g=9.8; %[m/s^2]

l0=0.3; %[m]

l1=0.6; %[m]

ki=3e-3;%[Kg*m^2/(A^2*s^2)]

a=0.02; %[m]

R=1; %[ohm]

L=0.06; %[H]

%Condiciones iniciales:

i0=14.46;%[A]

x0=0.3; %[m]

v0=0; %[m/s]

%Problemas Stiff

[t,x]=ode23s('E1_ec',[0 8],[i0 x0 v0]');

U=14.46+2.47*(t>1)-9.52*(t>5);

figure(1)

subplot(311),plot(t,x(:,1),'r')

grid on, xlabel('tiempo (s)'),ylabel('Corriente [A]'),title('i [A]')

subplot(312),plot(t,x(:,2)*1e2,'g')

grid on, xlabel('tiempo (s)'), ylabel('Posición [cm]'),title('x [cm]')

subplot(313),plot(t,x(:,3)*3.6)

grid on, xlabel('tiempo (s)'), ylabel('Velocidad [Km/hr]'),title('v [Km/hr]')

figure(2)

plot(t,U,'r'), axis([0 8 0 20])

grid on, xlabel('tiempo (s)'), ylabel('Tensión [V]'),title('e [V]')

y E1_ec.m:

function v_estado=E1_ec(t,x)

global M d k g l0 l1 ki a R L

U=14.46+2.47*(t>1)-9.52*(t>5);

v_estado=zeros(3,1);

v_estado(1) = -(R/L)*x(1) + U/L;

v_estado(2) = x(3);

v_estado(3) = -g - k*(x(2)-l0)/M - d*x(3)/M + ki*(x(1)^2)/((l1-x(2)+a)*M);

e. Comentar los resultados obtenidos.

Para obtener estado estacionario en t=0 se simulo un intervalo de 0 a 8 segundos. De este modo podemos apreciar el movimiento de la bolita, que en cada cambio de tensiones tiene su estado estacionario en tiempos cercanos a 1 segundo, lo que es bastante rápido, esto gracias a la acción del amortiguador. Podemos notar que el tiempo que tarda en obtener estado estacionario es proporcional a la diferencia de tensión que se le a aplicado.

Problema Nº2

El brazo robótico SCARA, mostrado en la Fig. Nº2, es un importante manipulador, el cual posee 4 grados de libertad (DOF, “Degree Of Freedom”), sin considerar el gripper. Es producido por varias compañías, entre las cuales se puede nombrar Adept Technology, IBM, Seiko, entre otras. El problema a desarrollar, consiste en simular en 3D, mediante Matlab®, este manipulador robótico, donde las variables de entrada al programa, serán los ángulos 1, 2, 4 y la altura lineal d3. Como ayuda adicional son incorporadas las matrices de rotación y traslación según corresponda. Es tarea del lector verificar si están bien escritas.

Símbolo

Valor

Unidad de Medida

d1

0.5

'Modelación de procesos'

d4

1.5

'Modelación de procesos'

a1

0.4

'Modelación de procesos'

a2

0.35

'Modelación de procesos'

'Modelación de procesos'

'Modelación de procesos'

Problema N°2

Variables de entrada:

  • Ángulo de giro Link 1 con respecto a Joint 1: 1

  • Ángulo de giro Link 2 con respecto a Joint 2: 2

  • Ángulo de giro de Link 4: 3

  • Distancia de x2 a x3: d3

Parámetros:

  • d1=50 [cm]

  • d4=15 [cm]

  • Largo de Link 1 a1=40 [cm]

  • Largo de Link 2 a2=35 [cm]

Código MATLAB:

clear all;

close all;

clc;

%Entradas

t1 =input('Ingrese Ángulo Base (Link 1) (theta1[grad]) =');

t2 =input('Ingrese Ángulo Hombro(Link 2) (theta2[grad]) =');

t4 =input('Ingrese Ángulo Codo2 (Link 4) (theta4[grad]) =');

d3 =input('Ingrese distancia de x2 a x3 (d3[cm]) =') ;

%==========================================================================

%==========================================================================

% Traspasa ángulo a radianes:

theta1 =t1*pi/180;

theta2 =t2*pi/180;

theta4 =t4*pi/180;

%==========================================================================

%==========================================================================

%Parámetros del modelo:

d1=50; %Distancia de la base al entro de Link 1 [cm]

d4=15; %Largo de Link 4 [cm]

a1=40; %Largo de Link 1 [cm]

a2=35; %Largo de Link 2 [cm]

%==========================================================================

%==========================================================================

% Matriz de Link 1 respecto a Link 0 [ESTABA BUENA]

A1 = [ cos(theta1) -sin(theta1) 0 a1*cos(theta1);

sin(theta1) cos(theta1) 0 a1*sin(theta1);

0 0 1 d1 ;

0 0 0 1] ;

%==========================================================================

%==========================================================================

% Matriz de Link 2 respecto a Link 1 [ESTABA MALA]

A2 = [ cos(theta2) sin(theta2) 0 a2*cos(theta2);

sin(theta2) -cos(theta2) 0 a2*sin(theta2);

0 0 1 0 ;

0 0 0 1] ;

%OBS:

% Matriz que había en el enunciado original:

% A2 =[cos(theta2) sin(theta2) 0 a2*cos(theta2);

% sin(theta2) -cos(theta2) 0 a2*sin(theta2);

% 0 0 "-1" 0 ; -1 reemplazado por 1

% 0 0 0 1] ;

%==========================================================================

%==========================================================================

% Matriz que baja la posición [ESTABA MALA]

A3 = [ 1 0 0 0 ;

0 1 0 0 ;

0 0 1 -d3;

0 0 0 1];

%

%OBS:

% Matriz que había en el enunciado original:

% A3 = [ 1 0 0 0 ;

% 0 1 0 0 ;

% 0 0 1 "d3"; d3 reemplazado por -d3

% 0 0 0 1] ;

%==========================================================================

%==========================================================================

%Matriz giro de Link 4

A4 = [ cos(theta4) -sin(theta4) 0 0 ;

sin(theta4) cos(theta4) 0 0 ;

0 0 1 -d4;

0 0 0 1];

% Matriz que había en el enunciado original:

% A4 = [ cos(theta4) -sin(theta4) 0 0 ;

% sin(theta4) cos(theta4) 0 0 ;

% 0 0 1 "d4" ; d4 reemplazado por -d4

% 0 0 0 1] ;

%==========================================================================

%==========================================================================

% Cálculo de vector de posición.

P0= [1 0 0 0;

0 1 0 0;

0 0 1 0;

0 0 0 1];

PR= [1 0 0 0;

0 1 0 0;

0 0 1 d1;

0 0 0 1];

P1= A1;

P2= A1*A2;

P3= A1*A2*A3;

P4= A1*A2*A3*A4;

%==========================================================================

%==========================================================================

%Gráfico:

x=[ P0(1,4) PR(1,4) P1(1,4) P2(1,4) P3(1,4) P4(1,4) ];

y=[ P0(2,4) PR(2,4) P1(2,4) P2(2,4) P3(2,4) P4(2,4) ];

z=[ P0(3,4) PR(3,4) P1(3,4) P2(3,4) P3(3,4) P4(3,4) ];

axis on

grid on

axis([ -100 100 -100 100 0 100]);

view([112.5,30]), hold

plot3(x,y,z)

xlabel('Eje X')

ylabel('Eje Y')

zlabel('Eje Z')

% plot del eje x0,y0,z0

x0=P0*[ 0.1*a1; 0; 0; 1];

y0=P0*[ 0; 0.1*a1; 0; 1];

z0=P0*[ 0; 0; 0.1*a1; 1];

plot3([P0(1,4) x0(1)],[P0(2,4) x0(2)],[P0(3,4) x0(3)],'r');

plot3([P0(1,4) y0(1)],[P0(2,4) y0(2)],[P0(3,4) y0(3)],'g');

plot3([P0(1,4) z0(1)],[P0(2,4) z0(2)],[P0(3,4) z0(3)],'k');

% plot del eje xR,yR,zR

xR=PR*[ 0.1*a1; 0; 0; 1];

yR=PR*[ 0; 0.1*a1; 0; 1];

zR=PR*[ 0; 0; 0.1*a1; 1];

plot3([PR(1,4) xR(1)],[PR(2,4) xR(2)],[PR(3,4) xR(3)],'r');

plot3([PR(1,4) yR(1)],[PR(2,4) yR(2)],[PR(3,4) yR(3)],'g');

plot3([PR(1,4) zR(1)],[PR(2,4) zR(2)],[PR(3,4) zR(3)],'k');

% plot del eje x1,y1,z1

x1=P1*[ 0.1*a1; 0; 0; 1];

y1=P1*[ 0; 0.1*a1; 0; 1];

z1=P1*[ 0; 0; 0.1*a1; 1];

plot3([P1(1,4) x1(1)],[P1(2,4) x1(2)],[P1(3,4) x1(3)],'r');

plot3([P1(1,4) y1(1)],[P1(2,4) y1(2)],[P1(3,4) y1(3)],'g');

plot3([P1(1,4) z1(1)],[P1(2,4) z1(2)],[P1(3,4) z1(3)],'k');

% plot del eje x2,y2,z2

x2=P2*[ 0.1*a2; 0; 0; 1];

y2=P2*[ 0; 0.1*a2; 0; 1];

z2=P2*[ 0; 0; 0.1*a2; 1];

plot3([P2(1,4) x2(1)],[P2(2,4) x2(2)],[P2(3,4) x2(3)],'r');

plot3([P2(1,4) y2(1)],[P2(2,4) y2(2)],[P2(3,4) y2(3)],'g');

plot3([P2(1,4) z2(1)],[P2(2,4) z2(2)],[P2(3,4) z2(3)],'k');

% plot del eje x3,y3,z3

x3=P3*[ 0.1*a2; 0; 0; 1];

y3=P3*[ 0; 0.1*a2; 0; 1];

z3=P3*[ 0; 0; 0.1*a2; 1];

plot3([P3(1,4) x3(1)],[P3(2,4) x3(2)],[P3(3,4) x3(3)],'r');

plot3([P3(1,4) y3(1)],[P3(2,4) y3(2)],[P3(3,4) y3(3)],'g');

plot3([P3(1,4) z3(1)],[P3(2,4) z3(2)],[P3(3,4) z3(3)],'k');

% plot del eje x4,y4,z4

x4=P4*[ 0.1*a2; 0; 0; 1];

y4=P4*[ 0; 0.1*a2; 0; 1];

z4=P4*[ 0; 0; 0.1*a2; 1];

plot3([P4(1,4) x4(1)],[P4(2,4) x4(2)],[P4(3,4) x4(3)],'r');

plot3([P4(1,4) y4(1)],[P4(2,4) y4(2)],[P4(3,4) y4(3)],'g');

plot3([P4(1,4) z4(1)],[P4(2,4) z4(2)],[P4(3,4) z4(3)],'k');

Problema Nº3

El sistema consiste en un movimiento de un proyectil en dos dimensiones, para una velocidad inicial VO, un ángulo de elevación , además se agrega el efecto de la resistencia del aire, esta fuerza es causada por el aire que es directamente proporcional a la velocidad del proyectil.

Se pide desarrollar detalladamente lo siguiente:

a. Determinar el modelo dinámico del sistema.

b. Obtener de manera analítica las coordenadas X e Y

c. Obtener una expresión aproximada para el tiempo de vuelo y la distancia recorrida.

d. Simule el sistema, obtenga gráficas para el desplazamiento [km] y velocidad [m/s], para el modelo obtenido en a. y b. , con los parámetros dados en la tabla, y compare.

e. Obtenga las trayectorias para los siguientes valores de k, con k= 0.005, 0.01, 0.02, 0.04 y 0.08.

f. De la expresión aproximada en c. , para el tiempo de vuelo, cual es el rango de valor de k, para que la aproximación sea válida.

Símbolo

Valor

Unidad de Medida

VO

700

'Modelación de procesos'



60

'Modelación de procesos'

k

0.005

'Modelación de procesos'

g

9.8

'Modelación de procesos'

m

3

'Modelación de procesos'

Fig. Nº3 Lanzamiento de proyectil en 2D.

Problema Nº3

a. Determinar el modelo dinámico del sistema.

Parámetros:

  • Velocidad inicial del lanzamiento: VO = 700 'Modelación de procesos'

  • Ángulo inicial con respecto a la horizontal:  = 60 'Modelación de procesos'

  • Coeficiente de fricción: k = 0,005 'Modelación de procesos'

  • Aceleración de gravedad: g = 9,8 'Modelación de procesos'

  • Masa del proyectil: m = 3 'Modelación de procesos'

Tenemos que considerar el efecto de la resistencia del aire en un lanzamiento parabólico, donde:

'Modelación de procesos'
es la Fuerza del rozamiento del aire.

Luego por la segunda Ley de Newton se tiene:

-En el eje x:

'Modelación de procesos'

'Modelación de procesos'
(a1)

-En el eje y:

'Modelación de procesos'

'Modelación de procesos'
(a2)

Luego tenemos:

'Modelación de procesos'

Que es representado por el siguiente sistema de ecuaciones:

'Modelación de procesos'

b. Obtener de manera analítica las coordenadas X e Y

La ecuación (a1) es una ecuación diferencial, donde se obtiene la solución de la forma 'Modelación de procesos'
. Así con las condiciones iniciales 'Modelación de procesos'
y 'Modelación de procesos'
obtenemos x.

'Modelación de procesos'

La ecuación (a2) también es una ecuación diferencial, donde se obtiene la solución de la forma 'Modelación de procesos'
. Así con las condiciones iniciales 'Modelación de procesos'
y 'Modelación de procesos'
obtenemos y. 'Modelación de procesos'

En resumen:

'Modelación de procesos'

c. Obtener una expresión aproximada para el tiempo de vuelo y la distancia recorrida.

De las ecuaciones del movimiento podemos obtener el tiempo de vuelo:

Despejando t de y(t)=0:

'Modelación de procesos'

Aproximando:

'Modelación de procesos'

Luego, desarrollando:

'Modelación de procesos'

Lo que se aproximo fue:

'Modelación de procesos'

Despreciando los términos 'Modelación de procesos'
se llega a:

'Modelación de procesos'
(a3)

Cuando 'Modelación de procesos'
:

'Modelación de procesos'

'Modelación de procesos'
(a4)

Reemplazando (a4) en (a3):

'Modelación de procesos'
Tiempo de vuelo aproximado.

Reemplazando los parámetros se llega a:

'Modelación de procesos'

-Ahora podemos obtener la distancia recorrida

'Modelación de procesos'

'Modelación de procesos'

Ahora reemplazamos el tiempo de vuelo y los parámetros en esta ecuación, así tenemos:

'Modelación de procesos'

d. Simule el sistema, obtenga gráficas para el desplazamiento [km] y velocidad [m/s], para el modelo obtenido en a. y b. , con los parámetros dados en la tabla, y compare.

Se ocuparon los siguientes código para los graficos:

E3.m:

%Lunes 05/Octubre/2007

%Tarea 1 Modelación de Procesos: PROBLEMA N°3: LANZAMIENTO PROYECTIL

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clear all;

close all;

clc;

global v0 theta k g m

%Parámetros del modelo:

v0=700;

theta=60*pi/180;

k=5e3;

%k=1e2

%k=2e2

%k=4e2

%k=8e2

g=9.8;

m=3;

%==========================================================================

%==========================================================================

%Condiciones Iniciales

x0=0;

vx0=v0*cos(theta);

y0=0;

vy0=v0*sin(theta);

%==========================================================================

%==========================================================================

%Gráfico:

[t,x]=ode45('P3_ec',[0 150],[x0 vx0 y0 vy0]);

figure(1)

plot(t,x(:,1)/1e3), axis on, grid on, title('x(t)')

xlabel('Tiempo'), ylabel('Posicion [Km]') %x

figure(2)

plot(t,x(:,2)), axis on, grid on, title('vx(t)')

xlabel('Tiempo'), ylabel('Velocidad [m/s]')%vx

figure(3)

plot(t,x(:,3)/1e3), axis on, grid on, title('y(t)')

xlabel('Tiempo'), ylabel('Posicion [Km]') %y

figure(4)

plot(t,x(:,4)), axis on, grid on, title('vy(t)')

xlabel('Tiempo'), ylabel('Velocidad [m/s]')%vy

y E3_ec.m:

function v_estado=E3_ec(t,x)

global v0 theta k g m

v0=700;

theta=60*pi/180;

k=0.005;

g=9.8;

m=3;

%==========================================================================

%==========================================================================

%Sistema de ecuaciones:

v_estado=zeros(4,1);

v_estado(1)=x(2);

v_estado(2)=-k*x(2);

v_estado(3)=x(4);

v_estado(4)=-k*x(4)-g;

Las graficas obtenidas son:

-Desplazamiento [Km]:

-Velocidad [m/s]:

e. Obtenga las trayectorias para los siguientes valores de k, con k= 0.005, 0.01, 0.02, 0.04 y 0.08.

Se ocupo el siguiente código:

E3e:

%Lunes 05/Octubre/2007

%Tarea 1 Modelación de Procesos: PROBLEMA N°3e: LANZAMIENTO PROYECTIL

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clear all

close all

clc

%Parámetros del modelo:

v0 = 700;

theta=60*pi/180;

k = input('Introduzca coeficiente de fricción del aire: k= ');

g = 9.8;

m = 3;

v0y =v0*sin(theta);

v0x =v0*cos(theta);

t = 1:.2:120;

%==========================================================================

%Ecuaciones:

x = (v0x)*(1-exp(-k*t))/k;

y = -g*t/k+((g+k*v0y)/k^2)*(1-exp(-k*t));

%==========================================================================

%Gráfico:

figure(1),plot(x/1000,y/1000), axis on , grid on

xlabel('x [km]'), ylabel('y [km]') ,title('k=');

Y se obtuvieron las siguientes gráficas:

f. De la expresión aproximada en c. , para el tiempo de vuelo, cual es el rango de valor de k, para que la aproximación sea válida.

Según las gráficas se puede apreciar que k tiene que ser del orden de 10-3 o menor para poder despreciar la fuerza de roce del aire.

Si k> 10-3 no seria recomendable despreciar la fuerza de roce del aire en este caso.

Universidad de Concepción

'Modelación de procesos'

Ingeniería Civil Electrónica

Universidad de Concepción




Descargar
Enviado por:Francisco Guerrero
Idioma: castellano
País: Chile

Te va a interesar