1. The Impact of Timer Resolution in the Efficiency
Optimization of Synchronous Buck Converters
Pedro Amaral
2. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
3. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
4. Problem
Synchronous Buck Converter
DC to DC converter
Voltage step down
Current step up
PWM driven (fs)
Control switch
Synchronous switch
Feedback control
5. Problem
CS conducts for ton
SS conducts for toff
Body diode conducts for td,r+td,f
𝐷𝐶 = 𝑡 𝑜𝑛
𝑇𝑠
𝑇𝑠 = 𝑡 𝑜𝑛 + 𝑡 𝑜𝑓𝑓 + 𝑡 𝑑,𝑟 + 𝑡 𝑑,𝑓
6. Problem
td too short td too long
Dead time is necessary
avoid short circuit
avoid damage MOSFETs
Dead time is harmful
𝑃𝑐𝑜𝑛𝑑,𝐷 ≫ 𝑃𝑐𝑜𝑛𝑑,𝑄
power efficiency reduction
7. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
8. Proposed Solutions
Methods Advantages Disadvantages
Fixed Dead Time
• Easy
• Safe
• Non-optimized
Switching Current Sensing
• Optimized • Expensive current sensors
• Added components
Switching Voltage Sensing
(adaptive)
• Simple
• Optimized
• Added components
• Ineffective at high 𝑓𝑠
Switching Voltage Sensing
(predictive)
• Effective at high 𝑓𝑠
• Optimized
• Added components
• Complex
Sensorless
• No added components
• Optimized
• Slow optimization
9. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
10. Motivation
Digitalization of power supplies
Explore new features:
Diagnostics
Communications
Efficiency
New answers for old questions
Dead time problem
Pressing global energy crisis
11. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
13. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
14. Analysis of Dead Time Optimization
Average voltage across inductor L at steady state is 0 over a single period:
0
𝑇𝑠
𝑉𝐿 𝑑𝑡 = 0 ↔
𝑡 𝑑,𝑟
−𝑉𝐷 − 𝑉𝑜𝑢𝑡 𝑑𝑡 +
𝑡 𝑜𝑛
𝑉𝑖𝑛 − 𝑉𝑜𝑢𝑡 𝑑𝑡 +
𝑡 𝑑,𝑓
−𝑉𝐷 − 𝑉𝑜𝑢𝑡 𝑑𝑡 +
𝑡 𝑜𝑓𝑓
−𝑉𝑜𝑢𝑡 𝑑𝑡 = 0
15. Analysis of Dead Time Optimization
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛
𝑡 𝑜𝑛
𝑇𝑠
− 𝑉𝐷
𝑡 𝑑
𝑇𝑠
output voltage
dead time
duty cycle
output voltage
16. Analysis of Dead Time Optimization
Steps of any generic dead time optimization algorithm:
𝑡 𝑘−1: ∆𝑡 𝑜𝑛 = 0 → ∆𝑉𝑜𝑢𝑡 = 𝑉𝐷
∆𝑡 𝑑
𝑇𝑠
𝑡 𝑘: ∆𝑡 𝑑 = 0 → ∆𝑡 𝑜𝑛 = 𝑇𝑆
∆𝑉𝑜𝑢𝑡
𝑉 𝑖𝑛
𝑡 𝑘+1: ∆𝑉𝑜𝑢𝑡 = 0 → ∆𝑡 𝑑 = ∆𝑡 𝑜𝑛
𝑉 𝑖𝑛
𝑉 𝐷
Algorithm operation point: (∆𝒕 𝒐𝒏, ∆𝒕 𝒅, ∆𝑽 𝒐𝒖𝒕)
17. Analysis of Dead Time Optimization
Set of possible algorithm operation points of
the optimization algorithm:
𝒓 = ∆𝑡 𝑜𝑛, ∆𝑡 𝑑, ∆𝑉𝑜𝑢𝑡 = ∆𝑡 𝑜𝑛 ∙ 1,
𝑉𝑖𝑛
𝑉𝐷
,
𝑉𝑖𝑛
𝑇𝑠
∈ ℝ3
18. Analysis of Dead Time Optimization
But variations are limited by the resources of the
controller (number of bits in ADC and timer):
∆𝑡 𝑜𝑛, ∆𝑡 𝑑 ≥ 𝑡 𝑚𝑖𝑛 → ∆𝑡 𝑜𝑛, ∆𝑡 𝑑 ≥
𝑇𝑠
2 𝑁 𝑡𝑖𝑚𝑒𝑟
∆𝑉𝑜𝑢𝑡 ≥ 𝑉 𝑚𝑖𝑛 → ∆𝑉𝑜𝑢𝑡 ≥
𝑉 𝐹𝑆
2 𝑁 𝐴𝐷𝐶
Minimum O.P. → maximum algorithm resolution
∆𝑡 𝑑,𝑚𝑖𝑛 = 𝑇𝑆
𝑉 𝑖𝑛
𝑉 𝐷
max 2−𝑁 𝑡𝑖𝑚𝑒𝑟,
𝑉 𝐹𝑆
𝑉 𝑖𝑛
2−𝑁 𝐴𝐷𝐶
19. Analysis of Dead Time Optimization
∆𝑡 𝑑,𝑚𝑖𝑛 = 𝑇𝑆
𝑉 𝑖𝑛
𝑉 𝐷
max 2−𝑁 𝑡𝑖𝑚𝑒𝑟,
𝑉 𝐹𝑆
𝑉 𝑖𝑛
2−𝑁 𝐴𝐷𝐶
𝜑 = 2−𝑁 𝑡𝑖𝑚𝑒𝑟 −
𝑉 𝐹𝑆
𝑉 𝑖𝑛
2−𝑁 𝐴𝐷𝐶
𝜑 > 0
operation point defined by 2−𝑁 𝑡𝑖𝑚𝑒𝑟
timer restrained optimization
ADC bits unused
𝜑 < 0
operation point defined by
𝑉 𝐹𝑆
𝑉𝑖𝑛
2−𝑁 𝐴𝐷𝐶
ADC restrained optimization
timer bits unused
timer restrained
optimization
ADC restrained
optimization
20. Analysis of Dead Time Optimization
Resource usage is important… But what about power efficiency improvement?
Initial power losses due to the existence of dead time:
𝑃𝑙𝑜𝑠𝑠,𝑖 ≈ 𝑃 𝐷,𝑐𝑜𝑛𝑑= 𝑉𝐷 𝐼 𝑜𝑢𝑡 𝑓𝑠 𝑡 𝑑,𝑖
For the minimum variation ∆𝑡 𝑑,𝑚𝑖𝑛:
∆𝑃𝑙𝑜𝑠𝑠,𝑚𝑖𝑛 = 𝑉𝐷 𝐼 𝑜𝑢𝑡 𝑓𝑠 ∆𝑡 𝑑,𝑚𝑖𝑛
21. Analysis of Dead Time Optimization
Let 𝚿 be the ratio of eliminated and initial
power losses:
Ψ =
𝑃 𝑙𝑜𝑠𝑠,𝑒𝑙𝑖𝑚
𝑃 𝑙𝑜𝑠𝑠,𝑖
𝚿 in terms of the characteristics of the
controller:
Ψ = 1 −
𝑇 𝑆
𝑉 𝑖𝑛
𝑉 𝐷
max 2−𝑁 𝑡𝑖𝑚𝑒𝑟,
𝑉 𝐹𝑆
𝑉 𝑖𝑛
2−𝑁 𝐴𝐷𝐶
2𝑡 𝑑,𝑖
22. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
25. Experimental Implementation
Output voltage control loop:
sense 𝑽 𝒐𝒖𝒕 and compare to 𝑽 𝒔𝒆𝒕 = 𝟏. 𝟖 𝑽
PI controller outputs new duty cycle
add current dead time
shadow transfer registers
executed every ~𝟐𝟎 𝝁𝒔
26. Experimental Implementation
Dead time optimization loop:
compute average duty cycle (moving avg. filter)
trigger at load change
run twice (rising and falling edge dead time)
start from 200ns fixed dead time
gradient signs → region
cross border → decrease step ∆𝑡 𝑑, change direction
stopping condition ∆𝐷𝐶 < 𝜀 → controls precision/speed
user defined minimum 𝑻𝑫 𝒎𝒊𝒏 → ensure safety
31. Content
Problem
Proposed Solutions
Motivation
Hypothesis
Analysis of Dead Time Optimization
Experimental Implementation
Conclusions
32. Conclusions
First dead time optimization method using microcontroller unit
Study of the influence of digital controller resources (timer) on dead time power efficiency
optimization
Design of a simple, computationally light, no extra hardware and effective algorithm
𝟓 % improvement over a fixed dead time solution
𝟏 % improvement over low resolution solution
Boa tarde. Antes de mais obrigado pela vossa presença. O meu nome é Pedro Amaral e vou apresentar-vos esta dissertação de mestrado. Este trabalho foi realizado cá na faculdade, no núcleo de microelectrónica, em colaboração com a Infineon Technologies sob orientação do Professor Cândido Duarte e o Engenheiro Pedro Costa.
Vou então começar por abordar o problema e a motivação para o resolver. De seguida farei uma pequena revisão da literatura. Depois vou formular a hipótese que pretendo provar com esta dissertação. A seguir, falarei do conteúdo mais técnico deste trabalho: primeiro uma análise teórica seguida da parte experimental e os respectivos resultados para depois concluir a apresentação.
Vamos então começar pelo problema…
O objecto de estudo desta dissertação é o Synchronous buck converter. Isto é o circuito aqui do lado direito que consiste num conversor DC/DC, abaixador de tensão e elevador de corrente. O elemento de controlo são estes dois MOSFETs que são ligados e desligados através de dois sinais PWM complementares e com frequência fs. O MOSFET de cima é o control switch, CS, porque controla a tensão de saída. O MOSFET de baixo é o synchronous switch, SS, e idealmente está ligado sempre que o control switch está desligado. O controlo é feito em malha fechada.
Ainda sobre o controlo de um conversor deste género: durante um ciclo TS, o control switch conduz durante um intervalo de tempo ton e o synchronous durante toff. No tempo que resta, o díodo de corpo deste MOSFET conduz durante o chamado dead time, para ambos rising edge and falling edge.
O duty cycle é a razão entre ton e Ts mas como Ts é constante, vou referir muitas vezes ton simplesmente como o duty cycle.
O problema com o dead time é que, por um lado, é necessário para evitar que ocorra curto circuito na meia-ponte de transístores, entre Vin e a massa, mas por outro lado é prejudicial porque a perdas de condução num díodo são muito superiores às perdas de condução num transístor e isto reduz a eficiência energética do conversor. Portanto há aqui um trade-off na escolha do dead time.
Vamos então passar agora a falar um pouco do trabalho que já existe sobre o tema.
Várias pessoas já se debruçaram sobre o tópico da optimização do dead time em conversores deste tipo e por isso categorizei os métodos existentes em 5 tipos.
A solução mais simples é manter um valor de dead time fixo durante toda a operação. Depois é possível utilizar medições, tanto da corrente como da tensão no switching node, ou seja o nó entre os MOSFETs. Mais recentemente surgiram os métodos sensorless que não dependem de componentes externos e fazem uso do controlador já existente. Esta categoria de méotods é a que melhor se adequa para os objectivos desta dissertação.
Vamos então falar agora da motivação para resolver este problema e dos objectivos que foram definidos no início deste trabalho.
Nos últimos anos temos vindo a assistir a uma digitalização das fontes de alimentação, ou seja, a utilização de controlo digital em vez de soluções não digitais. É previsto que esta tendência aumente ao longo dos próximos anos e a indústria de semicondutores tem adaptado os seus roadmaps para dar uma melhor resposta aos clientes. O maior uso destas soluções permite não só explorar novas funcionalidades como diagnóstico inteligente, comunicações e diferentes modos de operação mas também permite dar respostas novas a problemas antigos como esta questão da optimização do dead time. Além disso vivemos numa era em que a questão da energia e da eficiência são muito importantes e a indústria está a trabalhar cada vez nesse sentido.
Qual é então a hipótese que se pretende provar com esta dissertação?
O objectivo deste trabalho passa por conceber um algoritmo de optimização do dead time simples e sem componentes adicionais. Para isso vamos recorrer a um método sensorless. Além disso como queremos explorar a influência da resolução do timer na optimização, faz sentido utilizar um algoritmo que dependa disso. Portanto vamos utilizar um algoritmo de minimização do duty cycle. Assim, a hipótese que tentamos provar neste trabalho é: Será possível aumentar significativamente a eficiência de um conversor utilizando um microcontrolador a executar um algoritmo de minimização de duty cycle e qual é o impacto da resolução do timer nesse aumento de eficiência?
Vamos então começar por analisar teoricamente o processo de optimização de dead time
Podemos começar por assumir que a tensão média aos terminais da bobina L é 0 durante um ciclo de comutação. Isso significa que o integral da tensão durante ton, toff e o dead time (tdr e tdf) é 0.
Se desenvolvermos o integral, chegamos a uma relação entre a tensão de saída e o duty cycle (ton) e o dead time (td).
Esta equação também pode ser explicada se olharmos para a tensão no switching node que é (back) este nó e está a Vin, 0 ou Vd, a queda de tensão no díodo. Como a tensão média neste nó é igual à tensão de saída, percebemos que um aumento no dead time diminui a tensão de saída e um aumento no duty cycle aumenta a tensão de saída, exactamente como é descrito nesta equação e nesta animação.
Se pensarmos num algoritmo genérico de optimização de dead time podemos dividi-lo em 3 passos sequenciais:
Primeiro o dead time é modificado. Isso provoca uma variação na tensão de saída. De seguida, o controlador da tensão de saída detecta esta variação e compensa-a aumentando o duty cycle, ou seja, ton. Por último a tensão de saída volta ao valor original, agora com um dead time e um tempo de condução diferentes dos originais.
Isto define um ponto de operação com três variáveis: variação de duty cycle, variação de dead time e variação da tensão de saída, que estão interrelacionadas por três equações.
Se traçarmos as três expressões anteriores como planos em R3, vemos que os três se interceptam numa única linha r, definida por esta expressão. Isto é o conjunto de pontos de operação possíveis de um algoritmo de optimização de dead time.
No entanto nem todas as variações de dead time, duty cycle ou tensão de saída são possíveis. Os recursos do controlador digital, nomeadamente a resolução do ADC e do timer impõe limites. Se traçarmos os 3 limites de operação em R3, percebemos que a recta que contém todos os pontos de operação do algoritmo fica limitada.
O ponto de operação mínimo, entre todos os possíveis é o que garante a maior resolução do algoritmo. Esse ponto é determinado utilizando a fórmula da recta e as condições matemáticas que definem os limites de operação. Graficamente o ponto mínimo corresponde à interseção da recta r com qualquer um dos planos.
Podemos definir uma variável phi como a distância entre os dois argumentos da função máximo. Phi pode descrever a utilização de recursos por parte do algoritmo.
Ou seja, se phi for maior que 0, aqui nesta região, a optimização é restringida pelo timer e há bits da ADC por utilizar. Inversamente se o phi for menor que 0, esta região, a optimização é limitada pela ADC e o timer tem recursos que não podem ser utilizados. No meio, quando phi é igual a 0 a utilização de recursos é óptima.
A utilização de recursos é importante mas o foco deste trabalho é realmente a eficiência energética do conversor. As perdas devido à existência do dead time podem ser aproximadas pelas perdas de condução no díodo, que dependem directamente do dead time.
As perdas totais podem ser eliminadas em passos delta Ploss min, determinados pela variação mínima de dead time. Aqui dá para perceber o porquê de necessitarmos de uma variação de dead time o mais pequena possível – se os passos forem mais pequenos as perdas não eliminadas (aqui a vermelho) também vão ser menores.
Se definirmos psi como a percentagem de perdas no díodo eliminadas, podemos representar este factor em função das características do microcontrolador através desta equação. Em R3 esta equação é expressa por esta superfície que se aproxima de 1, ou seja, eliminação total das perdas, quando aumentam os bits da ADC e do timer.
Terminada a análise teórica, podemos passar à implementação prática
Aqui vemos duas imagens do hardware utilizado como protótipo. A placa do lado esquedo é o powertrain e contém dois synchronous buck converters com entrada de 12V e saída nominal de 1.8V. O control é feito por esta control card que contém um microcontrolador XMC4200 e encaixa directamente aqui neste conector. A carga utilizada foi de 0.5 Ohm.
O microcontrolador depende de muitos periféricos. Os mais importantes para uma aplicação deste género são os timers. O timer principal do microcontrolador é o CCU8 com uma resolução de 12.5 ns, ou seja, 8 bits. Este timer gera uma onda que entra no periférico HRPWM que por sua vez ajusta ambos os edges com uma resolução de 150ps, ou seja, 14.3 bits, e produz duas saídas complementares. Outros periféricos importantes são a ADC, o NVIC que é o controlador de interrupts e os GPIOs, ou seja a entrada e a saída.
O software divide-se em duas partes importantes: a primeira é a malha de controlo da tensão de saída. Primeiro a tensão de saída é medida pela ADC e comparada com o valor ideal, 1.8V. Um controlador PI define qual é o novo valor de duty cycle, o dead time actual é adicionado e os valores são escritos nos registos do microcontrolador.
Este loop é executado a cada 20 microssegundos.
A segunda malha de controlo é da optimização do dead time, que em geral é muito mais lento que o do duty cycle por forma a não destabilizar o controlo do conversor. O objectivo deste algoritmo é minimizar o duty cycle e com isso maximizar a eficiência.
Algumas características importantes: em todos as iterações o duty cycle médio é calculado através de um filtro do tipo exponential moving average. Se o duty cycle variar bruscamente, significa que houve uma alteração na carga e o algoritmo é então executado duas vezes, uma para optimizar o rising edge dead time e outra para o falling edge.
O dead time vai sendo diminuído em steps constantes. O gradiente é medido em cada iteração para determinar a região em que se encontra o dead time actual. Quando a fronteira entre as duas regiões é atravessada, a direção de procura inverte-se e o step é diminuído para a pesquisa se tornar mais fina. Isto é feito sucessivamente até a condição de paragem ser cumprida. O utilizador pode variar essa condição para alterar a rapidez/precisão do algoritmo.
Estes gráficos são o resultado da implementação do algoritmo. No lado esquerdo o algoritmo está a correr mais lentamente para se poder ver melhor. Tanto o rising como o falling edge dead time começam em 200 ns e convergem para valores entre 25 e 30 ns. O duty cycle é diminuído em 0.8%.
Aqui do lado direito o algoritmo é executado à velocidade normal e demora cerca de 80ms a convergir.
Estas duas fotografias foram tiradas num osciloscópio antes e depois da optimização. Podem observar-se as duas formas de onda PWM à saída do microcontrolador e a tensão no switching node, entre os dois transístores. Aqui vê-se o díodo de corpo a conduzir e aqui vê-se que o díodo não conduz praticamente nada.
Neste gráfico estão as temperaturas dos MOSFETs para vários valores de dead time. Vê-se que a temperatura mais baixa ocorre perto do dead time óptimo, ou seja, quando as perdas são menores. Quando o dead time está na região de curto circuito, a temperatura aumenta drasticamente.
Esta tabela contém os resultados do algoritmo de optimização em dois cenários, utilizando PWM de baixa e alta resolução.
Em baixa resolução são eliminadas 72% das perdas no díodo de corpo e a eficiência do conversor sobe 3.6% para uma eficiência final de 95.1%.
No caso da alta resolução, as perdas no díodo são quase completamente eliminadas, 98.6%, e obtém-se uma subida de 4.9% no conversor, totalizando 96.1% de eficiência.
Concluindo então…
Na literatura que recolhi, são sempre usadas FPGAs, DSPs ou circuitos integrados, portanto utilizar um microcontrolador para implementar um método de optimização de dead time deste género constitui uma inovação.
Também não encontrei um estudo assim tão aprofundado sobre a influência da resolução do timer na optimização e portanto também foram feitos alguns contributos nesta área.
Os resultados do algoritmo que foi concebido falam por si: 5% de melhoria da eficiência em relação ao dead time fixo e 1% de melhoria com o uso de high resolution PWM em relação ao uso de low resolution PWM. Este resultado é significativo neste tipo de conversores e pode influenciar na decisão de investir num controlador com características deste género para o design de uma fonte de alimentação.
A apresentação termina então aqui e agradeço a vossa atenção e a vossa presença. Obrigado.