Política de software.

El problema que tienes puede ser el problema de muchos. Las soluciones que compartas pueden ser la respuesta que alguien espera encontrar.


Nuestras soluciones pueden ser usadas sin ninguna restricción, porque los autores las donan explícitamente para toda la humanidad. Sois libres de usarlas, estudiarlas, modificarlas y distribuirlas sin compromiso alguno con los autores.

Nos comprometemos con la tierra, con el hombre y con la libertad de conocimientos. Esa es nuestro contrato y no lleva letra pequeña.

Nos vemos siempre.

Los autores (iniciales).

Herramienta gratis para cálculos preliminares en instalaciones de paneles solares.

Uno de los aspectos importantes para determinar la conveniencia del uso de los equipos solares, es el conocimiento de las características de la radiación solar en el lugar, tanto su variación diaria como horaria.Más allá de eso, la necesidad mundial de producir energía limpia ha motivado la implantación de sistemas completamente solares o híbridos incluso en lugares con electricidad distribuida por redes comerciales.En este artículo vamos a analizar completamente los datos para calcular e implementar una instalación eléctrica independiente de la red mediante paneles solares fotovoltaicos. Y tal como se muestra en las imágenes les brindo una sencilla herramienta en Excel para realizar los cálculos preliminares.Los elementos que conforman una instalación fotovoltaica aislada de la red son:1.- Sistema de generación.2.- Sistema de almacenamiento.3.- Sistema de regulación.4.- Sistema de conversión corriente continua-alterna.5.- Sistema de protección para personas y equipos.6.-. Sistema de cableado.Sistema de generación: Incluye los módulos y paneles solares fotovoltaicos, que a su vez están formados por celdas solares fotovoltaicas y una estructura de sustentación que mantiene el conjunto unido.Una celda fotovoltaica es el elemento más pequeño, de material semiconductor, con unión P-N y con capacidad de producir electricidad. Se combinan en serie o paralelo para lograr tanto el voltaje como la potencia deseadas. Los materiales generalmente usados son Silicio cristalino y Arseniuro de galio.Cuando se conectan varias de estas celdas y se colocan en un marco apropiado, generalmente plano, con algún tipo de protección contra las inclemencias del clima, se forma un panel solar fotovoltaico. Cuando se acoplan varios de estos paneles a soportes y se agrega un regulador de voltaje, se crea un módulo solar fotovoltaico. Estos módulos son vendidos completos, pero su precio se encarece.Sistema de almacenamiento: Batería o bancos de baterías. Se calcula en base a la necesidad de acumulación de energía, los días que pretendemos tener de reserva para casos de lluvias, etc. Además, el voltaje esperado del sistema y la capacidad de las baterías para descargarse sin perder sus cualidades.Sistema de regulación: El regulador es el encargado de la carga y descarga de las baterías que permiten el funcionamiento del sistema energético cuando no se está obteniendo la energía demandada. Existen varios tipos de reguladores, pero los más usados son dos:1.- PWM (pulse width modulation) que significa “modulación de anchura de pulso”. El regulador cierra un circuito conectando los paneles solares y la batería, forzando a los paneles a trabajar a la corriente de la batería. Cuanto más se acerque la tensión máxima del módulo a la tensión media de carga de batería, más eficiente será el sistema. La eficiencia está sobre el 80%.2.- MPPT (Maximum Power Point Tracking): cuentan con un seguidor electrónico del punto de máxima tensión y llevan un doble circuito, donde el módulo se sincroniza con el inversor a tensión e intensidad máximas, por medio de un convertidor CC/CC se ajustan a la etapa de carga de la batería. Tienen una eficiencia muy alta (95-98%)Más adelante explicamos cómo se elige el regulador.Sistema de conversión corriente continua-alterna (CC-AC): Inversor AC/DC, es exactamente igual al circuito embebido dentro de una UPS para computadora. Convierte la corriente directa de la batería en corriente alterna para usar por los equipos.Sistema de protección para personas y equipos: Fusibles, magnetos, diferenciales, etc.Sistema de cableado: Interconexión de sistemas y distribución a consumos.Luego de revisar las partes que conforman el sistema fotovoltaico podemos continuar a calcular nuestro sistema. El método de trabajo será:1.- Identificación de la demanda y voltaje de trabajo.2.- Identificación de las capacidades del lugar para obtener energía solar.3.- Cálculos de características optimas de los paneles, cantidades, baterías etc.4.- Adquisición de los materiales.5.- Instalación y puesta en marcha.1.- Identificación de la demanda, voltaje de trabajo etc.En una vivienda o cualquier tipo de edificación los consumos eléctricos pueden dividirse en 2 apartados.Iluminación: La iluminación puede representar entre el 15 y el 20 % de la demanda de electricidad. Los ahorros energéticos pueden ser muy importantes, por lo que se recomienda, que, en toda instalación solar, sean utilizadas lámparas de muy bajo consumo y muy buena conversión.Aparatos: Son todo tipo de electrónicos. Vale analizar que hay algunos elementos que no tienen por qué funcionar con electricidad, y otros que, necesariamente son eléctricos.El cálculo de la necesidad se realiza en una tabla como la que se muestra:

Luego de conocer la demanda media diaria y mensual es necesario introducir una corrección referida a la eficiencia de la instalación, para ello se tienen en cuenta las siguientes variables:

– F1: Factor de aprovechamiento del panel solar entre 18 y 25% y pérdidas.- F2: Pérdidas en el regulador y la trasmisión desde los paneles a él.- F3: Pérdidas en la carga de la batería.- F4: Pérdidas en la entrega de la batería al inversor.- F5: (Opcional) Pérdidas en la entrega del regulador al inversor.- F6: (Opcional) Pérdidas en la entrega y trasmisión de CD desde el regulador.- F7: Pérdidas en la entrega y trasmisión desde la batería hasta el cicuito CD.- F8: Pérdidas en la entrega del inversor y trasmisión de la red CA.Esto nos permite, a groso modo, calcular la energía real a generar para cumplir con la demanda. Si existe poca necesidad de exactitud o se trata de sistemas pequeños se puede asumir que las pérdidas rondan el 70 – 80% de la energía generada. Si se trata de sistemas más complejos estas pérdidas se pueden analizar con mayor exactitud.Otro de los parámetros a elegir en este apartado primero es el voltaje a trabajar, siempre hay que tener en cuenta que a medida que se aumenta el voltaje disminuyen las perdidas, se pudiera trabajar directamente con corriente directa DC, pero esto genera grandes pérdidas, dificultades de cableado y falta de compatibilidad con algunos electrodomésticos. Lo recomendado es utilizar el voltaje de distribución de la red, porque, aunque estemos en un lugar remoto seguramente los aparatos disponibles a precios correctos estarán en esos valores de voltaje y frecuencia.Resumiendo, al final de este paso tenemos la necesidad de energía Kw media por día y por mes, además decidimos el voltaje a usar.2.- Identificación de las capacidades del lugar para obtener energía solar.Las capacidades de cada lugar para generar energía eléctrica son diferentes, ya sea por la latitud o por factores climáticos que hacen al cielo nublado, etc. Aunque la energía entregada por el sol a cada m2 de la superficie de la tierra es teóricamente calculable, las diferencias de clima afectan mucho la recolección de dicha energía. De ese modo lo mejor para aproximarnos a este dato es apoyarnos en mediciones históricas realizadas por periodos. Estos datos existen y están disponibles para casi todos los lugares del planeta.Una de las bases de datos más completas, aunque no 100% exacta es la de la NASA (NREL), otras pueden ser PVGIS. Satel-light, etc.El dato a encontrar en estas bases de datos se relaciona a la latitud y longitud geográfica y mide la cantidad de radiación horizontal recibida en una superficie de 1 m2. A partir de ellos se pueden calcular las expectativas de energía a obtener por m2 de panel instalado y se calcula el mejor ángulo de inclinación, como se muestra en la siguiente tabla:3.- Cálculos de características optimas de los paneles, cantidades, baterías etc.Como conocemos la necesidad promedio en Kw por día, podemos decidir la cantidad de paneles o módulos a instalar con la fórmula:Nro de paneles = Necesidad (W) / HSP*180*rendimientoEl próximo paso es calcular la cantidad, tipo etc. de las baterías de acumulación. Para ello es necesario decidir la autonomía deseada del sistema, generalmente y en dependencia de las condiciones se trabaja con autonomías desde 3 hasta 6 días.Capacidad de la batería instalada = (energía necesaria * días de autonomía) / (Voltaje * profundidad de descarga)El inversor se comprará en dependencia de la necesidad de consumo como se explica en la siguiente tabla:La única excepción a la necesidad de un regulador es cuando los módulos producen mucha menos energía que la carga total de la batería. Si un módulo fotovoltaico produce 1.5% de los amperios de la batería o menos, entonces no se necesita regulador de carga.Necesitamos un regulador que sea capaz de regular la máxima intensidad que pueda proceder de los paneles fotovoltaicos de la instalación. Esta intensidad la sacaremos de la intensidad de cortocircuito de los paneles (la máxima que puede dar cada panel). Si no tenemos el dato de la intensidad de cortocircuito del panel podríamos hacerlo sumando la potencia de todos los paneles de la instalación y dividirla entre la tensión de trabajo.Este artículo muestra de forma simplificada los cálculos necesarios para una instalación de energía solar completamente independiente de la red de distribución.En próximas entregas analizaremos los costos y la forma de instalación de esta instalación.Por ahora les dejo el enlace para descargar el archivo Excel compactado:

https://github.com/greydelpf/permacultura/blob/master/solar.zip

Herramienta gratis para sistemas de permacultura. Aguas.

El agua sigue siendo motivo de preocupación en cualquier pequeño sistema de permacultura. Aunque se han implementado campañas de concientización, son escasas las herramientas diseñadas para estimar las necesidades del recurso en nuestras casas y sistemas.

En este post muestro como crear (y ofrezco mi versión) una pequeña herramienta, en Microsoft Excel, algo al alcance de todos, para estimar nuestras necesidades de agua diarias y las posibilidades de la colección de aguas de lluvia como fuente alternativa.

Ejemplo de hoja de cálculo para estimar las necesidades de agua en la casa:Para el cálculo de las posibilidades en la recolección de aguas de lluvia es necesario tener en cuenta el área de recolección y las precipitaciones medias del lugar.Toda el agua lluvia no es factible de ser aprovechada por las plantas, para conocer las necesidades de riego se puede aplicar una hoja de cálculo al caudal aprovechable por las plantas.Otros elementos del sistema también necesitan agua, pero salvo casos especiales los principales consumidores son los seres vivos, por eso se deben analizar las plantas y animales de forma específica a las especies, razas, número y condiciones.Luego de conocer las necesidades de las plantas y las posibilidades de la lluvia en el lugar es posible calcular las necesidades de riego:Para el cálculo de las necesidades de animales se puede emplear la tabla:Por último, esta herramienta incluye un conversor fácil para trabajar diferentes unidades:La herramienta puede ser descargada de forma gratuita desde el siguiente enlace .: descargar soft4all_aguas.zip :.

Por favor dejenos saber en los comentarios sus opiniones y las posibles ampliaciones al tema.

Algoritmo genético parte 3. Operadores genéticos.



El algoritmo genético (simple) funciona basado en el siguiente diagrama:

Un ejemplo de la codificación del problema se ha mostrado en el artículo anterior. En este post trataré sobre las diferentes partes dentro del algoritmo explicando todo con un acercamiento simple.

Antes de entrar de lleno al asunto, es válida una aclaración sobre la respuesta de un algoritmo genético. A diferencia de soluciones estándar que muestran un valor único de respuesta muchas veces los algoritmos genéticos tratan problemas donde no se conoce la respuesta y se espera obtenerla desde este procedimiento.

Cuando la población converge muy rápidamente es casi seguro que solo se ha obtenido un máximo local de la función y no un máximo global. Para entender esta afirmación es necesario mirar una representación gráfica simple:

Población inicial (PI).

La población inicial es un conjunto de individuos a partir de los cuales comenzará todo el proceso. Es la fuente genética primaria de las siguientes poblaciones y tiene dos características muy importantes, el tamaño y la forma de elegir los individuos.

El tamaño de la PI generalmente se corresponde con el tamaño que mantendrá toda la población durante el proceso, no es así cuando se implementan algoritmos más complejos, pero seguimos investigando.

Muchos han especulado respecto al tamaño de la población dado que aumentar la cantidad de individuos aumenta exponencialmente la cantidad de operaciones a realizar, para los casos parecidos al ejemplo del post anterior que se limitan a encontrar permutaciones de ‘n’ posiciones se estima que es suficiente un tamaño de población entre n y 2n. En mi experiencia los mejores resultados los obtengo con n+1 individuos.

El otro aspecto de la población inicial muy debatido es el modo de generar los individuos. Hay dos formas de hacerlo, de modo totalmente aleatorio o mediante un procedimiento de otro tipo. Normalmente cuando los individuos de la población inicial son generados por métodos diferentes al aleatorio el trabajo dura menos tiempo, en menos ciclos se encuentra un máximo, pero también tiene el inconveniente de que la calidad de estos máximos no siempre es la deseada porque se exploran mucho menos posibilidades.

Como en la naturaleza la calidad y variabilidad del material genético de la población inicial será en gran parte responsable del futuro de la población y por consiguiente de la respuesta obtenida. La introducción de individuos cercanos a la solución casi siempre termina empeorando la calidad de la respuesta.

Cruzamiento:

El cruzamiento es la forma de obtener uno o varios “hijos” a partir de la población existente. Siguiendo el modelo natural de sexos se trata de cruzar dos padres para obtener uno o varios hijos, posiblemente se puede incluir el modelo asexual obteniendo hijos a partir de un padre, pero solo se usa en contadas ocasiones porque es un comportamiento muy aleatorio. La obtención de un hijo a partir de tres o más padres también es posible, pero en la naturaleza no ocurre y en los AG conlleva un acercamiento prematuro casi siempre a un máximo local.

Para crear la rutina de cruzamiento hay varias consideraciones iniciales:

a) Número de hijos que se crean a partir de uno, dos o más padres. Puede variar en distintas implementaciones, pero hasta ahora a mí me funciona bien crear dos hijos a partir de dos padres.

b) Forma de selección de los padres dentro de la población. Si nos acercamos al modelo natural deberíamos cruzar el mejor individuo con otros de menor valía, esto se llama un algoritmo elitista, y se puede ver en algunas manadas de animales como normal. Para mí el mejor método ha sido seleccionar aleatoriamente individuos de la población actual para cruzarlos.

c) Método de cruzamiento. También se han estudiado varios, en la naturaleza se eligen puntos aleatorios y se transmiten algunos caracteres ligados al sexo. Para AGs de pocos genes (hasta 20) lo que mejor me ha funcionado es seleccionar un punto aleatorio para intercambiar material genético. En AGs de más genes he optado por dos puntos de cruce, luego de eso aumentar el número de puntos de cruce no me ha dado mejores resultados.

¿Cómo se realiza el cruzamiento desde uno o varios puntos?

Luego de seleccionar el punto de cruce (=7) se crean 4 secciones de genes A1 y A2 a partir del padre A y B1, B2 a partir del padre B. El hijo 1 hereda la porción A1 del padre A y la porción B2 del padre 2.

En el caso de permutaciones hay una gran diferencia, puesto que una condición para que un individuo sea válido es que no se repita un gen será necesario cambiar el proceder ya que será bien difícil encontrar individuos válidos.

Hay varias formas de hacerlo y necesita un estudio detallado. Por ahora solo diré como he obtenido mejores resultados. Primero selecciono el punto de cruce, luego para crear el hijo 1 coloco las partes A1 y B2, elimino de B2 todos los repetidos en A1, trato de colocarlos desde B1 y compruebo si se repiten en B2, elimino los repetidos y completo aleatoriamente. Suena complicado mejor vean la siguiente imagen. Los cuadros rojos representan los genes invalidantes y los amarillos representan genes que no se han heredado de ningún padre y se corresponden con el siguiente operador, la mutación.

Mutación:

Durante una primera parte del proceso el cruce es el generador de soluciones, pero a medida que convergen los genotipos y los individuos se parecen más entre ellos, la mutación comienza a jugar un papel más importante.

La dificultad con el tema de mutaciones estiba que un índice de mutación alto invalida el cruce y se convierte en una búsqueda aleatoria de una combinación.

Los índices de mutación entonces son pequeños. En mi experiencia el valor máximo debe ser 1/(tamaño de población + 1), pero se ha estudiado mucho el tema y una formula bastante recomendada es:

Introducir una mutación es cambiar aleatoriamente un gen dentro de un individuo, la frecuencia con que esto ocurre es el índice de mutación.

En el caso de las permutaciones se introduce una aleatoriedad en el cruzamiento, pero incluso con ella cuando la población converge y se acaba la diversidad genética la mutación es un elemento a tener en cuenta. Para generar una mutación simplemente se seleccionan dos posiciones aleatoriamente y se intercambian los valores.

Selección:

La selección es aquel proceso donde se decide cuales individuos continúan al siguiente ciclo. Es posible generar 100 y seleccionar 15, es posible que los padres sean elegibles, es posible seleccionar una parte al azar.

En mi experiencia es mejor un comportamiento de competencia donde los padres compiten con los hijos por permanecer en la población. La mitad de la población la selecciono por el valor de individuo y la otra mitad aleatoria del resto, para evitar una rápida convergencia hacia máximos locales.

En próximos post se tratarán temas más complejos sobre el uso y los resultados de AGs

Algoritmos genéticos parte 2. Codificación entera.

Los algoritmos genéticos (AG) son una opción a considerar en todas aquellas aplicaciones dedicadas a la resolución de problemas complejos de tipo no lineal (NLP).
Se consideran un método robusto para encontrar soluciones en ambientes con demasiados elementos, variables y restricciones.

A continuación, se desarrolla un ejemplo simple de algoritmos genéticos aplicados:

En un supermercado se busca maximizar los resultados del negocio mejorando el posicionado de mercancías en las góndolas de exposición.
El primer análisis a nivel de producto asigna un valor a cada referencia dependiendo de los intereses y condiciones de la empresa.

Para ello se han definido las variables de interés que se pueden obtener para cada mercancía, se ha tomado su valor de los registros de la empresa y en dependencia de las metas e intereses de la dirección se ha calculado un valor que representa la factibilidad e importancia de cada producto en la situación planteada.

De este modo se ha podido analizar cuáles serán los productos priorizados a emplear en una góndola especifica asumiendo que existen 15 posiciones y se han seleccionado 15 productos.

Ahora corresponde analizar la posición de cada producto según su relación con el resto puesto que productos relacionados se colocan más cerca o más lejos, en línea o encima, y las características de algunos hacen que mejoren los resultados de otros. Un ejemplo de matriz de relaciones (sin valores) se expone en la siguiente imagen:

 A partir de los datos expuestos podemos conformar un algoritmo genérico para encontrar la mejor permutación de posiciones que se corresponde al o los individuos que maximizan la función de optimización de la góndola.

Para ello se define como un individuo una matriz de 3×5 que se corresponde con una distribución de individuos en los huecos de la estantería. En ese individuo cada gen estará ocupado por una mercancía de la forma G (1,1) = 1, G (1,2) = 7, etc.

Partiendo de una población inicial de ‘n’ individuos se les aplicarán operadores genéticos de cruzamiento, mutación y selección para ir de a poco mejorando las características de la población hasta obtener la mejor respuesta posible o alcanzar una condición de parada, digamos que las condiciones de parada sean:

. Parar si luego de 100 ciclos no se aumenta el valor máximo dentro de la población.

. Parar si el proceso tarda más de 10 min.

Lo que hemos hecho en este artículo se llama codificar el problema, es necesario convertir los datos y la situación en un escenario donde puedan trabajar los operadores genéticos principales. Luego será necesario definir nuestro entorno de algoritmo y para ello existen muchas consideraciones teóricas y prácticas.

Existen herramientas complejas que nos permiten calcular este tipo de situaciones, pero lo imprescindible en la solución son:

1.- La fórmula del valor de un producto.

2.- La fórmula del valor de una distribución específica en la góndola.

Y esos son lugares donde se deposita la inteligencia, nuestro algoritmo calculará, pero el valor real de la solución dependerá de la eficacia de ambas formulaciones. ¿Podemos llegar a estas fórmulas por medio de algoritmos genéticos? Continuará

Algoritmos genéticos. Parte 1. Cuando son útiles.

Un algoritmo genético es solo una variante para solucionar problemas combinatorios cuando el análisis de cada posibilidad haría demasiado largo el proceso.

Normalmente es empleado para maximizar o minimizar funciones dependientes de muchas variables y siempre será necesario tener una valoración de cada combinación generada.

Tratemos con un ejemplo práctico: En una tienda con vitrina a la calle el dueño tiene espacio para colocar 5 productos. En la tienda existen 50 productos y el tendero se enfrenta a la disyuntiva de cuáles productos elegir para mejorar su negocio.
Cada producto tiene un precio y un valor de popularidad. De este modo colocar los productos más populares atrae más clientela pero no ayuda a los demás productos que pueden dejar más margen de ganancias.

La pregunta es ¿Cuáles productos debe colocar en la vitrina?

Un cálculo simple nos indica que para hacer combinaciones de cinco productos diferentes a partir de 50 productos posibles existen más de dos millones de  posibilidades.

De alguna manera el tendero se las ha ingeniado para calcular un valor dependiente del precio, las existencias en inventario y la demanda que le permite evaluar numéricamente cada combinación y a hecho la función Fc que alcanza su valor máximo al tener la combinación óptima.
Denotemos P1, P2, P3, P4 y P5 a las posiciones en la vitrina y los artículos a mostrar se llamarán A1..A50.

Mediante un algoritmo de fuerza bruta el tendero puede encontrar y evaluar todas las posibles combinaciones anidando un total de 5 ciclos repetitivos que revisan los posibles artículos. Genera sus dos millones de combinaciones y evalúa cada una de ellas en la función Fc comparando el resultado hasta encontrar la óptima.
Mediante un algoritmo genético el tendero introduce algunas de las combinaciones que crea mejores y comienza a calcular hasta llegar al máximo o muy cerca del mismo.

La primera opción siempre nos dará un resultado exacto, porque hemos explorado todas las posibilidades, pero a veces explorar todas las posibilidades es computacionalmente imposible ya que se involucran factoriales y calcular un resultado para 50 posiciones y 1000 productos puede tardar años. En ese caso debemos recurrir al algoritmo genético, que nos irá calculando combinaciones cada vez mejores hasta que decidamos parar o se «trabe» el cálculo.

Ya sabemos cuándo usar algoritmos genéticos y a que tipos de problema nos enfrentamos. Ahora en el siguiente artículo de esta serie veremos cómo funciona y en qué se basa un algoritmo genético.