jueves, 12 de mayo de 2016

Compensador Estatico de Potencia DSP Simulink

Compensador Estático de Potencia Reactiva con DSP F28225

Este compensador estático es parte del proyecto de filtro activo. El proyecto consiste en un compensador estático de potencia reactiva utilizando el DSP TMS28335 de Texas Instrument y el desarrollo del software en PSIM y Matlab Simulink.

Pasos.
1.       Desarrollar el modelo matemático del sistema eléctrico (tensiones, corrientes y potencias)
2.       Desarrollar la simulación al inicio se hizo en Simulink Matlab utilizando el generador de código para el DSP, pero luego se selección Psim que tiene una herramienta llamada “DSP oscilloscope” la cual se utilizó para el desarrollo de la depuración en un entorno experimental además el Psim es bastante rápido para generar el código solo hay que utilizar el Code Composer Studio para descargar el programa en el DSP en mi caso utilice XDS100v2
3.       Una vez que ya se tiene la simulación terminada con los resultados esperados procedemos al diseño de los acondicionadores de señal para tensiones y corrientes

Tarjeta DSP Mini28335 con entradas analógicas y salidas PWM

Por ejemplo: Tenemos los sensores de corriente HBC06LSP que tienen las siguientes características:


Tensión de alimentación de 5VDC
Tensión de salida: de 0,5VDC a 4.5VDC
Constante de conversión: 2Voltios/6amp=0.33Votios/amp


Tarjeta con sensores de corriente.

Para los sensores de tensión se tiene HBV5-25A

Tensión de alimentación:  ±15VDC
Corriente de Entrada: -0.005 a 0.005 Amp
Corriente de Salida: -0.025 a 0.025 Amp
Resistencia en la salida: 150ohms
Tensión de salida con resistencia de 150ohms: -3.75 a 3.75VDC
Resistencia de entrada de 68K a 5W
Tensión de entrada con resistencia de 68K: -340 a 340Voltios DC


Tarjeta con sensores de Tensión

Estos parámetros son importantes para el diseño del acondicionamiento de señal y las constantes del convertidor ADC.

Los OPAM seleccionados para el acondicionamiento de señal son los MCP6022 se utilizan porque estos pueden funcionar con 3.3Voltios con lo que las entradas digitales no estarán expuestas a tensiones superiores a 3.3Voltios. También se puede utilizar LM358 pero tienen la tensión de salida  se satura en (3.3-1) 2.3 voltios cuando están alimentados con 3.3 voltios

El cálculo de constantes PI se hizo mediante prueba y error.

Sobre la etapa de potencia esta se ha realizado con MOSFET IRFP460 y el driver IR2013
Deben tener protección contra sobretensión debido a que cuando el convertidor se conecta a la red la tensión supera el valor de referencia lo que puede dañar a los transistores MOSFET

En el siguiente link encontraran los archivos de la simulación en PSIM 9.1, Simulink -Matlab 2015.



Espero sus comentarios.






martes, 3 de mayo de 2016

Comunicación SPI entre PIC32 y DSP F28335

Comunicación SPI con PIC32 y DSP F28335


En algunas aplicaciones a veces es necesario conectar dispositivos externos a los DSP con microcontroladores una de las formas de conseguir esto es por medio de comunicacion SPI, PSIM tiene bloques para desarrollar facilmente la comunicacion SPI.

En este caso lo que haremos utilizar el convertidor ADC del PIC32 y enviar los  valores de la conversion al DSP F28335.

Esquema de PIC32




Conexiones en F28335 (mini28335)




Utilizando DSP Oscilloscope de PSIM se tienen los siguientes resultados:




Los archivos de PSIM y MPLABX lo pueden descargar:


Saludos
Nestor

domingo, 1 de mayo de 2016

Código C en simulink para DSPIC.

En este proyecto les presento una aplicación en simulink utilizando código personalizado con lo cual pueden utilizar mas de 8 salidas o entradas en simulink

Descargar 

http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=SW007023

Tambien instalar las librerias para XC16 en el directorio de instalacion.

PIC24/dsPIC Peripheral Libraries v2.00 - Windows


Esquema del conexiones




Modelo en Simulink solo con bloques.


Añadir los bloques indicados en la siguiente figura:

Modelo con solo bloques


Configuracion del DSPIC

Fcy=29.48Mhz
FRCPLL
Entrada analogica: AN1 (RB1)
Salida Digital: RE0









Si tienen pickit 3 pueden descargar directamente el codigo al DSPIC para esto activar "Flash Chip After compilation"



Después de configurar los bloques generar el código "Ctrl+B".


Resultados de compilacion de Programa simulink

Como se muestra en la imagen anterior utilizando solo bloques de simulink indica que se han utilizado 2 terminales del DSPIC30F4011.


Modelo en Simulink con codigo de usuario


Modelo con Código de usuario


Se tiene los bloques de con codigo de usuario al generar el codigo indica 0 terminales utilizados.


El código ha sido añadido a "Custom Code ->Include list of aditional -> Source Files"


En el archivo del codigo hay funciones para la configuracion del ADC y de PORTE0 los cuales solo deben ser ejecutados al inicio.


Los bloques del read_adc y write_dio deberan ser asi.





El archivo de los modelos en simulink y el código fuente lo pueden descargar del siguiente link.



Saludos
Nestor



sábado, 30 de abril de 2016

Conversor MODBUS TCP a RTU con OpenWrt



Les presento un programa para pruebas de comunicación entre MODBUS TCP a MOSBUS RTU. Lo que hace el programa es funcionar como esclavo MODBUS TCP y como maestro MODBUS RTU asi es como realiza la conversion de MODBUS TCP a  MODBUS RTU, para lograr esto se ha utilizado un router TPlink TL-WR1043ND Ver 1.0 con OpenWrt Chaos Calmer 15.05 y la libreria de libmodbus 3.02.



Router conectado dispositvo esclavo por RS485 Modbus

El procedimiento para instalar el OpenWrt en el router lo pueden encontrar en internet. La compilación y depuración del programa lo realice en Linux UBUNTU 14.04 con ECLIPSE, la información la pueden encontrar en el siguiente link:

https://downloads.openwrt.org/docs/eclipse.pdf

Para la prueba del programa utilice el rectificador controlado (PIC18F2550) con comunicación MODBUS RTU y como maestro la aplicación de Android modbus-DROID.

http://www.bencatlin.com/sofware-projects/modbus-droid/

El  http://www.jeperez.com/monitor-solar-instalacion-codigo-fuente/ esta una aplicación con la libreria libmodbus.



  • Se requiere las siguientes librerias instaladas en el router:


libmodbus
libgcc
libstdcpp
gdbserver

opkg update
opkg install libmodbus
opkg install libgcc
opkg install libstdcpp
opkg install gdbserver "Solo es necesario para depuración"
  • Para la comunicacion RS485 utilizo un conversor USB-SERIAL RS485  para lo cual instalo la siguiente libreria en el router.

opkg install kmod-usb-serial-pl2303

Nuevo puerto de alimentación disco duro HDD SATA Cables para venta / alta calidad USB 2.0 a RS-485 RS-422 adaptador convertidor Serial Cable



Deben tener el cross-compiler en UBUNTU para poder compilar e instalar la libreria libmodbus y asi poder compilar el archivo fuente del conversor TCP-RTU. pueden seguir los pasos del siguiente link

http://telecnatron.com/articles/Cross-Compiling-For-OpenWRT-On-Linux/

El archivo compilado lo envian al router:

scp modbus_converter root@192.168.43.5:/root

En mi caso lo envio al root.

En algunos casos se debe configurar el archivo como ejecutable con la siguiente instrucción.

chmod 777 modbus_converter

y ejecutamos el archivo

./modbus_converter

No olvidar de ejecutar el archivo antes de conectar el modbus droid.


En Modbus droid se configura el IP del router, el puerto de entrada y el registro del dispositivo
esclavo.

IP:depende del IP que tenga su router
port:1502

Point Type: Holding Register

Address:0 (corresponde al registro 40001)

Length: 1(solo se utiliza el registro 40001)





El siguiente es el link donde esta el programa fuente y compilado

https://www.dropbox.com/s/mh5ts0wnxtombix/Modbusconverter.zip?dl=0


Espero que les sirva para hacer sus pruebas con MODBUS.

Saludos
Nestor