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

📄 pll.txt

📁 仿真了锁相环工作到一定时间后达到锁定状态的过程
💻 TXT
字号:
程序默认输入信号频率fin=800kHz,压控振荡器固有振荡频率foo=1000kHz。

源代码:

function[tt1,t1,fs,fo]=My_pll(fin,foo,Ad,T,Ao,th0,dt);

global A fi fo

if nargin<1;fin=640;foo=800;Ad=1;Ao=2*pi*fo;T=80/foo;th0=[0 0];th0=[0 0];dt=1/(4*foo);end;

%--------------------------------------------------------------------------

fo=foo;fi=fin;A=Ao*Ad;

dT=1/(10*fi);[t,th]=ode45('solver',0:dT:T,th0);

t1=0:dt:T-dt;

th1=spline(t,th(:,1),t1);th2=spline(t,th(:,2),t1);

f=th2/(2*pi)+fo;

%--------------------------------------------------------------------------

mstr=['锁相环路动态仿真--绿色:瞬时频差Δw(t)||红色:相位差 φе(t)||黄色:零参考线。'];

figure('Units','normal','pos',[0.09 .12 .8 .8],'color','k');%,'color','k'

set(gcf,'NumberTitle','off','Name',mstr);

dtt=f-fi;

t2=0:dt:t1(end/2);

y=sin(0*t2);

dth=pi/2*fi*t1+th1;

for i=1:160

subplot(211);

plot(t1(1:i),dtt(1:i),'g',t1(i),dtt(i),'ro',t2,y,'y:');

axis off;legend('瞬时频差' ,[520 435 20 10]);

subplot(212); 

plot(t1(1:i),dth(1:i),'r',t1(i),dth(i),'go',t2,y,'y:'); legend('相 位 差' ,[520 420 20 10]);

axis off;

pause(0.000001);

uicontrol('pos',[20 20 60 20],'string','关闭','fontsize',12, ...

'callback','close(gcbf)'); 

end

pause(0.001);

m=40;n=length(t1);n2=n-m-250;

T=m*dt;dt=0.1*dt;fs=1/dt;

tt1=0:dt:T; tt2=t1(n2)+tt1-20*dt;

vc=th2/Ao; 

v2=spline(t1(n2:n),vc(n2:n),tt2);

y2=vco(v2,fo,fs);

y12=sin(2*pi*fi*tt2);

nstr=['环路的捕获过程动态演示---绿:vo(t) 红:vi(t) fi='];

nstr=[nstr num2str(fi) '(kHz),fo=' num2str(fo) '(kHz)'];

H2=figure('Name',nstr,'Num','off','Pos',[92 78 815 610],'color','k');

for i=1:210

plot(tt2(1:i),y2(1:i),'g',tt2(1:i),y12(1:i),'-.r',tt2(i),y2(i),'ro',tt2(i),y12(i),'go');

set(gca,'units','pix','pos',[22 150 800 350]);legend('输出信号' ,'输入信号',[520 440 20 10]);

axis off;pause(0.0000001);

uicontrol('pos',[20 20 60 20],'string','关闭','fontsize',12, ...

'callback','close(gcbf)'); 

End

⌨️ 快捷键说明

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