Modelación de procesos

Anuncio
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).
(1)
Por otro lado, la fuerza de atracción Fe(t), que ejerce el electroimán, está dada por (2).
, (2)
Parámetro
Valor
M
0.2
d
1.5
k
24.5
g
9.8
l0
0,3
l1
0.6
ki
3e−3
a
0.02
R
1
L
0.06
Unidad de
Medida
1
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:
2
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:
La fuerza que realiza el amortiguador como:
La fuerza de gravedad:
La fuerza del electroimán:
Figura 2. Diagrama de cuerpo libre sistema
3
Masa−Resorte−Amortiguador−electroimán
De la segunda Ley de Newton y diagrama de cuerpo libre de la Figura 2, se puede escribir:
Es decir:
, (3)
Tenemos que consideras que:
, (4)
Y así dejamos y(t) en función de x(t).
Reemplazando la ecuación (4) en (3) y ordenando, nos queda:
(5)
También podemos obtener otra ecuación de la ecuación (1):
(1)
Despejando
, tenemos la ecuación (6):
(6)
Ocuparemos (1) y (5) para representar nuestro sistema en matrices, con
,
4
,
y
:
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.
Ahora tenemos el siguiente sistema de ecuaciones LINEAL:
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í:
5
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]
6
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
7
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 , , 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
d1
0.5
d4
1.5
a1
0.4
a2
0.35
Unidad de
Medida
8
Problema N°2
Variables de entrada:
• Ángulo de giro Link 1 con respecto a Joint 1:
• Ángulo de giro Link 2 con respecto a Joint 2:
• Ángulo de giro de Link 4:
• Distancia de x2 a x3: d3
Parámetros:
• d1=50 [cm]
• d4=15 [cm]
9
• 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]
10
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);
0010;
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 ;
0100;
0 0 1 −d3;
0 0 0 1];
%
%OBS:
11
% Matriz que había en el enunciado original:
% A3 = [ 1 0 0 0 ;
%0100;
% 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;
12
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');
13
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];
14
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
VO
700
Unidad de
Medida
60
k
0.005
15
g
9.8
m
3
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
• Ángulo inicial con respecto a la horizontal: = 60
• Coeficiente de fricción: k = 0,005
• Aceleración de gravedad: g = 9,8
• Masa del proyectil: m = 3
Tenemos que considerar el efecto de la resistencia del aire en un lanzamiento parabólico, donde:
es la Fuerza del rozamiento del aire.
Luego por la segunda Ley de Newton se tiene:
−En el eje x:
(a1)
−En el eje y:
16
(a2)
Luego tenemos:
Que es representado por el siguiente sistema de ecuaciones:
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
. Así con las condiciones iniciales
y
obtenemos x.
La ecuación (a2) también es una ecuación diferencial, donde se obtiene la solución de la forma
. Así con las condiciones iniciales
y
obtenemos y.
En resumen:
17
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:
Aproximando:
Luego, desarrollando:
Lo que se aproximo fue:
Despreciando los términos
se llega a:
(a3)
18
Cuando
:
(a4)
Reemplazando (a4) en (a3):
Tiempo de vuelo aproximado.
Reemplazando los parámetros se llega a:
−Ahora podemos obtener la distancia recorrida
Ahora reemplazamos el tiempo de vuelo y los parámetros en esta ecuación, así tenemos:
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
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19
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)
20
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);
21
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));
22
%==========================================================================
%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
Ingeniería Civil Electrónica
Universidad de Concepción
23
Documentos relacionados
Descargar