Está en la página 1de 6

Mechatronic Designing - USB, Bogotá (Due: 02/06/2021)

Assignment #3

Instructor: Jaime Arcos-Legarda Ph.D. Name: Fredy Santiago Vélez, Code: 30000033271

Problem 1: Version Spaces (10 points)

Design a feedback linearization control strategy to stabilize the pendulum shown in the Figure 1 in the up-
ward position.

Figure 1: Inertial wheel pendulum

0.1 Desarrollo:
Para el desarrollo del control, primero se encontró el modelo dinámico que representa a la planta, para ello se
cuenta con la ecuación de Euler - Lagrange y a partir de este paso se comienza a ejecutar ciertas estrategias
de control no lineal que pueda relacionar el eslabón sub-actuado con la señal de control aplicada al eslabón
actuado.
         
D11 D12 θ̈1 C11 C12 θ̇1 G11 0
+ + = (0.1)
D21 D22 θ̈2 C21 C22 θ̇2 G21 Um
a partir de la planta se puede observar que existen dos ecuaciones diferenciales que modelan el compor-
tamiento dinámico de la planta y para poder plantar una ley de control se expresará la planta matricial en una
planta de dos ecuaciones y posterior a eso se juntarán ambas ecuaciones para obtener una sola ecuación de la
planta.
¨
θ̈1 = −D12 ∗θ2 −C11D ∗θ̇1 −C12 ∗θ̇2 −G11
11
(0.2)
−D21 ∗θ¨1 −C21 ∗θ̇1 −C22 ∗θ̇2 −G21
θ̈2 = D22
Se sustituye la aceleración de theta2 en la primer ecuación y se obtiene:
D12 ∗C21 D12 ∗C22 D
( D22 −C11 )∗θ̇1 +( D22 −C12 )∗θ̇2 −G11 + D 12 ∗G21
2,2 D12
θ̈1 = cte − D2,2 ∗cte ∗ Um
(0.3)
D21 ∗D12
cte = D11 − D22
posterior a eso se entiende que el modelo encontrado es el siguiente, y ya es posible realizar un control de
linealización por realiemntación.

θ¨1 (t) = f (x) + g(x) ∗ Um (0.4)

1
Fredy Santiago Vélez – Assignment #3 2

El código utilizado en MATLAB para el controlador es el siguiente:

1 function tao = ControlLaw(q D,dq D,ddq D,q,dq,r)


2 p = [ 9.81; %'g','p(1)'
3 0.390647/4; %'L1','p(2)'
4 0.390647/2; %'L2','p(3)'
5 0.3; %'m 1','p(4)'
6 0.1; %'m 2','p(5)'
7 0.000963782; %'Izz 1','p(6)'
8 0.00165366; %'Izz 2','p(7)''
9 0.05; %'B1','p(8)'
10 0.004]; %'B2','p(9)'
11
12 %matriz D
13
14 D = zeros(2,2);
15
16 D(1,1)=p(6) + p(7) + p(2)ˆ2*p(4) + p(3)ˆ2*p(5);
17 D(1,2)=p(7);
18 D(2,1)=p(7);
19 D(2,2)=p(7);
20
21 D inv = inv(D);
22
23 %matriz G
24 G=zeros(2,1);
25
26 G(1,1)=-p(1)*sin(q(1))*(p(2)*p(4) + p(3)*p(5));
27 G(2,1)=0;
28
29 %matriz de velocidad
30 C=zeros(2,2);
31
32 C(1,1)=p(8);
33 C(1,2)=0;
34 C(2,1)=0;
35 C(2,2)=p(9);
36
37 if r == 1
38 cte = D(1,1) - (D(2,1)*D(1,2))/D(2,2);
39 f x = (((D(1,2)*C(2,1))/D(2,2) - C(1,1))*dq(1) + ((D(1,2)*C(2,2))/D(2,2) - C(1,2))*dq(2) ...
40 - G(1,1) + (D(1,2)/D(2,2))*G(2,1))/cte;
41
42 g x = - (D(1,2)/D(2,2))/cte;
43
44 ts = 0.5;
45 %polos
46 s 1 = 4/ts;
47 s 2 = s 1 *3;
48
49 K1 = s 1+s 2;
50 K0 = s 1 * s 2;
51
52 mu = ddq D - K1*(dq(1)- dq D) - K0*(q(1) - q D);
53 % s e a l de control
54 tao = (1/g x)*(-f x + mu);
55 else
56 tao = 0;
57 end

con el fin de darle un poco más de sentido a la simulación el control no se activará hasta que haya pasado dos
segundos en la simulación.
Fredy Santiago Vélez – Assignment #3 3

El diagrama de bloques de todo el sistema en el espacio de simulación Simscape es el siguiente:

f(x) = 0
[q2]

[Um]
in1out1
in1

out1

simscape
sensor 4

[dq1] [dq2]

in1out1
in1

out1

sensor 3 [q1]
q_D

dq_D
[Um]
[q1]
[q1]

ddq_D

tao
[q2]
q

[dq1]
dq

[dq2]
r

Figure 2: Diagrama de bloques del sistema

Posición angular del péndulo

-1
Posición (rad)

-2

-3

-4

-5

0 1 2 3 4 5 6 7 8 9 10

Tiempo (seg)

Figure 3: Posición angular del péndulo vs Tiempo

Para más información puede ver la simulación en el siguiente link: LINK


Fredy Santiago Vélez – Assignment #3 4

Problem 2: define the optimization problem (20 points)

Para el siguiente punto a resolver se plantea como función objetivo la integral del cuadrado del error de
seguimiento de la posición angular del péndulo, también se especifica que los parámetros que se desea opti-
mizar es el polo dominante (s1) de la ley de control y la viscosidad dinámica (b1) del péndulo en su eje de
rotación; el diagrama de bloques se observa en la siguiente figura:

1.118

q_D

dq_D

in1out1
in1

out1

ddq_D
q
sensor 1
q tao Tao2
b1 P [P]
in1out1
in1

dq
out1

dq

sensor 2
[P] p

s1

Figure 4: Diagrama de bloques del sistema a optimizar


Fredy Santiago Vélez – Assignment #3 5

Problem 3: Solve the optimization problem (20 points)

Con los valores iniciales de los parámetros a optimizar se encontró que la función objetivo sube hasta el valor
de 1.109, y ya que lo que se busca es disminuir este valor a partir de los parámetros S1 y b1 se observan los
siguientes cambios posterior a la optimización.

Integral del cuadrado del error


1.2

1 Int(e^2)
error de posición

0.8

0.6

0.4

0.2

0 0.5 1 1.5
Tiempo(seg)
Offset=0

Figure 5: integral del cuadrado del error sin optimización

Integral del cuadrado del error

0.7

Int(e^2)
0.6

0.5
error de posición

0.4

0.3

0.2

0.1

0 0.5 1 1.5
tiempo(seg)
Offset=0

Figure 6: integral del cuadrado del error con optimización

El algoritmo utilizado en MATLAB fue el siguiente:

1 function [x] = pendulo inercial


2
3 penduloooo % initialize Simulink(R)
4 x0 = [0.05 8];
5 yout = [];
6 xold = [];
7 safety=[]; % condiciones no lineales
8 opt = simset('SrcWorkspace','Current'); % parametros para que pueda simular
9 options = optimset('Display','iter','TolX',0.001,'TolFun',0.001);
10 x=fmincon(@trackmmobj,x0,[],[],[],[],[0.001 4],[0.1 18],@trackmmcon,options); % comando de ...
optimizacion
Fredy Santiago Vélez – Assignment #3 6

11
12 % b1 = x(1); s1 = x(2);
13
14 function J x =trackmmobj(x)
15 updateIfNeeded(x)
16 J x=yout;
17 end
18
19 function [c,ceq] = trackmmcon(x)
20 % Track the output of optsim to a signal of 1.
21 % Variable yout is shared with RUNTRACKMM and
22 % TRACKMMOBJ
23 updateIfNeeded(x)
24 c = [];
25 ceq=[];
26 end
27
28 function updateIfNeeded(x)
29 if ¬isequal(x,xold) % compute only if needed
30 b1=x(1);
31 s1=x(2);
32 obj=sim('penduloooo',[0 1.5],opt);
33 J=obj.J; %objeto J
34 yout=J(length(J)); %ultimo valor de J, J
35 safety=obj.safe; %restriccion no lineal
36 xold=x; %actualizaci n del x
37 end
38 end
39 end

En las figuras anteriores se puede demostrar porque bajo las restricciones que se dieron el valor de b1 y s1 son
los óptimos en este problema de diseño; en donde evidentemente se nota como el valor del ı́ndice de desempeño
ISE redujo su valor.

También podría gustarte