Está en la página 1de 10

Capítulo 1 Solución Propuesta

Para llevar a cabo el diseño del sistema electrónico se propone una solución estructurada en 3
bloques distintos. El primer bloque se subdivide en 2 bloques más pequeños.
En primer lugar, se lleva a cabo la recolección de datos utilizando un medidor de corriente y otro
de voltaje. Los datos obtenidos serán transmitidos por un sistema basado en protocolo Zigbee. El
segundo bloque es destinado a procesamiento en el borde, en él se realiza el sistema de
conmutación(switching) aplicando transistores MOSFET para finalmente, en el tercer bloque se
facilitar la interacción con el sistema según la información se vaya almacenando en la base de
datos. En la Figura 1 se muestra el diagrama de bloques del sistema.

Figura 1. Diagrama de bloques del sistema

1.1 Bloque I: Procesamiento local


1.1.1Recolección de datos
Para la recolección de datos usaremos el TIDA-00640. Este diseño montado en PCB integra la
medición del voltaje, la corriente y la temperatura. De esta forma se monitorizan estos 3
parámetros en un único sistema. Dicho sistema puede ser alimentado por el propio módulo y
comunicar los datos de forma inalámbrica a través de múltiples protocolos. El diseño se encuentra
en la Figura 4.

Figura 2. Diseño TIDA-00640

En la siguiente imagen se muestra un diagrama de bloques del TIDA-00640.


Figura 3. Diagrama de bloques TIDA-00640

En la Figura 3 podemos observar que el diseño está conformado por el módulo inalámbrico
CC2538, 2 amplificadores y un LM5017. Este último componente se trata de un regulador de
tensión de conmutación con MOSFETS integrados.
Los módulos solares modernos están aumentando su voltaje para producir una mayor potencia de
salida. Los módulos solares comunes tienen una tensión nominal de entre 70 V y 50 V y una
potencia de salida superior a los 300 W. Estos valores irán incrementándose de forma gradual
conforme avance la tecnología.

Para satisfacer los requisitos de tensión de entrada de las células solares, el TIDA-00640 especifica
una tensión de entrada muy amplia de hasta 90 V. Esto se consigue con el regulador reductor
LM5017, que es capaz de manejar tensiones de entrada de 7,5 a 100 V. Esta gama se adapta muy
bien a la naturaleza dinámica de los módulos fotovoltaicos, que pueden tener un amplio rango de
tensiones de salida.
Normalmente todos los módulos solares suelen estar colocados en serie. De esta manera, la
corriente medida debe de ser capaz de soportar la corriente de salida total de toda la cadena. Por el
contrario, si se coloca a la entrada, solo debe ser capaz de soportar la corriente de ese módulo. Este
diseño es capaz de medir como máximo una corriente de 10(A). Como sensor se utiliza una
resistencia de derivación de bajo valor para reducir la complejidad y coste del sistema.
En cuanto a la medición de voltaje el TIDA-00640 utiliza una configuración simple de divisor de
tensión y amplificador para medir la tensión de nivel del módulo. Se fijó un límite superior bajo
para dar al circuito analógico suficiente sobrecarga en el caso de una salida de tensión del módulo
superior a la esperada. Para minimizar la pérdida de potencia en el divisor, se utilizaron
resistencias de alto valor. Por ejemplo, una caída total de 510 kΩ da como resultado sólo 177 μA
de consumo de corriente del módulo
Para medir la temperatura se utiliza el sensor de temperatura analógico interno, cuya precisión es
de ±5°C, del CC2538.Con el sensor incorporado, el diseño es capaz de autocontrolar la
temperatura del sistema a nivel de módulo. El seguimiento de la temperatura puede proporcionar
información significativa sobre el rendimiento real del módulo solar.
A continuación, se muestra una imagen del diagrama de bloques del módulo CC2538.
Figura 4: Diagrama bloques CC2538

Para el proyecto se ha decidido utilizar comunicación ZigBee aprovechando el módulo CC2538


que integra el propio TIDA para permitir la monitorización a nivel de módulo solar. En nuestro
proyecto instalaremos de forma individual un sensor de corriente y de voltaje.
La principal ventaja de utilizar el TIDA-00640 es que cada punto de toma de medida funciona
como emisor y receptor pudiendo viajar los datos de un sensor a otro hasta llegar a la unidad de
procesamiento, permitiendo crear grandes superficies sin la necesidad de repetidores o tecnologías
cableadas.
La principal desventaja a la hora de utilizar este sistema es que el suministro depende de un único
fabricante, en este caso, Texas Instruments. Para intentar solventar este punto se podrían buscar
soluciones alternativas.
1.1.2Transmisión de datos
Como comentamos en el punto anterior el sistema de recolección de datos implementa la
comunicación Zigbee, así que para la transmisión también se necesita hacer uso del mismo
protocolo.
Tras haber obtenido datos mediante los sensores de corriente y voltaje utilizamos la comunicación
Zigbee para transmitir los datos. Todos estos datos viajarán a un punto de procesamiento local
donde luego serán enviados al procesamiento en el borde.
En el siguiente apartado se describe el protocolo Zigbee para así entender mejor el funcionamiento
de este, así como ver las posibilidades que ofrece.
1.1.3Protocolo Zigbee
ZigBee es un protocolo de comunicaciones inalámbrico de alto nivel. Dicho protocolo se basa en
el estándar 802.15.4 para las capas bajas de comunicación y se caracteriza por:
➢ Bajo consumo y baja tasa de transferencia de datos

➢ Topología de red en malla.


➢ Su fácil integración
Permite la creación de una red donde cada uno de los distintos módulos pueden funcionar como
dispositivos de destino, routers u ocupar el papel de coordinador de la comunicación.
Por otra parte, el protocolo ZigBee puede crear o mantener rutas de forma dinámica gracias a su
topología en malla. Esto permite que la red corrija automáticamente situaciones de desconexión
parcial de alguno de los nodos que la componen.
La principal desventaja de Zigbee radica en la seguridad. Zigbee no requiere confirmación activa
para que un dispositivo se empareje, lo que lo deja vulnerable a que otros usuarios accedan a su
protocolo inalámbrico [8]–[10].
Para implementar la comunicación Zigbee será necesario añadir una antena Zigbee. En este caso
se trata de la CC2530. Esta antena presenta una gran sensibilidad en el receptor y tiene una gran
robustez frente a interferencias. En la Figura 5 se muestra una imagen de la antena Zigbee
CC2530.
Figura 5. Antena Zigbee

Para la recepción de los datos haremos uso del SoC RP-T113-S3. Este SoC integra un una CPU

CortexTM-A7 de doble núcleo y un DSP HiFi4 de un solo núcleo para proporcionar una potencia
de cálculo muy eficiente. Se ha escogido este SoC porque posee suficiente memoria dinámica para
la recepción los datos, este ha sido el principal motivo de elección del mismo.
Este factor fue clave a la hora de elegir el dispositivo ya que existen otras opciones en el mercado,
pero sin memoria suficiente para las necesidades del proyecto. Este SoC cuenta específicamente
con 128Mb de memoria RAM DDR3, suficiente para poder mandar y recibir datos procedentes de
más de un panel. A continuación, en la Figura 7 se muestra una imagen del SoC.
Figura 6. SoC RP-T113-S3

1.1.4Sistema de switching
Este sistema es el encargado de realizar la conmutación de paneles para que sigan trabajando en el
punto de máxima potencia (MPP). Se modifica la topología de interconexión de la red
dependiendo de los datos provenientes del procesamiento en el borde, de esta forma el panel que
menos energía genere es independiente del resto y podemos mantenernos en el punto de máxima
potencia. En primera instancia se pensó implementar el sistema de switching por célula. No
obstante, durante el transcurso del proyecto se descartó esta idea ya que suponía un alto coste.
Por contraparte al implementar un sistema de conmutación por panel el punto de máxima potencia
(MPPT) se ve reducido ya que la complejidad de conmutar paneles es significativamente menor.
Para el sistema de switching se ha pensado usar un MOSFET IRF5210PbF. Este componente se
caracteriza por tener una rápida capacidad de conmutación. A continuación, en la Figura 7 se
muestra una imagen de las especificaciones del MOSFET en cuestión.

Figura 7. Datasheet IRF5210PbF

Se ha decidido realizar una circuitería propia que mediante Zigbee utilicemos a los MOSFET para
conmutar los paneles. La implementación de los switches no sería en el propio panel, sino que se
escogería un lugar determinado donde llegue el cableado para realizar así la conmutación.
1.2 Bloque II: Procesamiento en el borde
En este bloque se realiza el algoritmo encargado de procesar los datos mediante un SOC FPGA.
Cabe destacar que para elegir una placa correctamente se debe realizar un análisis en profundidad
de las necesidades del proyecto como, por ejemplo, conocer si el sistema utilizará redes WiFi,
Zigbee o Bluetooth para la transmisión de datos. En nuestro caso para el procesamiento en el borde
se incluye comunicación Zigbee. Este modelo se aplica para la comunicación con el procesamiento
local. Para el almacenamiento de datos, es necesario, que la placa elegida disponga de una entrada
Peripheral Module (PMOD), para poder implementar el protocolo Zigbee. Inicialmente se pensó
en utilizar una Zyqnberry que incluye un Zynq 7010 y cuyo precio ronda los 135 dólares. Es más
económica y dispone de puertos Ethernet para la comunicación con el procesamiento en la nube. El
problema es que esta placa no dispone de entradas PMOD y sólo dispone de un procesador de un
único núcleo ARM-Cortex-A9. Se barajaron otras opciones como la Zynq-7020. Esta placa es la
hermana mayor de la Zynq 7010 ya que dispone, en este caso, de un procesador de doble núcleo y
de entradas Pmod.
Esta FPGA se caracteriza por disponer de un procesador de alto rendimiento, como es el ARM
Cortex-A9. Específicamente es un procesador de doble núcleo con una unidad de procesamiento de
hasta 866MHz Además es más económica que la anteriormente mencionada. En la se adjunta una
comparativa de los distintos SoC FPGA de la familia Zynq-7000.

Como vemos en la ¡Error! No se encuentra el origen de la referencia. el SoC Zynq 7020


pertenece al grupo de los SoC de coste optimizado. También se observa que todas las placas
poseen varios periféricos como por ejemplo 2 puertos serie Universal Asynchronous Receiver-
Transmitter (UART) o 2 interfaces serie periféricas Serial Peripheral Interface (SPI) la cual puede
operar a altas velocidades.
Finalmente, para el desarrollo de este proyecto se decidió utilizar la placa ZCU104 de la familia
Zynq Ultrascale +. Este modelo, posee un procesador real time. Con esta FPGA se posibilita la
recepción de datos del procesamiento local de varios paneles. El coste de placa es de 1800 €
aproximadamente.
Esta placa de desarrollo integra un dispositivo ZU7EV, que está equipado con un sistema de
procesamiento ARM Cortex A53. Además, integra un procesador Arm Cortex-R5 de doble núcleo
en tiempo real, que proporciona a los desarrolladores de aplicaciones un gran nivel de
multiprocesamiento. Por un lado, dispone de suficiente memoria RAM y por otro dispone de un
buen procesador.
A pesar de que los algoritmos se ejecuten en la parte de hardware, requeríamos de un procesador
potente para que acompañara al correcto funcionamiento de nuestro sistema. Además, permite
desarrollar sistemas basados en Linux.
Dispone de varios conectores que facilitan el acceso al sistema de procesamiento. Por otra parte,
dispone de entradas PMOD para la comunicación Zigbee. El módulo Zigbee escogido es el modelo
Pmod RF2. Con este modelo se puede conseguir una velocidad de transmisión de datos de 625
kbps. A continuación, en la Figura 8: Diseño hardware ZCU104Figura 8 se muestra el diseño
hardware de la placa seleccionada.

Figura 8: Diseño hardware ZCU104

Para transmitir los datos desde la placa nos hemos decantado por utilizar el protocolo Ethernet,
utilizando el puerto correspondiente de la FPGA para comunicarnos con nuestra base de datos.
Este protocolo se caracteriza por ser un método fiable y de gran velocidad.
1.1 Bloque III: Procesamiento en la nube
1.1.1 Protocolo Ethernet
En este bloque, los datos llegan a través del puerto ethernet del SoC FPGA. En un
principio se pensó utilizar comunicación de fibra óptica ya que se encuentra disponible
en los parques eólicos, aunque finalmente nos decantamos por utilizar comunicación
Ethernet. Este protocolo, a diferencia de la tecnología WLAN, suele ser menos vulnerable
a las interrupciones. También puede ofrecer un mayor grado de seguridad y control de la
red que la tecnología inalámbrica, ya que los dispositivos deben conectarse mediante un
cableado físico. Esto dificulta el acceso de extraños a los datos de la red. Por otra parte,
los retrasos en la transmisión de datos, es decir la latencia, disminuye cuando se utiliza
una red Ethernet.

Para crear una base de datos en la nube, se implementará un Servidor Web


Embebido (SWE) cuyo modelo a seguir será el TCP/IP. El modelo TCP/IP [15] consiste
en un protocolo para comunicaciones en redes que describe una serie de guías generales
de operación con el fin de permitir el intercambio de datos por parte de un equipo dentro
de una red. El modelo en sí describe una serie de capas: la capa de aplicación (HTTP para
servidores web), la capa de transporte, la capa de internet y la capa de acceso a red.
1.1.2 Servidor Web
A través del sistema operativo Linux, se integrará en el sistema empotrado el
servidor web lighttpd [16], el manejador de base de datos ligero SQLite [17] y la
biblioteca OpenSSL [18] para el cifrado de datos. lighttpd es un servidor web diseñado
para ser rápido, seguro, flexible, y fiel a los estándares. Está optimizado para entornos
donde la velocidad es muy importante, y por eso consume menos CPU y memoria RAM
que otros servidores.

OpenSSL es esencialmente un conjunto de bibliotecas para el cifrado de datos y


herramientas con las cuales es posible la implementación SSL. El código fuente de
OpenSSL se puede obtener del sitio oficial o de alguna distribución de Linux.

SQLite es un motor de bases de datos relacionales para sistemas de bajos recursos.


Lo que hace diferente a SQLite es que un solo proceso realiza lecturas y escrituras
directamente sobre los archivos que contiene la base de datos. Esto reduce el tiempo de
acceso a la base de datos debido a que no hay comunicación entre procesos.

Se creará una base de datos que contiene información que podemos considerar
confidencial que será accedida por el servidor HTTPS con sentencias SQL y serán
enviadas al cliente a través de funciones OpenSSL. De forma similar a OpenSSL, el
código de SQLite se obtiene, se compila y se copia al sistema de archivos del sistema
empotrado.

Un servidor HTTPS es una versión segura de un servidor HTTP, ya que


implementa un canal de comunicación basado en SSL entre el navegador del cliente y el
servidor HTTP.

La programación del servidor web se realizará en lenguaje C, que presenta una


alta eficiencia de código y es uno de los lenguajes de programación más populares para
la creación de software para sistemas. En él se puede programar un CGI que se ejecute en
el servidor, ya que el lenguaje C permite la lectura de datos de entrada, acceder a las
variables del entorno y escribir en la salida, al ser un lenguaje compilado posee la ventaja
de que los códigos escritos en C son más rápidos al ejecutarse.

1.1.3 Programa CGI


A través de una CGI [19] (Common Gataway Interface), una interfaz que
posibilita la transmisión de información entre un servidor web y un programa externo,
permitiendo que un cliente web ejecute una aplicación en el propio servidor. En nuestro
caso en específico, el programa CGI realizará una búsqueda en la base de datos con el fin
de localizar la información solicitada por el cliente, como puede ser el historial de fallos
en el sistema o la producción de potencia diaría del sistema. El programa CGI será capaz
de generar en tiempo real una página HTML a partir de la información recibida de la base
de datos, esta página será enviada al servidor web, para luego ser mostrada en el cliente
web. El navegador será capaz de acceder a un nivel bajo del hardware con una interfaz
gráfica fácil de manejar.

Para programar el CGI, es necesario junto al servidor web un compilador en C.


En nuestro caso, hemos decidido utilizar Visual Studio Code como compilador gratuito
que permite programar en lenguaje C. Este entorno de programación presenta la extensión
React Native, enfocada al desarrollo de aplicaciones para Android y iOS, permitiendo la
creación de interfaces de usuario enfocadas en el diseño de una aplicación móvil
visualmente nativa.

Figura 1. Aplicación software propuesta


1.1.4 Aplicación móvil
En cuanto a la aplicación software, esta estará dividida en tres bloques diferentes.
El primer bloque establecerá la comunicación entre el procesamiento en la nube con el
nivel de procesamiento en el borde y del almacenamiento de los datos de la red en la base
de datos. El segundo bloque permitirá visualizar los datos almacenados. El tercer bloque
permitirá realizar tareas de configuración como modificar el tiempo de muestreo,
interactuar de forma manual sobre el sistema de switching de los paneles solares o la
detección de posibles fallos en las distintas partes del sistema de producción [20-22]. En
la Figura 10 se muestra el esquema de la aplicación software.

Para la transmisión de la información de la base de datos a la aplicación móvil y


viceversa, se ha optado también por la herramienta SQLite, integrado en casi todos los
telefonos móviles y la mayoría de los ordenadores.

La aplicación en móvil presentará un menú principal por donde acceder al resto


de las funciones de la aplicación, entre las cuales se encontrarán: la lectura de la
producción en Watts-Hora de las distintas secciones del sistema de producción
fotovoltaico, una representación visual de todas las placas que estén conectadas y
desconectadas del sistema, un historial de fallos del sistema, una gráfica que muestra los
niveles de producción en diferentes peridos de tiempo y una pestaña de alarmas activas.

Para el acceso a la aplicación se requerirá de un usuario y una contraseña para los


técnicos del sistema de generación.

También podría gustarte