miércoles, 21 de noviembre de 2012

[Lab ACSD] 7. Criterio de Routh

"P6.1. Utilizando el criterio de Routh-Hurwitz, determine la estabilidad de los siguientes polinomios.

a) s2 + 5s + 2
b) s3 + 4s2 + 6s + 6
c) s3 + 2s2 - 4s + 20
d) s4 + s3 + 2s2 + 10s + 8
e) s4 + s3 + 3s2 + 2s + K
f) s5 + s4 + 2s3 + s + 5
g) s5 + s4 + 2s3 + s2 + s + K

Para todos los casos determine el número de raíces, si las hay. Indique si alguna cae en la parte derecha del plano.
Determine el intervalo de K que dé como resultado un sistema estable."


Del libro "Sistemas de Contro Moderno" , 10ma edición, Richard Dorf

Introducción

Un problema importante en los sistemas de control es la estabilidad, una forma sencilla de determinar la estabilidad de un sistema es utilizar el criterio de Routh-Hurwitz.
El criterio de Routh-Hurwitz es un método numérico que nos permite determinar el número de polos inestables en un sistema. Dicho método hace uso del polinomio que se encuentra en el denominador de la función de transferencia con la forma, el denominador recibe el nombre de ecuación caracteristica:
$$
\frac{C(s)}{R(s)} = \frac{b_{0}s^{m} + b_{1}s^{m-1} + b_{2}s^{m-2} + ... + b_{m}s^{0}}{a_{0}s^{n} + a_{1}s^{n-1} + a_{2}s^{n-2} + ... + a_{n}s^{0}}
$$
Como mencione en el párrafo anterior, tomando la ecuación caracteristica
$$ F(s) = a_{0}s^{n} + a_{1}s^{n-1} + a_{2}s^{n-2} + ... + a_{n}s^{0} $$
... se debe crear una tabla acomodando los elementos de la siguiente forma.
 $$ \left.\begin{matrix} s^{n}\\ s^{n-1}\\ s^{n-2}\\ ...\\ ...\\ ...\\ s^{0} \end{matrix}\right| \left.\begin{matrix} a_{0} & a_{2} & a_{4} & a_{6} & ... & ...\\ a_{1} & a_{3} & a_{5} & a_{7} & ... & ...\\ b_{1} & b_{2} & b_{4} & ... & ... & ...\\ c_{1} & c_{2} & ... & ... & ... & ... \\ ... & ... & ... & ... & ... & ... \\ ... & ... & ... & ... & ... & ... \\ g_{1} & g_{2} & g_{3} & ... & ... & ... \\ \end{matrix}\right| $$
Las primeras 2 filas contienen los coeficientes de las variables la ecuación caracteristica, de la tercera fila en adelante los valores se encuentran según las siguientes formulas:

$$ b_{1} = \frac{a_{1}a_{2} - a_{0}a_{3}}{a_{1}} $$ $$ b_{2} = \frac{a_{1}a_{4} - a_{0}a_{5}}{a_{1}} $$ $$ b_{3} = \frac{a_{1}a_{6} - a_{0}a_{7}}{a_{1}} $$ $$ c_{1} = \frac{b_{1}a_{3} - a_{1}b_{2}}{b_{1}} $$ $$ c_{2} = \frac{b_{1}a_{5} - a_{1}b_{3}}{b_{1}} $$

Como podemos ver, el método es bastante parecido a los métodos de solución de matrices, tomando un pivote y multiplicando los valores en cruz para posteriormente restarlos y dividirlos entre el pivote.

Una vez que se da solución a la tabla, el número de raíces en la ecuación característica con parte real positiva es igual al número de cambios de signo en los coeficientes de la primera columna. Éste número también indica el número de polos que se encuentran en el semiplano derecho del plano s; cabe mencionar que un sistema de control es estable si y solo si todos los polos en lazo cerrado se encuentran en el semiplano izquierdo del plano s.

Soluciones

a) s2 + 5s + 2

La solución a éste sistema es bastante sencilla, la tabla nos queda resuelta asi:

$$ \left.\begin{matrix} s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 2 \\ 5 & ... &\\ 2 & ... &\\ \end{matrix}\right| $$

La solución podemos comprobarla de 2 formas con octave, utilizando el comando roots y gráficando los polos con el comando rlocus, éste es el resultado:


Las raíces se encuentan en los puntos (-4.56155, 0) y (-0.43845, 0), como las raíces son negativas, el sistema es estable.


b) s3 + 4s2 + 6s + 6

Para éste sistema la tabla queda resuelta de la siguiente forma:

$$\left.\begin{matrix} s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 6 \\ 4 & 6 \\ 4.5 & ... &\\ 6 & ... &\\ \end{matrix}\right| $$

Ahora comprobamos con octave, utilizando roots y rlocus



Las raíces se encuentan en los puntos (-2.57474, 0i), (-0.71263, 1.35i) y (-0.71263, -1.35i) como las raíces son negativas, el sistema es estable.



c) s3 + 2s2 - 4s + 20

Para éste sistema la tabla queda resuelta de la siguiente forma:

$$\left.\begin{matrix} s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & -4 \\ 2 & 20 \\ -14 & ... &\\ 20 & ... &\\ \end{matrix}\right| $$

Como podemos notar, en ésta tabla hay 2 cambios de signo, en la tercera y cuarta fila, ésto quiere decir que existen 2 raíces positivas, eso lo comprobamos con octave, utilizando roots y rlocus



Las raíces se encuentan en los puntos (-4.1361, 0i), (1.0681, 1.9221i) y (1.0681, -1.9221i) , existen 2 raíces positivas por lo que el sistema es inestable


d) s4 + s3 + 2s2 + 10s + 8

Para éste sistema la tabla queda resuelta asi:

$$\left.\begin{matrix} s^{4}\\ s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 2 & 8\\ 1 & 10 & ...\\ -8 & 8 & ...\\ 11 & ... & ...\\ 8 & ... & ...\\ \end{matrix}\right| $$

Como podemos notar, en ésta tabla hay 2 cambios de signo, en la tercera y cuarta fila, ésto quiere decir que existen 2 raíces positivas, eso lo comprobamos con octave, utilizando roots y rlocus



Las raíces se encuentan en los puntos (0.83512, 2.02294i), (0.83512, -2.02294i), (-1.67024, 0i) y (-1.0, 0i), existen 2 raíces positivas por lo que el sistema es inestable


e) s4 + s3 + 3s2 + 2s + K


Para éste sistema la tabla queda resuelta asi:

$$\left.\begin{matrix} s^{4}\\ s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 3 & K\\ 1 & 2 & ...\\ 1 & K & ...\\ 2-K & ... & ...\\ K & ... & ...\\ \end{matrix}\right| $$

Además de resolver la tabla será necesario hallar K y el intervalo donde K hace del sistema un sistema estable, en éste caso, su valor se encuentra despejando la variable.

$$ 2 - K = 0 \\
K = 2$$

Entonces, el intervalo que hace que el sistema sea estable es 0 < K < 2.

En ésta tabla no hay cambios de signo, en la tercera y cuarta fila eso lo comprobamos con octave, utilizando roots y rlocus. Le asignamos a K valores dentro y fuera del intervalo, estos son los resultados:

Valor de K Raíces Conclusión Imágen
K = 0 -0.14239 + 1.66615i -0.14239 - 1.66615i -0.71523 + 0.00000i 0.00000 + 0.00000i Marginalmente estable (raíz en 0)
K = 1 -0.10488 + 1.55249i -0.10488 - 1.55249i -0.39512 + 0.50684i -0.39512 - 0.50684i Sistema Estable
K = 2 -0.00000 + 1.41421i -0.00000 - 1.41421i -0.50000 + 0.86603i -0.50000 - 0.86603i Sistema Estable
K = -1 -0.16109 + 1.75438i -0.16109 - 1.75438i -1.00000 + 0.00000i 0.32219 + 0.00000i Sistema Inestable
K = 3 0.1765 + 1.3641i 0.1765 - 1.3641i -0.6765 + 1.0621i -0.6765 - 1.0621i Sistema Inestable


Con esta sencilla prueba podemos ver como el sistema se comporta de forma estable cuando los valores de K se encuentran dentro del intervalo 0 < K < 2.


f) s5 + s4 + 2s3 + s + 5

Es éste problema la tabla de criterio de routh queda:

$$\left.\begin{matrix}
s^{5}\\
s^{4}\\
s^{3}\\
s^{2}\\
s^{1}\\
s^{0}\\
\end{matrix}\right|
\left.\begin{matrix}
1 & 2 & 1\\
1 & 0 & 5\\
2 & -4 & ...\\
2 & 5 & ...\\
-9 & 0 & ...\\
5 & 0 & ...\\
\end{matrix}\right| $$

Como podemos notar, en ésta tabla hay 2 cambios de signo, en la quinta y sexta fila, ésto quiere decir que existen 2 raíces positivas, eso lo comprobamos con octave, utilizando roots y rlocus




Las raíces se encuentan en los puntos (-0.68376, 1.57543i),  (-0.68376, -1.57543i), (-1.19456, 0i),  (0.78104, 0.89948i) y (0.78104, -0.89948i), existen 2 raíces positivas por lo que el sistema es inestable

g) s5 + s4 + 2s3 + s2 + s + K

Es éste problema la tabla de criterio de routh queda:

$$\left.\begin{matrix} s^{5}\\ s^{4}\\ s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 2 & 1 \\ 1 & 1 & K \\ 1 & 1-K & ...\\ 1-(1-K) & K & ...\\ (1-(1-K))(1-K) & ... & ...\\ ((1-(1-K))(1-K))(k) & ... & ...\\ \end{matrix}\right|$$

La tabla nos queda algo extraña, sin embargo, es posible reducirla si vamos resolviendo las ecuaciones poco a poco y asi obtener una tabla más clara.
Podemos despejar K en la ecuación de la fila s2 tal que:
$$1-(1-K) = 0\\ 1 = 1-K \\ K = 1-1 \\ K = 0$$
Ahora, si

$$1-(1-K) = 0\\
K = 0 \\
\therefore \\
1-(1-K) = K$$
Lo que resulta en la siguiente tabla

$$\left.\begin{matrix} s^{5}\\ s^{4}\\ s^{3}\\ s^{2}\\ s^{1}\\ s^{0}\\ \end{matrix}\right| \left.\begin{matrix} 1 & 2 & 1 \\ 1 & 1 & K \\ 1 & 1-K & ...\\ K & K & ...\\ -K^{2} & ... & ...\\ -K^{3} & ... & ...\\ \end{matrix}\right|$$

Sin embargo, K da signos de ser 0, lo que quiere decir que no existe un margen que permita que el sistema sea estable, concluímos desde ahora que el sistema es marginalmente estable porque tiene raíz en 0 cuando K = 0.

Comprobamos con OCTAVE:

Valor de K Raíces Conclusión Imágen
K = 0 -0.50000 + 0.86603i -0.50000 - 0.86603i 0.00000 + 1.00000i 0.00000 - 1.00000i 0.00000 + 0.00000i Marginalmente estable
K = 1 -0.45570 + 1.20015i -0.45570 - 1.20015i -0.76683 + 0.00000i 0.33911 + 0.82238i 0.33911 - 0.82238i Sistema Inestable
K = -1 -0.79944 + 0.85066i -0.79944 - 0.85066i 0.06070 + 1.23821i 0.06070 - 1.23821i 0.47748 + 0.00000i Sistema Inestable


Concluye la actividad


Referencias

N/A

martes, 20 de noviembre de 2012

[ACSD] Reporte Final

Proyecto

"Control de velocidad de un motor de corriente directa"

Componentes

Para el desarrollo del proyecto se emplearon los siguientes componentes: 
  • Motor DC
  • Puente H L239D 
  • Optointerruptor ITR 810
  • 1 Encoder (Disco horadado)
  • 2 Resistencias 10k y 330k
  • Arduino UNO R3
  • Fuente o Batería Externa max 12 volt 0.6 mA
  • Protoboard
  • Cables Jumper
  • 1 Led

Diagrama





Video




Código




[RNA] Reporte Final

Descripción del Proyecto


El proyecto a desarrollar en ésta materia consistio en crear una librería basada en redes neuronales que permita realizar predicciones de datos.

La entrada de datos era indistinta, poder ingresar información de diversos tipos, normalizada previamente, y obtener como salida un valor nuevo o pronóstico de acuerdo al análisis de la serie de tiempo de entrada.

Mas concretamente, el objetivo de la red neuronal es detectar patrones de delincuencia basandonos en los historiales de eventos pasados para así poder predecir el posible aumento o disminución de actividad delictiva en ciertas zonas. El objetivo adicional es realizar un análisis más profundo que nos permita predecir en cuáles zonas es mas probable que aumente la actividad delictiva y en cuales sea probable que disminuya.



Contribuciones al proyecto


Mis contribuciones al proyecto fueron siempre más orientadas a la programación de la red neuronal. Por lo que mis contribuciones consistieron en lo siguiente:
  • Programación del perceptrón
    • Se programo una neurona simple binaria
    • Actualización a neurona simple multidimensional
    • Implementación de capas
    • Red neuronal multicapa
    • Aprendizaje persistente simple

Arquitectura de la red


A base de un poco de investigación establecimos la arquitectura de nuestra red neurona. Tomamos 6 valores de entrada, para ellos nos basamos en dividir nuestro periodo de observación de 1 año en 12 meses, y de ahí tomar muestras de 6 meses para predecir un séptimo mes. 




Esté fue el enfoque principal, sin embargo, también es posible tomar en cuenta periodos de observación en diferentes escalas, ya sea 6 días, 6 semanas o 6 años.




Obviamente es necesario utilizar una red multicapa, ya que las redes multicapa tiene la particularidad de aproximar problemas no lineales. Gracias a la lectura científica que realicé en dias anteriores, concluí que las redes neuronales multicapa con una capa oculta y una capa de salida son muy recomendadas para problemas de pronóstico y análisis de series de tiempo, entonces, se decidio utilizar una red neuronal de 3 capas, una de entrada, una oculta y una de salida.
La cantidad total de nodos establecida fue 15.

Proceso de aprendizaje


Los métodos de predicción utilzan el algoritmo de backpropagation. Sin embargo, no se pudo implementar el algoritmo de backpropagation.

El proceso de aprendizaje que se había establecido fue:

  • Normalizar los datos de entrada entre 0 y 1
  • Generar los pesos de cada neurona, valores entre -1 y 1
  • Procesar entrada y pesos (producto punto), y calcular activación
  • Aplicación de función sigmoidal
  • Realizar el proceso feedfoward (capa por capa)
  • Una vez obtenida la salida, calcular el error final
  • Aplicar backpropagation y modificar los pesos de acuerdo al error de cada capa.
  • Procesar la siguiente entrada con los nuevos pesos

Aprendizaje persistente

Simplemente consistió en almacenar los pesos de cada neurona en un archivo de texto y posteriormente cargar los mismos cuando se desee utilizar la neurona para procesar otras entradas

Red Multicapa


La red multicapa fue muy sencilla, una red completamente conectada hacia adelante, capa por capa (feedfoward). Regla delta como función de aprendizaje y función sigmoidal para procesar la activación y calcular la respuesta de la neurona.



Repositorio


La liga al repositorio es: https://github.com/rafaellopezgtz/neurored
Ahí se puede ver el avance del código y los commits realizados por los miembros del equipo.


Referencias
http://www4.rgu.ac.uk/files/chapter3%20-%20bp.pdf
http://www.karlbranting.net/papers/plummer/Paper_7_12_00.htm


Concluye el reporte.

martes, 13 de noviembre de 2012

[RNA] Redes Neuronales

Haciendo referencia al proyecto que he venido desarrollando, el tema que elegí para lectura científica fue:


One-Hour-Ahead Load Forecasting Using Neural Network
Predicción de la carga (eléctrica) una hora adelante.
Autores:

  • Tomonobu Senjyu, Member, IEEE, 
  • Hitoshi Takara
  • Katsumi Uezato
  • Toshihisa Funabashi, Senior Member, IEEE

Introducción


El documento hace referencia a la importancia que tiene de predecir la carga total a la que será expuesta una instalación eléctrica durante su periodo de planeación y operación.
Multiples compañias realizan ya este tipo de procedimientos mediante técnicas convencionales, sin embargo, el comportamiento de la carga durante un periodo establecido de tiempo no es lineal.
Para tener el éxito esperado es necesario utilizar una red neuronal de estructura compacta y con un periodo de entrenamiento corto, es por ello que los autores se centran solo en predecir el comportamiento de la carga una hora adelante, en lugar de otros métodos que intentan predecir el mismo comportamiento pero 24 horas por delante.
El entrenamiento es sencillo, se aplica un factor de correción de acuerdo a una comparación realizada con datos similares de días diferentes, asi de logra un entrenamiento eficiente.

El utilizar este sistema de comparación de información con datos similares en días diferentes elimina la no linealidad de los datos, los datos similares son promediados para mejorar la precisión de la predicción.

Selección de los datos de días similares


Se utiliza un método llamado norma euclidiana la cual permite comprender al similitud de los datos, ésto se logra estudiando el coeficiente de correlación existente entre los datos ambientales del sistema y la carga de poder antes de aplicar la norma euclidiana.
La ecuación utilizada es:

[1]

Donde L(t-k) es la curva de carga en el dia de la predicción, L^P(t-k) es la curva de carga en un día similar &deltaL^t-k es la desviación de la carga entre la carga de poder del día de la predicción y la carga de poder en un día similar.
w(i)(i=1-3) es el factor de peso.

En otros métodos se utilizan como variables de la norma euclidiana las temperaturas máximas y mínimas del día de la predicción, sin embargo, dichas variables tienden a tener una rápida variación en ciertas situaciones por lo que es posible obtener una tasa de error muy alta.
En el método propuesto se subtituye las temperaturas por la carga de poder.

La red neuronal

Estructura

La red neuronal se alimentara, para su entrenamiento, de los datos de días similares; su entrada principal será la información obtenida durante el día de la predicción.
La estructura propuesta para la red neurona es multicapa. Generalmente una red neuronal con tres capas tiene la capacidad de aproximar funciones no lineales porque se incrementa el número de nodos ocultos, por ello se utiliza un modelo de tres capas donde cada capa esta completamente conectada hacia adelante. Se tiene una entrada de 9 elementos y 20 nodos ocultos, y se obtiene un solo dato de salida.
Ésta es el diagrama de la estructura de la red neuronal.

[1]

Procedimiento de aprendizaje y predicción

El método de predicción utilza el algoritmo de backpropagation. La red neuronal es entrenada con la información de 30 días antes del día de la predicción, lo cual es una cantidad de información muy grande.
También es posible utilizar la información de 60 días antes si se desean realizar predicciones de un año en el futuro.
Si el día de la predicción se cambia, es necesario reentrenar la red neuronal por completo. El procedimeinto utilizado es el siguiente:
  1. Determinar el rango de información necesario para la predicción
  2. Determinar los límites de selección de días similares para un día de aprendizaje. Por lo general 30 días similares desde el día antes del aprendizaje, si es posible, de un año antes.
  3. Seleccionar los días similares para el primer día de aprendizaje.
  4. Realizar backpropagation para los N días similares.
  5. Realizar backpropagation para todos los días dentro del rango de aprendizaje
  6. Realizar 200 iteraciones de backpropagation sin un límite específico.
  7. Seleccionar los días similares, para el día de la predicción.
  8. Seleccionar las variables de entrada.
  9. Realizar la corrección de predicción.
  10. Obtener la curva de predicción. 

Simulación

Para realizar simulaciones de las predicciones antes de su aplicación real, se pueden seguir 4 posibles casos:

  1. Predecir la curva de carga utilizando un modelo de regresión simple. Se utiliza la temperatura y la carga utilizada.
  2. Predecir la curva de carga utilizando la información de días similares. La red neuronal no se utiliza, es puramente estadístico.
  3. Predecir la curva de carga utilizando un método sin proceso de entrenamiento y aprendizaje, para ello se utiliza la información de días similares.
  4. Predecir la curva de carga utilizando un método con proceso de entrenamiento y aprendizaje, para ello se utiliza la información de días similares.

En la siguiente imagén se puede ver la comparación delas lecturas reales con la de la red neuronal

[1]

En la imágen no se puede notar muy bien, pero podemos notar que las líneas de predicción y la línea real estan completamente empalmadas, lo que indica la efectividad del sistema


Conclusión

Pues quedó mas claro el concepto de predicción de datos leyendo este tema, pienso que es posible utilizar alguno de los método aqui propuesto para realizar un modelo de predicción más general.
Pienso que es posible retomar los métodos de entrenamiento propuestos para aplicarlos a mi proyecto y asi lograr algo más sólido y eficiente en la predicción de otro tipo de eventos.


Referencias


sábado, 10 de noviembre de 2012

[Lab ACSD] 6. Análisis de sistemas de control en el espacio de estados

B.11.1 Considere el siguiente sistema representado mediante la funcion de transferencia:


Obtenga las representaciones en el espacio de estados de este sistema en las formas:

  • Forma canónica controlable
  • Forma canónica observable

SOLUCIONES

Antes de comenzar con las soluciones, debemos representar nuestra ecuación en la forma:

[2]

Si nuestra ecuación es:

Entonces nuestra ecuación quedaría:


Donde:
  • b0 = 0
  • b1 = 1
  • b2 = 6
  • a1 = 5
  • a2 = 6

[1] "Existen dos conceptos fundamentales  de los sistemas  de control: la controlabilidad y la observabilidad.
La  controlabilidad se ocupa del problema de poder dirigir  un sistema de un estado inicial dado, a un estado arbitrario y la observabilidad se ocupa del problema de determinar  el estado de un sistema dinámico a partir de observaciones de los  vectores de salida y de control en un número finito de periodos de muestreo.
El concepto de controlabilidad es la base para solucionar el problema de la ubicación de polos y el concepto de la  observabilidad juega  un papel importante para el diseño de los observadores de estados."

Controlabilidad

[1] "Un sistema es controlable si cada variable de estado del proceso se puede controlar para llegar a un cierto objetivo en un tiempo finito, a través de algún control no restringido u(t). Por lo tanto el concepto de controlabilidad trata de la existencia de un vector de control que puede causar que el estado del sistema llegue a algún estado arbitrario. 
En forma intuitiva, un sistema de control es controlable si todas las variables de estado pueden ser controladas en un periodo finito, mediante alguna señal de control no restringida. Así, si cualquiera de las variables de estado es independiente de la señal de control, entonces resulta imposible controlar esa variable de estado y, por lo tanto, el sistema es no controlable."

La forma controlable está dada por la forma:

[2]


Ahora, tomando nuestras variables b1 = 1, b2 = 6, a1 = 5, a2 = 6, la representación de estados en la forma controlable quedaría:

Respuesta 1: Forma canónica controlable


Observabilidad


[1] "El concepto de observabilidad es dual al de controlabilidad, e investiga la posibilidad de estimar el estado del sistema a partir del conocimiento de la salida.
Consideramos el sistema lineal estacionario:

[3]




Se dice que el estado x(t0) es observable si dada cualquier entrada u(t), existe un



tiempo finito tf ≥ t0 tal que el conocimiento de: 


  • u(t) para t0 ≤ t < tf
  • las matrices A, B, C y D
  • la salida y(t) para t0 ≤ t < tf

sea suficiente para determinar x(t0). Si cada estado del sistema es observable para 
un tiempo finito, se dice que el sistema es  completamente observable, o 

simplemente observable."


La forma observable está dada por la forma:

[2]

Ahora, tomando nuestras variables b1 = 1, b2 = 6, a1 = 5, a2 = 6, la representación de estados en la forma observable quedaría:

Respuesta 2: Forma canónica observable.


Forma canónica diagonal

De forma complementaría, veamos como obtener la forma canónica diagonal. Primero debemos comenzar hallando las raíces del denominador, siempre y cuando éstas sean distintas:

[2]

Para posteriormente expandir el resultado a fracciones parciales:

[2]

Utilizando el método de la fórmula general, hallar las raíces es trivial:


En esté punto podemos concluír que las raíces son -2 y -3. Entonces nuestro denominador es factorizable de forma directa, nuestra ecuación queda asi:


Utilizando octave (comando residue) podemos hallar los coeficientes y comprobar las raíces que obtuvimos:


Con los datos anteriores podemos expandir la ecuación a fracciones parciales:


Donde:
  • c1 = 4
  • c2 = -3
  • p1 = 2
  • p2 = 3
La forma diagonal está dada por la forma:

[2]

Acomodando las variables que obtuvimos arriba, la forma diagonal de la función queda:

Respuesta 3 Forma canónica diagonal

Asi concluye la actividad.


Referencias
[1] http://www.ie.itcr.ac.cr/einteriano/control/clase/1.2.0RealimentaciondeEstado.pdf
[2] http://www.scribd.com/doc/13353419/Espacio-de-estados
[3] http://www.scribd.com/doc/7110433/Presentacion-Analisis-de-Espacio-de-Estados
http://pcmap.unizar.es/~inma/algebra/practicas/A_L_g_pract_3.pdf
[LIBRO] Ingeniería de Control Moderna - 4ta edición - K. Ogata

martes, 6 de noviembre de 2012

[VVS] 10. Propiedades de modelos de verificación

La tarea de esta semana consistió en lo siguiente:
  • Inventen una expresión ω-regular con por lo menos dos símbolos y por lo menos dos operadores.
  • Dibujen el NBA que le corresponde.

Un Autómata Büchi no determinista es una quintupla A = (Q, Σ, Q0, δ, F) sobre un abecedario Σ, donde:
  • Q es un conjunto finito de estados
  • Q0 ⊆ Q es un conjunto no vacío de estados iniciales
  • δ : Q × Σ → 2Q es una función de transición
  • F ⊆ Q es un conjunto de estados finales.

Los operadores de un Autómata Büchi no determinista están definidos en la siguiente tabla


OperadorSímboloRepresentación
Unión
L1 ∪ L2
L1 + L2
Concatenación
L1 • L2
(L1)(L2)
Clausura
L1*

Para el ejemplo que tomaré, el abecedario estará dado por:

Σ = {a, b, c}

Y la expresión ω-regular será:

ab*+c

Podemos representar la expresión anterior construyendo el autómata paso a paso, primero la unión:



Despues dividimos la concatenación y resolvemos:



Por último la clausura, así obtenemos el autómata final.



Solo para complementar la información:
  • Q = {q0, q1, q2, q3, q4, q5}
  • Q0 = {q0}
  • F = {q4}
  • Σ = {a, b, c}

REFERENCIAS

martes, 30 de octubre de 2012

[SC] 9. Steganography

For this week the challenge was implement a steganography script using python, so, here are my pictures.

This one contain a hidden message:


Hidden Plaintext:

CHAPTER I.
WHICH TREATS OF THE CHARACTER AND PURSUITS OF THE FAMOUS GENTLEMAN DON QUIXOTE OF LA MANCHA

In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, 
an old buckler, a lean hack, and a greyhound for coursing. An olla of rather more beef than mutton, a salad on most nights, scraps on Saturdays, lentils on Fridays, 
and a pigeon or so extra on Sundays, made away with three-quarters of his income. The rest of it went in a doublet of fine cloth and velvet breeches and shoes to match 
for holidays, while on week-days he made a brave figure in his best homespun. He had in his house a housekeeper past forty, a niece under twenty, and a lad for the field 
and market-place, who used to saddle the hack as well as handle the bill-hook. The age of this gentleman of ours was bordering on fifty; he was of a hardy habit, spare, 
gaunt-featured, a very early riser and a great sportsman. They will have it his surname was Quixada or Quesada (for here there is some difference of opinion among the 
authors who write on the subject), although from reasonable conjectures it seems plain that he was called Quexana. This, however, is of but little importance to our tale; 
it will be enough not to stray a hair's breadth from the truth in the telling of it.

You must know, then, that the above-named gentleman whenever he was at leisure (which was mostly all the year round) gave himself up to reading books of chivalry with 
such ardour and avidity that he almost entirely neglected the pursuit of his field-sports, and even the management of his property; and to such a pitch did his eagerness 
and infatuation go that he sold many an acre of tillageland to buy books of chivalry to read, and brought home as many of them as he could get. But of all there were none 
he liked so well as those of the famous Feliciano de Silva's composition, for their lucidity of style and complicated conceits were as pearls in his sight, particularly 
when in his reading he came upon courtships and cartels, where he often found passages like "the reason of the unreason with which my reason is afflicted so weakens my 
reason that with reason I murmur at your beauty;" or again, "the high heavens, that of your divinity divinely fortify you with the stars, render you deserving of the 
desert your greatness deserves." Over conceits of this sort the poor gentleman lost his wits, and used to lie awake striving to understand them and worm the meaning out 
of them; what Aristotle himself could not have made out or extracted had he come to life again for that special purpose. He was not at all easy about the wounds which 
Don Belianis gave and took, because it seemed to him that, great as were the surgeons who had cured him, he must have had his face and body covered all over with seams 
and scars. He commended, however, the author's way of ending his book with the promise of that interminable adventure, and many a time was he tempted to take up his pen 
and finish it properly as is there proposed, which no doubt he would have done, and made a successful piece of work of it too, had not greater and more absorbing thoughts 
prevented him.

Three of these ones (the three inside the blue frame) contains the python code used to hide the information:







So, let's hack begin...

Code:

To download the code:


To download the images:

  
To encode information:

python stegano.py -E

To decode information

python stegano.py  -D

Then, enter the requested data.