⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pll_nonlinear_param.m

📁 课程设计做的PLL
💻 M
字号:
% simple integer-N PLL - uses pll_intN.mdl simulink model%% Author: Walt Bax% Date: November 24, 1998%%-----------------------------------------------------------echo off;if ~exist('gc')  gc='b';endstr=sprintf('graph colour <%s>: ',gc);buff=input(str,'s');if ~isempty(buff)  gc=buff;endif ~exist('samples')  samples=5000;		% set initial # samples for time domainendnpts=800;if ~exist('fr')  fr=10e6;endstr=sprintf('Reference frequency <%4.1fMHz>: ',fr/1e6);    buff=input(str);if ~isempty(buff)  fr=buff;endT=1/fr;if ~exist('gmode')  gmode='log';endf=logspace(1,log10(fr-1),npts);%-----------------------------------------------------------% PLL loop parametersBW=50e3;Kphi=0.159;Kv=2e6;N=10;K=Kphi*Kv/N;%-----------------------------------------------------------% PFD [rad] --> [V]Bpfd=Kphi*[1];Apfd=[1];Hpfd=freqs(Bpfd,Apfd,2*pi*f);%-----------------------------------------------------------% analog integrator with compensating zero%%          B(s)    (Tau2)s + 1	%   H(s) = ---- = ------------%          A(s)    (Tau1)szeta=0.7;                          % zeta specified for this filteralpha2=2*pi*BW/K;wn=alpha2*K/(2*zeta);Tau1=K/wn^2;Tau2=2*zeta*wn*Tau1/K;Bloop=[Tau2 1];Aloop=[Tau1 0];Hloop1=freqs(Bloop,Aloop,2*pi*f);%-----------------------------------------------------------% low-pass filter (parasitic pole outside PLL loop BW)%%          B(s)         1	%   H(s) = ---- = ------------%          A(s)    (Tau3)s + 1fpole=500e3;                         % parasitic pole frequencyTau3=1/(2*pi*fpole);Blp=[1];Alp=[Tau3 1];Hloop2=freqs(Blp,Alp,2*pi*f);%-----------------------------------------------------------% VCO [V] --> [rad]Bvco=2*pi*Kv*[1];Avco=[1 0];Hvco=freqs(Bvco,Avco,2*pi*f);%-----------------------------------------------------------% frequency domainHopen=Hpfd.*Hloop1.*Hloop2.*Hvco/N;Hclose=Hpfd.*Hloop1.*Hloop2.*Hvco./(1 + Hopen);%-----------------------------------------------------------% plottf=input('transfer function <Hopen | Hclose>: ');fprintf(1,'  fr = %2.0fMHz\n',fr/1e6);fprintf(1,'  BW = %2.1fKHz\n',BW/1e3);fprintf(1,'  Wn = %2.1fKHz\n',wn/(2*pi)/1e3);fprintf(1,'zeta = %3.1f\n',zeta);fprintf(1,'   K = %3.0f\n',K);if ~isempty(tf)  mag=abs(tf);				% magnitude response  phase=360/(2*pi)*unwrap(angle(tf));	% phase response [deg]  %clf;  subplot(2,1,1);  semilogx(f,20*log10(mag),gc);  grid on  hold on;  plot([min(f) max(f)],[0 0],'r');  plot(2*pi*BW,0,'ro');  title('Transfer function');  xlabel('Frequency   (Hz)');  ylabel('Gain   (dB)');  subplot(2,1,2);  semilogx(f,phase,gc);  grid on  hold on;  plot([min(f) max(f)],[-180 -180],'r');  xlabel('Frequency   (Hz)');  ylabel('Phase   (deg)');end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -