Autor Tema: Proyecto: Diseño optimizado de una etapa Step Up  (Leído 67255 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #150 en: 04 de Abril de 2017, 10:35:43 »
Creo que se puede probar la solución 2, ajustar para un voltaje alto, y ver como se comporta para voltajes menores.

Supongo por lo que dices que los convertidores elevadores tienen este problema en general, he visto algunos convertidores de este tipo, incluso algunos integrados de potencia en el mismo datasheet, que usan un simple PI, será que lo calculan para una salida fija.

http://cds.linear.com/docs/en/datasheet/10701fe.pdf

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #151 en: 04 de Abril de 2017, 11:24:19 »
Si, ya lo he visto antes. Hay varias redes de compensación posibles.

La del tipo PI es la primera que intentamos. Este documento de TI está muy bien y utiliza la misma:
TI. Understanding and Applying Current-Mode Control Theory
Y este también:
Design and Analysis of Current Mode Control of Boost Converter


Pero me pareció que no era suficientemente estable, o que se podía mejorar con derivativo.
Este otro documento de TI utiliza una compensación PID (la llaman lag compensator pero es lo mismo que un PID, un polo y un cero, un integral y un derivativo):
TI. AN-1994 Modeling and Design of Current Mode Control Boost Converters
Al probar esta otra compensación he visto que este tipo de circuito Boost no responde bien al derivativo puro. Tampoco es la mejor solución.


En esta tesis (página 36 o 45 del pdf) aparece otra compensación más completa, con dos polos y un cero:
MODELING AND DESIGN OF A CURRENT MODE CONTROL BOOST CONVERTER


Recuerdo haber leído otros documentos con compensaciones todavía más complejas.


Estoy en ello. A ver si damos con la correcta.

Un saludo.
« Última modificación: 04 de Abril de 2017, 11:36:16 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #152 en: 04 de Abril de 2017, 18:24:31 »
ANÁLISIS DE LA ETAPA:
Basado en la documentación de Texas Instruments: Understanding and Applying Current-Mode Control Theory


Nomenclatura:

Vin = Tensión de entrada
Iin = Corriente de entrada
Vo = Tensión de salida
Io = Corriente de salida
D  = Ciclo de trabajo
Vc = Tensión de control = pin 1 (COMP)
d = Símbolo diferencial. Pequeña variación de una magnitud
R  = Vo / Io = Resistencia equivalente de salida
Ro = dVo / dIo = Impedancia de salida o resistencia dinámica
   = Diferencia de la tensión de salida dividido por la diferencia de la corriente de salida.
   = R para cargas resistivas puras
Co = Condensador de salida
Rc = Resistencia equivalente en serie (ESR) del condensador de salida
L  = Inductancia boost
Rs = Resistencia de sensado de corriente
Ri = Rs * Gs = Resistencia de sensado de corriente por la ganancia de su amplificador
Vsl = Rampa de compensación para evitar oscilaciones subarmónicas [Voltio/ciclo]
fn = Frecuencia de conmutación
wn = pi * fn = Frecuencia angular de conmutación
T  = 1 / fn = Tiempo de ciclo de conmutación
Q  = 0.637
Km = Vin / Vramp = Modulator Gain
Vramp = diferencia de tensión de control que cambia el ciclo de trabajo de 0% a 100%

Polos y ceros en frecuencia angular:
wr = Cero del plano positivo debido a la bobina conmutada
wp = Polo por la impedancia de salida (condensador y carga)
wz = Cero del condensador de salida (debido a la resistencia ESR del condensador de salida)


Rampa de compensación:

Vsl = (Vo - Vin) * Rs * T / L   [V/ciclo]


Ecuaciones en pequeña señal:

D = (Vo - Vin) / Vo
(1-D) = Vin / Vo

Vsl = (Vo - Vin)*Rs*T/L

Vo/Vc = Ro*(1-D)/(Rs*Kd) * (1 - s/wr)*(1 + s/wz)/( (1 + s/wp)*(1 + s/(wn*Q) + s^2/wn^2) )

K  = 0.5*D*(1-D)* Rs * T / L
Km = 1/((0.5-D)*Rs*T/L + Vsl/Vo)
Kd = 1 + Ro/R + (Ro*(1-D)^2/Rs)*(1/Km + K/(1-D))

wr = R*(1-D)^2/L
wz = 1/(Co*Rc)
wp = Kd/(Co*Ro)


Ejemplo de aplicación a la etapa:
Vin = 11V  (teniendo en cuenta la caída de tensión en fusible, mosfet, Rsense, etc)
Vo = 21     (teniendo en cuenta la caída de tensión en el diodo y pérdidas de potencia)
Io =   3   A
fn =   40000   Hz
Co =   0,003   F
Rc =   0,01   Ohm
L =   0,000070   H
Rs =   0,028   Ohm
      
D =   0,476   
T =   0,000025   s
R =   7,000   Ohm
Ro =   7,000   Ohm
      
Vsl =   0,3   V/ciclo
K =   1,247E-03   V/s
Km =   6,885E+01   
Kd   3,160E+00

wr =   2,744E+04   rad/s
fr =   4,367E+03   Hz
wz =   3,333E+04   rad/s
fz =   5,305E+03   Hz
wp =   1,505E+02   rad/s
fp =   2,395E+01   Hz
« Última modificación: 06 de Abril de 2017, 12:26:06 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #153 en: 04 de Abril de 2017, 18:26:40 »
Compensador:





Polo 1:  w = 0
Polo 2: w = (C2+C3) / (R3 * C2 * C3)
Polo 3: w = 1 / (C1 * R1)

Cero 1: w = 1 / (C3 * R3)
Cero 2: w = 1 / (C1 *(R1 + R2))


Un saludo.
« Última modificación: 04 de Abril de 2017, 18:31:16 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #154 en: 04 de Abril de 2017, 18:50:52 »
Un ejemplo del compensador:

R1=   1   kOhm
R2=   10   kOhm
R3=   100   kOhm
C1=   33   nF
C2=   0,33   nF
C3=   4,7   nF

Pole 1 =   0,000   kHz
Zero 1 =   0,339   kHz
Zero 2 =   0,438   kHz
Pole 2 =   5,162   kHz
Pole 3 =   4,823   kHz



Con este compensador se puede crear una curva a medida mucho más precisa que con el primero, que sólo utilizaba 4 componentes.

Un saludo.

« Última modificación: 04 de Abril de 2017, 18:58:38 por Picuino »

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #155 en: 05 de Abril de 2017, 08:49:55 »
Muchas gracias Picuino!!!

No lo he probado aun, pero quisiera saber como has obtenido los valores de los componentes, imagino que fijas primero una resistencia, por ejemplo R1 = 1k, y luego despejas de aquí:

Polo 3: w = 1 / (C1 * R1) --> C1 = 1 / (w * R1)

siendo w = wp = 1,505E+02   rad/s

al igual con R3, se fija a 100K, y se calcula C3 = 1 / (w * R3)

siendo w = wz = 3,333E+04   rad/s

Pero no salen las cuentas
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #156 en: 05 de Abril de 2017, 09:16:16 »
He metido las ecuaciones en una hoja excel y voy probando valores cambiando las resistencias y los condensadores hasta que obtengo los polos que quiero.
La hoja excel y las ecuaciones acabo de hacerlas por mi cuenta (con un software CAS) por lo que es posible que tengan algún error, aunque he tenido mucho cuidado de ir paso a paso para no cometer errores. No sé por qué no te salen las cuentas. Ponme un ejemplo concreto y lo compruebo, para descartar que sea un error.


Este compensador de  6 componentes se diferencia del PID con 4 componentes en que en las frecuencias más altas en vez de crecer, la ganancia decrece. Eso es bueno porque elimina el ruido de conmutación y las oscilaciones de frecuencia más alta.

El problema ahora es sacar el diagrama de Bode de la fuente. Por lo que he puesto arriba los cálculos teóricos no son sencillos. Además son teóricos y puede que no se ajusten bien del todo. Lo bueno de esas ecuaciones es que permiten ver cómo afectan a la respuesta en frecuencia los distintos componentes. Tengo un excel (de Ridley) en el que metes los componentes de la etapa Boost y te dibuja el bode:
http://old.ridleyengineering.com/freesoftware.html
Luego hay que comprobar que estas gráficas y ecuaciones concuerdan con los resultados de la fuente.
Empieza a ser mucha tarea, espero que no sea demasiado.


También se puede calcular el Bode de forma práctica metiendo una señal senoidal al controlador y mirando en el osciloscopio la señal del controlador y su resultado en la salida (cómo cambia en amplitud y cómo cambia en desfase). Repitiendo eso con varias frecuencias puedes dibujar al final el bode. Es un poco tedioso, por eso hay instrumentos que lo hacen de forma automática (graficar el bode), pero suelen ser caros y pocos poseen uno.

Un saludo.
 

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #157 en: 05 de Abril de 2017, 10:03:53 »
Citar
Ponme un ejemplo concreto y lo compruebo, para descartar que sea un error.

He repasado todas las cuentas, Vsl me sale 0.1:

Vsl = (Vo-Vin) · Rs · T / L = (21-11) · 0.028 · (1/40K) / 70u = 0.1

A partir de aquí algunos valores cambian:

Km = 201.5
Kd = 2.5
wr = 27.04E+3
wz = 33.33E+3
wp = 119

Ahora, si fijamos R1 = 1K, y R3 = 100K, y despejando de aquí:

Polo 3: w = 1 / (C1 * R1)
Cero 1: w = 1 / (C3 * R3)

C1 = 1 / (wp * R1) = 1 / (119 · 1000) = 8.4uF

C3 = 1 / (wz * R3) = 1 / (33.33E+3 · 100E+3) = 300pF

No sé si es la forma de calcularlo.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #158 en: 05 de Abril de 2017, 13:20:15 »
Vsl es V_slope, es decir la tensión de la rampa de compensación que evita la oscilación subarmónica.
Esta tensión hay que calcularla para el peor caso posible y añadir un poco más para evitar que esté a punto de oscilar.

Vsl = (Vo-Vin) · Rs · T / L = (36-12) · 0.028 · 25us / 70uH = 0.24 v/ciclo

En nuestro caso, al final pusimos una resistencia R13=4k7 que hace un divisor resistivo con la resistencia R4=1k que a su vez estaba unida a las resistencias de sensado. También hay conectada una resistencia R15=6k8 a 5v.
La rampa del condensador oscilador es de 1.7V que dividida por el divisor resistivo formado por R13=4k7 y la impedancia equivalente de R15 y R4 en paralelo (872 Ohm) da como resultado Vsl = 0.266 V

Yo había puesto Vsl=0.3V porque no había tenido en cuenta el efecto de la resistencia R15=6k8.


En cuanto a los polos de la fuente y del compensador, no tienen nada que ver.
La fuente tiene unos polos y unos ceros y a partir de ahí tendrá un diagrama de bode.
El compensador tendrá otros polos y otros ceros y a partir de ahí tendrá otro diagrama de bode completamente distinto.

Al sumar los dos diagramas de bode obtenemos el diagrama de bode total, de la fuente y del compensador juntos.
Este último diagrama es el que debe ser estable y funcionar bien.
Normalmente la respuesta de la fuente no es ideal, hay que modificarla para que funcione mejor. Ahí es donde entra en juego el compensador que modifica la respuesta de la fuente para conseguir una respuesta lo más parecida al ideal.
Para conseguir eso hay varios métodos, como el de Ziegler-Nichols, que ayudan a escoger cómo debe ser el compensador para mejorar lo máximo posible la respuesta del conjunto.
Yo no conozco qué método utilizar para afinar un compensador de tantos polos y ceros. Lo intentaré ajustar a mano a partir de la respuesta de la fuente (dada por sus gráficas de bode).

El primer paso para eso es calcular la respuesta de la fuente y comprobar que se ajusta a la realidad. Yo ahora voy a repasar los cálculos y voy a intentar comprobar que todo está bien y luego intentaré comparar los resultados con las gráficas que has puesto hasta ahora. A ver si consigo afinar el compensador a partir de ahí.

Un saludo.


« Última modificación: 05 de Abril de 2017, 14:32:51 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #159 en: 05 de Abril de 2017, 16:23:21 »
He creado una hoja excel para calcular la gráfica de Bode del compensador PID de 6 componentes.
La adjunto.

6/04/2017
Nueva versión v2 que permite calcular polos y ceros a partir de los componentes y al revés, componentes a partir de polos y ceros.
Esta versión está bloqueda para evitar que se cambie las fórmulas por error. El bloqueo no tiene contraseña.

« Última modificación: 14 de Abril de 2017, 09:48:51 por Picuino »

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #160 en: 05 de Abril de 2017, 19:19:54 »
Veo que hay dos trabas importantes, obtener el bode de la fuente, y una vez encontrado el bode necesario del controlador, traducirlo a sus resistencias y condensadores.

En clase haciamos cosas como los ejercicios del adjunto, la funcion de transferencia en lazo abierto sería la de nuestra fuente (que no conocemos), y luego se quedan en la función del controlador que dá matlab, pero nunca llegamos a implementar eso con un filtro en un operacional.

Dices que se puede obtener experimentalmente, ¿hay que tomar muchos valores? y ¿la fuente senoidal tiene que poder entregar una cierta potencia? y ¿de que frecuencias estamos hablando? lo digo por si con un generador de funciones basado en un microcontrolador se puede hacer.

Saludos!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #161 en: 06 de Abril de 2017, 06:05:19 »
Veo que hay dos trabas importantes, obtener el bode de la fuente, y una vez encontrado el bode necesario del controlador, traducirlo a sus resistencias y condensadores.

En realidad el bode de la fuente ya lo tenemos en la parte de baja frecuencia, que es sencillo de calcular. Hay un polo formado por el condensador y por la carga externa y un cero formado por la resistencia ESR y el condensador de salida. Son valores de baja frecuencia, se basan en valores conocidos y son sencillos de calcular.  Una ventaja de esta fuente en modo corriente es que elimina la inductancia del filtro de salida, simplificando la respuesta en baja frecuencia.
El problema viene con la ganancia y con el comportamiento a frecuencias más altas. Esa es la parte que no me queda clara del modelo de Texas Instruments.

Calcular las resistencias y condensadores del compensador no es demasiado complicado. Simplemente probando y ajustando a mano se pueden conseguir resultados aceptables. Con la hoja excel es rápido, aunque todavía tengo que completarla con el modelo de la fuente.

En clase haciamos cosas como los ejercicios del adjunto, la funcion de transferencia en lazo abierto sería la de nuestra fuente (que no conocemos), y luego se quedan en la función del controlador que dá matlab, pero nunca llegamos a implementar eso con un filtro en un operacional.
En esta fuente lo vamos a hacer en la práctica con un operacional.
El problema de este caso es que algunos polos y ceros son inestables (están en el semiplano positivo) y eso complica las cosas. No es lo mismo estabilizar un palo de escoba de punta que estabilizarlo tumbado. En nuestro caso está de punta. Ese es un problema de 'péndulo invertido'. Cualquier pequeño cambio tiende a hacerse mayor y que la fuente se caiga.
Esto pasa sobre todo por culpa del tipo de carga (laptop) que consume potencia constante. Si la fuente entrega una corriente constante a una resistencia, su tensión se mantiene estable aunque haya pequeñas variaciones. Pero si alimentas un ordenador a 20V con corriente constante de 3A y el ordenador consume 60W al principio todo va bien hasta que la tensión cambia un poco y todo se va al traste:
tensión = 19V  el ordenador intenta consumir 3.16A, pero la fuente entrega 3A constantes, la tensión baja todavía más hasta que al final cae a cero.
Al revés lo mismo. Tensión = 21V el ordenador intenta consumir 2.84A, pero como la fuente entrega 3A, la tensión tiende a subir hasta que algo falla.
Es inestable y más difícil de regular que otros tipos de carga. Pero se puede regular.


Dices que se puede obtener experimentalmente, ¿hay que tomar muchos valores? y ¿la fuente senoidal tiene que poder entregar una cierta potencia? y ¿de que frecuencias estamos hablando? lo digo por si con un generador de funciones basado en un microcontrolador se puede hacer.
Para hacer un bode experimental, tienes que inyectar una pequeña señal analógica en la fuente funcionando.
La señal es mejor que sea lo más senoidal posible para evitar ruido y lo más pequeña posible para evitar efectos de gran señal no lineales. Pero no debe ser muy pequeña porque entonces no la distingues del ruido.
Se puede generar con un microcontrolador que tenga DAC. Con uno sencillo (de 5 bits) es suficiente. Haces una tabla de valores senoidal y los vas escribiendo en el DAC.
El mejor compensador que se puede poner es uno integral, que filtra muy bien el ruido de escalón del DAC, y que sea muy estable (baja ganancia) para que no añada oscilaciones.

La señal senoidal puedes inyectarla por ejemplo en el divisor de tensión de salida (R8), porque es uno de los sitios más sencillos.

A continuación tienes que observar dos puntos:
  La señal de compensación en el pin 1 del controlador (COMP)
  La señal de salida en el condensador C19 (Vo)

El valor de ganancia es la relación entre la amplitud de la primera señal y la segunda señal
El valor de fase es el desplazamiento entre la primera señal y la segunda señal, en grados.
Si tienes un osciloscopio que haga FFT o diagramas de frecuencia y fase, te puede facilitar las cosas.

Las frecuencias escogidas serán las que pueden presentar oscilaciones:
100Hz, 200Hz, 500Hz, 1000Hz, 2000Hz, 5000Hz, 10000Hz,
No son muchas, pero son suficientes para comprobar la estabilidad y diseñar el compensador.

Un saludo.
« Última modificación: 06 de Abril de 2017, 06:07:29 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #162 en: 06 de Abril de 2017, 06:09:33 »
Otra herramienta que se puede utilizar alternativa a Matlab (que es un software de pago) es Python con la librería científica scipy:
https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.bode.html
https://docs.scipy.org/doc/scipy-0.14.0/reference/signal.html

Lo prefiero porque es software libre, con un lenguaje más flexible y potente. Aunque no tiene tantas posibilidades como Matlab, lo que tiene nos sirve de sobra para nuestro caso.

Un saludo.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #163 en: 06 de Abril de 2017, 06:23:13 »
Si vas a intentar calcular el bode de forma práctica, puedes intentar primero poner un compensador con:
R2= 10k
C23 = 10nF
Y nada más. Creo que será estable. Si no lo es, aumenta el condensador hasta que sea estable.
Si no llega a ser estable, coloca en vez de C23 una simple resistencia. Cuanto más baja sea, más estable será la etapa.

Lo mejor es hacer el ensayo con la tensión de salida alta (unos 30V) que es el punto más inestable de todos.

Lo ideal es que funcione con una carga de potencia constante (un Buck con salida de potencia constante). No pongas el Laptop por si oscila mucho la tensión y lo quemas. Esta carga es inestable, pero así se consigue ver el peor caso posible.

Un saludo.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Proyecto: Diseño optimizado de una etapa Step Up
« Respuesta #164 en: 06 de Abril de 2017, 15:42:25 »
http://www.todopic.com.ar/foros/index.php?topic=47512.msg395929#msg395929

Nueva versión de la hoja excel. Ahora calcula los componentes a partir de la ganancia, los polos y ceros.
Para eliminar un polo o un cero, hay que hacer su valor muy grande (con que sea mayor de 60 millones es suficiente)

Un saludo.


 

anything