Social Icons

twitterfacebookgoogle plusemail

martes, 13 de noviembre de 2012

Reporte grupal sobre propiedades estructurales

Introducción

El sistema que se pretende controlar es el mismo que se tiene como proyecto final de esta materia. Para ello daré una breve explicación, mi proyecto trata de mover una pelota a cierta altura en el aire dentro de un tubo donde este será movido por un ventilador con un motor DC, gracias a un sensor ultrasonico este sabría hacia que altura moverse, osea que tanta potencia le daríamos al motor DC para que la pelota se eleve. Para ello reciclaremos el juguete que vemos abajo, conectando el motor DC y el sensor ultrasonico a un arduino que por medio de este haremos el control.

Reporte
Esta es su representación en la forma normal controlable.
Código en Octave:
J = 0.01;
b = 0.1;
K = 0.01;
num = [K];
den = [J b 0];
%Funcion de transferencia
sys = tf(num,den)
%Funcion de transferencia a espacios de estados
[a, b, c, d] = tf2ss(num, den)
/*
a = 0 0
1 -10
b = -1
0
c = 0 -1
d = 0
*/
view raw gistfile1.c hosted with ❤ by GitHub

Esta es su representación en la forma normal observable.
Código en Octave:
j = 0.01;
b = 0.1;
k = 0.01;
num = [k];
den = [j b 0];
[A,B,C,D] = tf2ss(num,den);
ob = obsv(A,C)
view raw gistfile1.c hosted with ❤ by GitHub

Esta es su representación en la forma de Jordan.
Código en Octave:
[a, b, c, d] = tf2ss(num, den);
eig(a); % se buscan los eigenvalues de los estados de transicion de la matrix a
roots(den); % busca los polos de la funcion de transferencia
abs(roots(den)); % checa la estabilidad de los polos de la funcion de transferencia
[E,L] = eig(a); % obtenemos los eigenvectors
/*
E =
0.00000 0.99504
1.00000 0.09950
L =
Diagonal Matrix
-10 0
0 0
*/
Ei = inv(E); % matriz inversa
Ab = Ei * a *E % diagonalizacion
/*
Ab =
-10 0
0 0
*/
Bb = Ei * b;
/*
Bb =
0.10000
-1.00499
*/
Cb = c * E;
/*
Cb =
-1.000000 -0.099504
*/
Db = d;
%Db = 0
view raw gistfile1.c hosted with ❤ by GitHub

Código en Latex del documento:

\documentclass[letterpaper,12pt]{article}
\usepackage{pst-sigsys}
\usepackage[utf8]{inputenc}
\begin{document}
\setlength{\parindent}{0pt}En esta ocasión se usara la función:
\[ H(s) = \frac{k}{js^2 + bs} \]
\setlength{\parindent}{0pt} Donde $k = 0.01$, $j = 0.01$, $b = 0.1$.\\
La cual representa la función de transferencia de un motor de corriente directa. El cual se pretende usar para controlar el flujo de aire en un pequeño tunel de manera que se pueda sostener una esfera en cierta posición. \linebreak El respectivo diagrma de bloques es el siguiente:
%Aqui va el diagrama de bloques
\begin{center}
\begin{pspicture}[showgrid=false](0.5,-2.5)(9, 1.55)
\rput(1,0){\rnode{s}{$R(s)$}}
\cput[doubleline=false, scale = .5](3.5, -1){$-$}
\pscircleop(3, 0){ominus}
\dotnode[dotstyle=square*,dotscale=0.001](9,0){dot1}
\dotnode[dotstyle=square*,dotscale=0.001](2.7,0){dot2}
\dotnode[dotstyle=square*,dotscale=0.001](2.5,0){dot3}
\dotnode[dotstyle=square*,dotscale=0.001](3.5,-1.3){dot4}
\dotnode[dotstyle=square*,dotscale=0.001](3.5,-.7){dot5}
\dotnode[dotstyle=square*,dotscale=0.001](3.5,0){dot6}
\psblock(5.5, 0){H1}{$\frac{k}{js^{2} + bs}$}
\psblock(7, -2){H2}{$k$}
\psblock(5, -2){H3}{$F(k)$}
\rput(10,0){\rnode{e}{$C(s)$}}
\psset{style=Arrow}
\ncangle[angleA = 0, angleB= 180]{s}{ominus}
\ncline[nodesepB=0]{H1}{e}
\ncangle[angleA=90, angleB= -90]{dot5}{dot6}
\ncangle[angleA=-90,angleB=0]{dot1}{H2}
\ncangle[angleA=180,angleB=0]{H2}{H3}
\ncangle[angleA=-180,angleB=-90]{H3}{dot4}
\ncangle[angleA=0,angleB=180]{ominus}{H1}
\end{pspicture}
\end{center}
\setlength{\parindent}{0pt} Esta función de transferencia puede ser representada de diversas maneras en el espacio de estados.
\begin{itemize}
\item Forma Canonica Controlable: Para obtener esta representación basta con definir el numerador y denominador de la función de transferencia y usarlo con la función \emph{tf2ss(numerador,denominador)}
\begin{equation}
\begin{array}{rcl}
\left [
\begin{array}{r}
\dot{x}_1(t) \\
\dot{x}_2(t)
\end{array}
\right ]
&=&
\left [
\begin{array}{rr}
0 & 0 \\
1 & -10
\end{array}
\right ]
\left [
\begin{array}{r}
x_{1}(t) \\
x_{2}(t)
\end{array}
\right ]
+
\left [
\begin{array}{r}
-1 \\
0
\end{array}
\right ]
u(t) \\
& \phantom{=} &
\\
y(t) &=& [
\begin{array}{rr}
0 & -1
\end{array}
]
\left [
\begin{array}{r}
x_{1}(t) \\
x_{2}(t)
\end{array}
\right ]
\end{array}
\end{equation}
\item Forma Canonica Observable: Para la obtención de la forma canónica observable partiendo de la forma canónica controlable y usando los valores obtenidos en la \emph{función obsv(A,C)} \\
$j = 0.01;$\\
$b = 0.1;$\\
$k = 0.01;$\\
$num = [k];$
$den = [j\, b\, 0];$\\
$[A,B,C,D] = tf2ss(num,den);$\\
$ob = obsv(A,C)$
\item Forma Canonica de Jordan:
\begin{equation}
\begin{array}{rcl}
\left [
\begin{array}{r}
\dot{x}_1(t) \\
\dot{x}_2(t)
\end{array}
\right ]
&=&
\left [
\begin{array}{rr}
-10 & 0 \\
0 & 0
\end{array}
\right ]
\left [
\begin{array}{r}
x_{1}(t) \\
x_{2}(t)
\end{array}
\right ]
+
\left [
\begin{array}{r}
0.1 \\
-1.00499
\end{array}
\right ]
u(t) \\
& \phantom{=} &
\\
y(t) &=& [
\begin{array}{rr}
-1 & -0.099504
\end{array}
]
\left [
\begin{array}{r}
x_{1}(t) \\
x_{2}(t)
\end{array}
\right ]
\end{array}
\end{equation}
\end{itemize}
\end{document}
view raw gistfile1.tex hosted with ❤ by GitHub


Personas del equipo:

Saúl Gausin
Raúl Gonzalez
Isaías Garza

1 comentarios:

  1. La idea era hacer un sólo reporte contínuo, incluyendo en ello los códigos y la explicación. No omiten acentos al redactar en español; se considera mala ortografía. Algunos de los bolas de derivada encima de los símbolos son absolutamente enormes o_0 Entre tres personas, esperaría más de un reporte. Explicación, referencias, etc. Van 15 pts.

    ResponderEliminar