UM10155 from NXP
 User Name Stay logged in? Password
 Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read Search

 Class D Switching Power Amplifiers and Power D/A conversion

 Please consider donating to help us continue to serve you. Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
HarryDymond
diyAudio Member

Join Date: May 2005
Location: Bristol, UK
Hi monaural, thanks for the reply.

Quote:
 Originally Posted by monaural Third: I couldn't get any analytical solution to express oscillation frequency in terms of the input signal

Quote:
 Originally Posted by monaural (it's trivial to derive a numerical solution to the problem, but its also useless, at least for me)
Could you explain? Like I said, I don't get it; why does the oscillation frequency vary with output amplitude? Qualitatively, what's causing the switching frequency to change? Is it because the effective gain of the modulator varies with output signal amplitude?

Last edited by HarryDymond; 3rd November 2009 at 03:00 AM.

 3rd November 2009, 03:14 AM #12 monaural   diyAudio Member   Join Date: May 2009 Since this is a non-linear system, you should not see the circuit as a static model. It's behaviour highly depends on the signal applied to it. For example, in the extreme, try to add a carrier to the signal, at, say, 1Mhz the ucd will actually oscillate at that fixed frequency, just like a regular class D! well, the numerical solution is obtained, deriving the frequency response of the system (arround the comparator), applying a variable-duty-cycle squarewave to the system, and checking for Vo == Vin in the time domain. If you know how to handle laplace transfer functions, you will get to the expression: square_wave(t) = sum(n, from -oo to +oo, skipping n=0) sen(pi*n*D)/(n*pi)*exp(-j*D*n*pi)*exp(+j*2*pi*n/T*t) where D is duty cycle (from 0 to 1) T is the square wave period (what we want to know) from here, you multiply the frequency contents of the wave, with the corresponding frequency response of the branch, say G(s), so the inverting input of the comparator would be Vi-(t) = sum(n, from -oo to +oo, skipping n=0) sen(pi*n*D)/(n*pi)*exp(-j*D*n*pi)*G(j*2*pi*n/T)*exp(+j*2*pi*n/T*t) Assuming Vi-(0) - Vi+ = 0, since the step occurs at t=0 (assuption I took when calculating the square wave freq. content) then, the next commutation, at t=DT, the condition should also be truth: Vi-(DT) - Vi+ = 0 so Vi-(0) = Vi-(DT) Btw, do not think that Vi+ is proportional to D. It's not. calculating it on matlab would give the answer. I have some matlab code: sorry about those portuguese comments, but i believe you will understand the code anyway, you always have google translator Code: ```%cálculo da frequência de oscilação, recorrendo ao método numérico %% primeiro que tudo, calcula a resposta em frequência da malha clear all; close all; syms s; %Atraso da malha tau=300e-9; L=28e-6; C=680e-9; Rl=8; Rg=1000; Ra=22e3; Rb=2.2e3; Cb=220e-12; %descrição dos sistemas %filtro passa baixo Lpf=1/(L*C)*1/(s^2+s/(Rl*C)+1/(L*C)); %phase-lead network A=Rg/(Ra+Rg); tz=Cb*(Ra+Rb); tp=Cb*(Rb+Ra*Rg/(Ra+Rg)); Pln=A*(tz*s+1)/(tp*s+1); Cmp=exp(-s*tau); M=Lpf*Pln*Cmp; %% Agora que já calculou a resposta da malha(M), vai obter a frequência de %% oscilação, em funcao do duty cycle close all; D=0.1; %duty cycle T=linspace(1e-6,10e-6, 1000); tempo=linspace(0, 20e-6, 10000); periodo=1/3.17e5; sinal=zeros(1, 1000); sinalp=zeros(1, 1000); sinal_tempo = zeros(1, 10000); for n=-50:50; if(n ~= 0) sinal = sinal + i*(1-cos(2*pi*n*D))./(n*pi).*subs(M, s, i*2*pi*n./T); if(n>0) sinalp = sinalp + (1-exp(-2*j*pi*n*D))*(1-exp(2*j*pi*n*D))/(2*j*n).*subs(M, s, 2*j*pi*n./T); end sinal_tempo = sinal_tempo + sin(pi*n*D)./(n*pi).*exp(-j*pi*n*D)*exp(j*n/periodo*tempo*2*pi).*subs(M, s, i*2*pi*n./periodo);; end end figure(1) subplot(2,1,1) plot(1./T, real(sinal)) hold on plot([1/1e-6, 1/10e-6], [0 0], 'r') subplot(2,1,2) plot(1./T, angle(sinal)) figure (2) plot(tempo, real(sinal_tempo)); %% Agora que já consegui calcular o sinal à saída,vou resolver em ordem a T close all; dt=100e-9; T=1/130e3; sinal=0; frequencias=zeros(1,10); indice=1; duties=linspace(0.1,0.9,1000); for D=duties; frequencias(indice) = fzero(@(f) Vcomp(f, D, 100), [50e3, 1e6]); indice = indice + 1; end plot(duties, frequencias) % % figure(1) % subplot(2,1,1) % plot(1./T, real(sinal)) % hold on % plot([1/1e-6, 1/10e-6], [0 0], 'r') % % subplot(2,1,2) % plot(1./T, angle(sinal)) % % figure (2) % plot(tempo, real(sinal_tempo));``` You will need this function: Code: ```function y = Vcomp(f, D, ordem) if ordem <1 error('Ordem tem que ser pelo menos um!') end sinal=0; for n=-ordem:ordem; if(n ~= 0) s=i*2*pi*n.*f; resposta_filtro=3442016806722689./65536.*exp(-2833419889721787./9444732965739290427392.*s).*(6285469788699497./27153607276500459978752.*s + 1./23)./(3279375541930173./4722366482869645213696.*s + 1)./(s.^2 + 1180591620717411303424./6422418416702717.*s + 3442016806722689./65536); sinal = sinal + i*(1-cos(2*pi*n*D))./(n*pi).*resposta_filtro; end end y = real(sinal); end```
 3rd November 2009, 03:17 AM #13 monaural   diyAudio Member   Join Date: May 2009 That huge line inside the function is just the frequency response function expanded, because this way matlab works faster. Those component values are retrieved from Um10155.
monaural
diyAudio Member

Join Date: May 2009
Quote:
 Originally Posted by HarryDymond Hi monaural, thanks for the reply. Qualitatively, what's causing the switching frequency to change? Is it because the effective gain of the modulator varies with output signal amplitude?
Sorry, I haven't read this

Well, imagine a simpler system:
a comparator with delay connected to a first order low-pass filter (e.g. a resistor and a capacitor), and the output voltage directly fed-back to the comparator

Since Vcapacitor (capacitor voltage, which is also output voltage of the system) is the result of the current integral, and the current is (Vcomparator_out - Vcapacitor)/R , when mean Vcapacitor is low (, say, -0.5) when the Vcomparator = 1, the capacitor is integrating 1.5/R
When the mean Vcapacitor is higher (say, 0.5) the capacitor just integrates 0.5/R, so, charges slower
it means that higher the output voltage, slower is the charging, so, when the output voltage is higher, the capacitor takes longer to charge, and is faster to discharge, and vice versa.

as a consequence, you can see that when Vi is away from 0V, the output is something like a sawtooth.
With a simple first order system, its trivial to get a analytical solution, because the working variable (Vout) is proportional to the state variable (in this case, the charge stored in the capacitor), but for a 2nd order system, or the even more complex feedback network of ucd, it can't be done this way. However, the principle is the very same. Basically, the system reponds differently, as a function of stored energy.

Last edited by monaural; 3rd November 2009 at 03:30 AM.

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is Off Forum Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Site     Site Announcements     Forum Problems Amplifiers     Solid State     Pass Labs     Tubes / Valves     Chip Amps     Class D     Power Supplies     Headphone Systems Source & Line     Analogue Source     Analog Line Level     Digital Source     Digital Line Level     PC Based Loudspeakers     Multi-Way     Full Range     Subwoofers     Planars & Exotics Live Sound     PA Systems     Instruments and Amps Design & Build     Parts     Equipment & Tools     Construction Tips     Software Tools General Interest     Car Audio     diyAudio.com Articles     Music     Everything Else Member Areas     Introductions     The Lounge     Clubs & Events     In Memoriam The Moving Image Commercial Sector     Swap Meet     Group Buys     The diyAudio Store     Vendor Forums         Vendor's Bazaar         Sonic Craft         Apex Jr         Audio Sector         Acoustic Fun         Chipamp         DIY HiFi Supply         Elekit         Elektor         Mains Cables R Us         Parts Connexion         Planet 10 hifi         Quanghao Audio Design         Siliconray Online Electronics Store         Tubelab     Manufacturers         AKSA         Audio Poutine         Musicaltech         Aussie Amplifiers         CSS         exaDevices         Feastrex         GedLee         Head 'n' HiFi - Walter         Heatsink USA         miniDSP         SITO Audio         Twin Audio         Twisted Pear         Wild Burro Audio

 Similar Threads Thread Thread Starter Forum Replies Last Post xxxxxxx Class D 6 26th July 2008 07:19 AM

 New To Site? Need Help?

All times are GMT. The time now is 10:45 PM.

 Home - Contact Us - Advertise - Rules - diyAudio Store - Sponsors - Privacy Statement - Terms of Service - Top - Opt-out policy

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 16.67%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.