|
\documentclass[12pt]{article} |
|
\usepackage[english,spanish]{babel} |
|
\usepackage[utf8]{inputenc} |
|
\usepackage{tikz} |
|
\usetikzlibrary{shapes,arrows} |
|
|
|
\setlength{\parskip}{1.2em} |
|
\setlength{\parindent}{0pt} |
|
\oddsidemargin 1cm |
|
\textwidth 14cm |
|
\textheight 20cm |
|
|
|
\begin{document} |
|
\begin{titlepage} |
|
\begin{center} |
|
\textsc{\Large Universidad Aut\'onoma de Nuevo Le\'on}\\[0.5cm] |
|
\textsc{\large Facultad de Ingenier\'ia Mec\'anica y El\'ectrica}\\[1.5cm] |
|
\textsc{\Large Proyecto de Automatizaci\'on}\\[0.5cm] |
|
{\huge \bfseries Control de Volumen Autom\'atico}\\[1cm] |
|
|
|
{\Large |
|
\emph{Autores:}\\ |
|
Cecilia Urbina\\ |
|
Ram\'on Gonz\'alez\\ |
|
Roberto Mart\'inez\\[0.5cm] |
|
|
|
\emph{ Profesor:}\\ |
|
Dra. Elisa Schaeffer |
|
} |
|
\vfill |
|
{\Large \today} |
|
\end{center} |
|
\end{titlepage} |
|
|
|
\tableofcontents |
|
\newpage |
|
|
|
\section{Introducci\'on} |
|
El proyecto que estamos desarrollando es un sistema para ajuste de volumen. La idea es controlar el volumen del sonido en una bocina o altavoz, que depende del ruido que se encuentra en el entorno. Esto significa que si tenemos reproduciendo una canci\'on en una habitaci\'on, y en determinado momento entra gente a platicar, el volumen del dispositivo que esta emitiendo el sonido de la canci\'on aumente paulatinamente para que se continue escuchando la canci\'on. |
|
|
|
Un ejemplo pr\'actico de donde se usa este tipo de sistemas, es en los autom\'oviles, donde el volumen de la m\'usica dentro del auto aumenta cuando el motor emite mucho ruido, en cambio cuando este esta detenido, el volumen baja. |
|
|
|
El sistema controlara la salida del audio, entonces lo que nosotros deseamos controlar es el ajuste en la bocina o altavoz. |
|
|
|
La funci\'on de transferencia de un altavoz montado en pantalla infinita est\'a definida por la ecuaci\'on (1). D\'onde $s$ es la variable de frecuencia compleja $\sigma + j\omega , \omega_S$ es la frecuencia angular de resonancia del altavoz y $Q_{TS}$ el factor de calidad total del sistema que engloba los factores de p\'erdida mec\'anicos ($Q_{MS}$) y el\'ectricos ($Q_{ES}$). |
|
|
|
Funci\'on de transferencia: |
|
|
|
\begin{equation} |
|
\frac{R(s)}{C(s)} = \frac{s^2/\omega_{s}^{2}}{s^2/\omega_{s}^{2}+s/\omega_{s}Q_{TSA}+1} |
|
\end{equation} |
|
|
|
Tomando esta funci\'on de transferencia podemos crear un diagrama de bloques correspondiente. |
|
|
|
\newpage |
|
Diagrama de bloques: |
|
|
|
\selectlanguage{english} |
|
\tikzstyle{block} = [draw, fill=white!20, rectangle, minimum height=2em, minimum width=5em] |
|
\tikzstyle{sum} = [draw, fill=white!20, circle, node distance=3cm] |
|
\tikzstyle{input} = [coordinate] |
|
\tikzstyle{output} = [coordinate] |
|
\tikzstyle{pinstyle} = [pin edge={to-,thin,black}] |
|
|
|
\begin{center} |
|
{\large |
|
\begin{tikzpicture}[auto, node distance=2cm,>=latex'] |
|
\node [input, name = entrada] {}; |
|
\node [sum, right of = entrada] (suma) {}; |
|
\node [sum, below of = suma] (suma2) {}; |
|
\node [sum, right of = suma2 ] (suma3) {}; |
|
\node [block, right of = suma, node distance=5cm] (primera) {$\frac{s^2}{\omega_{s}^{2}}$}; |
|
\node [output, right of=primera, node distance=6cm] (salida) {}; |
|
\node [block, right of = suma3] (segunda) {$\frac{s^2}{\omega_{s}^{2}}$}; |
|
\node [block, below of = segunda] (tercera) {$\frac{s}{\omega_{s}Q_{TS}}$}; |
|
\node [block, below of = tercera] (cuarta) {1}; |
|
\draw [draw, ->] (entrada) -- node {$Rs$} (suma); |
|
\draw [->] (suma) -- node {} (primera); |
|
\draw [->] (segunda) -- node[pos=0.89, above] {$_{+}$} node[pos=0.89] {$_{+}$} (suma3); |
|
\draw [->] (suma3) -- node[pos=0.89, above] {$_{+}$} node[pos=0.89] {$_{+}$} (suma2); |
|
\draw [->] (primera) -- node [name=Cs] {$Cs$}(salida); |
|
\draw [->] (Cs) |- (segunda); |
|
\draw [->] (Cs) |- (tercera); |
|
\draw [->] (Cs) |- (cuarta); |
|
\draw [->] (tercera) -| node[pos=0.99] {} (suma3); |
|
\draw [->] (cuarta) -| node[pos=0.99] {} (suma2); |
|
\draw [->] (suma2) -- node[pos=0.99] {$_{-}$} (suma); |
|
\end{tikzpicture} |
|
} |
|
\end{center} |
|
\selectlanguage{spanish} |
|
|
|
|
|
\section{Forma Normal Controlable} |
|
Un sistema es totalmente controlable cuando existe un control sin restricci\'on $u(t)$ que puede llevar cualquier estado inicial $x(t_{0})$ a cualquier otro estado que se desee $x(t)$ en un tiempo finito, $t_{0}<=t<=T$. |
|
|
|
Cuando se tiene un sistema con una \'unica entrada, y \'unica salida, la matriz de controlabilidad $P_{c}$ se describe en t\'erminos de A y B como: |
|
|
|
\begin{equation} |
|
P_{c} = [B\ AB\ A^{2}B ... A^{n-1}B] |
|
\end{equation} |
|
|
|
que es una matriz $n x n$. Si el determinante $P_{c}$ es distinto de 0 el sistema es controlable. |
|
|
|
En el sistema para controlar la bocina el $P_{c}$ es igual a $-1$ lo que indica que es un sistema controlable, ya que es distinto a $0$. |
|
|
|
\begin{verbatim} |
|
W = 1; |
|
Q = 1; |
|
Numerador = [(1/W**2) 0 0]; |
|
Denominador = [(1/W**2) (1/(W*Q)) 1]; |
|
Sistema = tf(Numerador, Denominador); |
|
[A, B, C, D] = tf2ss(Sistema); |
|
|
|
Pc = ctrb(A, B); |
|
Nc = det(Pc); |
|
|
|
if Nc != 0 |
|
printf("El sistema de audio si es controlable\n") |
|
else |
|
printf("El sistema de audio no es controlable\n") |
|
endif |
|
\end{verbatim} |
|
|
|
|
|
\section{Forma Normal Observable} |
|
La observabilidad es la posibilidad de estimar una variable de estado. Se puede decir que un sistema es observable cuando existe un tiempo finito T de forma que el estado inicial $x(0)$ se pueda determinar apartir de la observaci\'on de la historia $y(t)$ dado el control $u(t)$. |
|
|
|
Se dice que el sistema es totalmente observable cuando el determinante de la matriz de la observabilidad $P_{O}$ es distinto de $0$ en donde: |
|
|
|
\begin{equation} |
|
P_{O} = \left| \begin{array}{cc} C \\ CA \\ \vdots \\ CA_{n-1} \end{array} \right| |
|
\end{equation} |
|
|
|
es una matriz $nxn$. |
|
|
|
En el sistema que se esta analizando del control de la bocina se tiene que el $P_{O}$ es $1$ por lo que se dice que si es un sistema observable. |
|
|
|
\begin{verbatim} |
|
W = 1; |
|
Q = 1; |
|
Numerador = [(1/W**2) 0 0]; |
|
Denominador = [(1/W**2) (1/(W*Q)) 1]; |
|
Sistema = tf(Numerador, Denominador); |
|
[A, B, C, D] = tf2ss(Sistema); |
|
|
|
Po = obsv(A, C); |
|
No = det(Po); |
|
|
|
if No != 0 |
|
printf("El sistema de audio si es observable\n") |
|
else |
|
printf("El sistema de audio no es observable\n") |
|
endif |
|
\end{verbatim} |
|
|
|
|
|
\section{Diagonalizaci\'on} |
|
Suponiendo que A es una matriz cuadrada con eigenvalores $\lambda_{1},\cdots,\lambda_{n}$ y con eigenvectores $v_{1},\cdots,v_{n}$. Se tiene: |
|
|
|
\begin{equation} |
|
S = \left[ \begin{array}{cccc}v_{1}&v_{2}&\cdots&v_{n} \end{array} \right] |
|
\end{equation} |
|
|
|
Despu\'es: |
|
|
|
\begin{equation} |
|
AS = \left[ \begin{array}{cccc}Av_{1}&Av_{2}&\cdots&Av_{n} \end{array} \right] |
|
\end{equation} |
|
|
|
\begin{equation} |
|
AS = \left[ \begin{array}{cccc}\lambda_{1}v_{1}&\lambda_{2}v_{2}&\cdots&\lambda_{n}v_{n} \end{array} \right] |
|
\end{equation} |
|
|
|
\begin{equation} |
|
AS = \left[ \begin{array}{cccc}v_{1}&v_{2}&\cdots&v_{n}\end{array} \right] |
|
\left[ \begin{array}{ccccc}\lambda_{1}&0&0&\cdots&0\\ |
|
0&\lambda_{1}&0&\cdots&0\\ |
|
0&0&\lambda_{1}&\cdots&0\\ |
|
\vdots&&&&\vdots\\ |
|
0&0&0&\cdots&\lambda_{1}\\ |
|
\end{array} \right] |
|
=SD |
|
\end{equation} |
|
|
|
en donde D es la matriz diagonal con eigenvalores en la diagonal. |
|
\begin{equation} |
|
A = SDS^{-1}\ \ S^{-1}AS=D |
|
\end{equation} |
|
|
|
A esto es a lo que se llama diagonalizac\'on. |
|
|
|
Esto en Octave se hace de la siguiente manera. |
|
|
|
\begin{verbatim} |
|
W = 1; |
|
Q = 1; |
|
Numerador = [(1/W**2) 0 0]; |
|
Denominador = [(1/W**2) (1/(W*Q)) 1]; |
|
Sistema = tf(Numerador, Denominador); |
|
[A, B, C, D] = tf2ss(Sistema); |
|
[S, D] = eig(A); |
|
|
|
printf('La matriz A es\n') |
|
A |
|
printf('La matriz D es\n') |
|
D |
|
printf('La matriz S\n') |
|
S |
|
printf('A = S*D*S^(-1)\n') |
|
S*D*S^(-1) |
|
printf('S^-1*A*S=D\n') |
|
S^-1*A*S |
|
\end{verbatim} |
|
|
|
|
|
\section{C\'odigo completo de Octave} |
|
|
|
\begin{verbatim} |
|
#Observavilidad |
|
#Toma como parametros: |
|
#A = matriz de estado de transicion N x N |
|
#C = Matriz medicion P x N |
|
#Se calcula la determinante para saber la observabilidad |
|
function observable = observable(A, C) |
|
Po = obsv(A, C); |
|
No = det(Po); |
|
|
|
if No != 0 |
|
printf("El sistema de audio si es observable\n") |
|
else |
|
printf("El sistema de audio no es observable\n") |
|
endif |
|
endfunction |
|
|
|
#Contrabilidad |
|
#Toma como parametros: |
|
#A = matriz de estado de transicion N x N |
|
#B = matriz de entrada N x M |
|
#Se calcula la determinate para saber la controlabilidad |
|
function controlable = controlable(A, B) |
|
Pc = ctrb(A, B); |
|
Nc = det(Pc); |
|
|
|
if Nc != 0 |
|
printf("El sistema de audio si es controlable\n") |
|
else |
|
printf("El sistema de audio no es controlable\n") |
|
endif |
|
endfunction |
|
|
|
|
|
#Diagonalizacion |
|
#Toma como parametros: |
|
#A = matriz de estado de transicion N x N |
|
function res = diagonalizacion(A) |
|
[S, D] = eig(A); |
|
printf('La matriz A es\n') |
|
A |
|
printf('La matriz D es\n') |
|
D |
|
printf('La matriz S\n') |
|
S |
|
printf('A = S*D*S^(-1)\n') |
|
S*D*S^(-1) |
|
printf('S^-1*A*S=D\n') |
|
S^-1*A*S |
|
endfunction |
|
|
|
#Funcion donde se declaran la frecuencia y |
|
#El factor Q de calidad del sistema mecanico. |
|
#Numerador y denominador del sistema. |
|
#La funcion de transferencia. |
|
#Se transforma la representacion de la funcion de |
|
#tranferencia en matrices de representacion de estados. |
|
#Se hace llamar el analisis de observable y controlable. |
|
function inicializar = inicio() |
|
W = 1; |
|
Q = 1; |
|
Numerador = [(1/W**2) 0 0]; |
|
Denominador = [(1/W**2) (1/(W*Q)) 1]; |
|
Sistema = tf(Numerador, Denominador); |
|
[A, B, C, D] = tf2ss(Sistema); |
|
|
|
observable(A, C); |
|
controlable(A, B); |
|
diagonalizacion(A); |
|
|
|
return; |
|
endfunction |
|
\end{verbatim} |
|
|
|
\newpage |
|
{\large \bfseries Salida} |
|
|
|
\begin{verbatim} |
|
octave:3> inicio() |
|
Po = |
|
|
|
0.00000 0.00000 -1.00000 |
|
0.00000 1.00000 1.00000 |
|
-1.00000 -1.00000 -0.00000 |
|
|
|
El sistema de audio si es observable |
|
Pc = |
|
|
|
0.00000 1.00000 -1.00000 |
|
0.00000 -1.00000 0.00000 |
|
-1.00000 1.00000 -0.00000 |
|
|
|
El sistema de audio si es controlable |
|
La matriz A es |
|
A = |
|
|
|
-0.00000 -0.00000 -1.00000 |
|
-1.00000 -0.00000 1.00000 |
|
0.00000 -1.00000 -1.00000 |
|
|
|
La matriz D es |
|
D = |
|
|
|
Diagonal Matrix |
|
|
|
-0.00000 + 1.00000i 0 0 |
|
0 -0.00000 - 1.00000i 0 |
|
0 0 -1.00000 + 0.00000i |
|
|
|
La matriz S |
|
S = |
|
|
|
-0.35355 - 0.35355i -0.35355 + 0.35355i 0.70711 + 0.00000i |
|
0.70711 + 0.00000i 0.70711 - 0.00000i -0.00000 + 0.00000i |
|
-0.35355 + 0.35355i -0.35355 - 0.35355i 0.70711 + 0.00000i |
|
|
|
A = S*D*S^(-1) |
|
ans = |
|
|
|
-3.8852e-16 - 1.9631e-17i 2.4896e-16 + 6.7241e-18i |
|
-1.0000e+00 + 1.5253e-21i |
|
-1.0000e+00 - 1.8280e-16i 3.5975e-16 - 2.3552e-16i |
|
1.0000e+00 - 6.5012e-17i |
|
-1.6930e-16 - 1.9631e-17i -1.0000e+00 + 8.5215e-17i |
|
-1.0000e+00 + 1.5699e-16i |
|
|
|
S^-1*A*S=D |
|
ans = |
|
|
|
-8.8484e-17 + 1.0000e+00i -2.0170e-16 - 6.1623e-17i |
|
-1.5699e-16 + 9.1902e-17i |
|
-1.4896e-16 + 2.9039e-16i -3.5738e-17 - 1.0000e+00i |
|
-3.9251e-16 + 6.5107e-17i |
|
-3.9275e-17 - 1.5702e-16i 3.9275e-17 + 3.1404e-16i |
|
-1.0000e+00 - 6.5031e-17i |
|
\end{verbatim} |
|
|
|
|
|
\section{Referencias} |
|
Richard C. Dorf, Robert H. Bishop, {\it Sistemas De Control Moderno}, |
|
10a Edición, PEARSON. |
|
|
|
Katsuhiko Ogata, {\it Ingeniería de Control Moderna}, 4ta. Edición, PEARSON. |
|
|
|
\end{document} |