锁相环仿真基于MATLAB.docx

上传人:b****8 文档编号:9200218 上传时间:2023-02-03 格式:DOCX 页数:13 大小:192.40KB
下载 相关 举报
锁相环仿真基于MATLAB.docx_第1页
第1页 / 共13页
锁相环仿真基于MATLAB.docx_第2页
第2页 / 共13页
锁相环仿真基于MATLAB.docx_第3页
第3页 / 共13页
锁相环仿真基于MATLAB.docx_第4页
第4页 / 共13页
锁相环仿真基于MATLAB.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

锁相环仿真基于MATLAB.docx

《锁相环仿真基于MATLAB.docx》由会员分享,可在线阅读,更多相关《锁相环仿真基于MATLAB.docx(13页珍藏版)》请在冰豆网上搜索。

锁相环仿真基于MATLAB.docx

锁相环仿真基于MATLAB

锁相环仿真

 

1.锁相环的理论分析1.1锁相环的基本组成

锁相环路是一种反馈控制电路,简称锁相环(PLL,Phase-LockedLoop)。

锁相环的特点是:

利用外部输入的参考信号控制环路内部振荡信号的频率和相位。

锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。

锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位

被锁住,这就是锁相环名称的由来。

锁相环通常由鉴相器(PD,PhaseDetector八环路滤波器(LF,LoopFilter)和压控振荡器(VCO,VoltageControlledOscillator)三部分组成,锁相环组成的原理框图如图示:

UD(t)电压信号输出,该信号经低通滤Uc(t),对振荡器输出信号的频率实施

锁相环中的鉴相器又称为相位比较器,它的作用是检测输入信号和输出信号的相位差,并将检测出的相位差信号转换成波器滤波后形成压控振荡器的控制电压控制。

1.2锁相环的工作原理1.2.1鉴相器

X/1

锁相环中的鉴相器(PD通常由模拟乘法器组成,利用模拟乘法器组成的鉴相器电路如图示:

鉴相器的工作原理是:

设外界输入的信号电压和压控振荡

式中的CD0为压控振荡器在输入控制电压为零或为直流电压时的振荡角频率,称为电路的固有振荡角频率。

则模拟乘法器的输出电压UD为:

喘沪劭1(f沟0(f)=疋%%血[叫+耳(胡Cx[qV+恥)]

亠一疋耳J阿[呼+耳W]-[叫+吒②]}

1.2.2低通滤波器低通滤波器(LF)的将上式中的和频分量滤掉,剩下的差频分量作为压控振荡器的输入控制电压Uc(t)。

即Uc(t)为:

心)二-耳SEinf[呼十耳©]-[琢十址②]]

=%泗{(吗-珂"+[包(£)-曲,(£)]}

式中的3i为输入信号的瞬时振荡角频率,0i(t)和0O(t)分别为输入信号和输出信号的瞬时位相,根据相量的关系可得瞬时频率和瞬时位相的关系为:

at

贝U,瞬时相位差0d为

E=⑷-讪+确)・召0®

对两边求微分,可得频差的关系式为

肝』改®-田D址型仇®-恥)1

=+

上式等于零,说明锁相环进入相位锁定的状态,此时输出和输入信号的频率和相位保持恒定不变的状态,Uc(t)为恒定值。

当上式不等于零时,说明锁相环的相位还未锁定,输入信号和输出信号的频率不等,Uc(t)随时间而变。

1.2.3压控振荡器

压控振荡器(VCO的压控特性如图示

上式说明当uc(t)随时间而变时,压控振荡器(VCO的振荡频率3u也随时间而变,锁相环进入“频率牵引”,自动跟踪捕捉输入信号的频率,使锁相环进入锁定的状态,并保持30=3i的状态不变。

2.信号流程图锁相环的原理框图如下:

其工作过程如下:

(1)

(2)

(3)

(4)

(5)

(6)

"•T;l~T阴hjT

压控振荡器的输出Uo经过采集并分频;输出和基准信号同时输入鉴相器;鉴相器通过比较上述两个信号的频率差,然后输出一个直流脉冲电压Ud;

Ud进入到滤波器里面,滤除高频成分后得到信息Ue;

Ue进入到压控震荡器VCO里面,控制频率随输入电压线性地变化;这样经过一个很短的时间,VCO勺输出就会稳定于某一期望值。

3•二阶环仿真源程序代码及仿真结果

%secondintegrator-step1

%secondintegrator-step2%secondintegratoroutput%builddy/dtvector%buildy(t)vector%endofsimulationloop

%plotphaseplane

%labelxaxis

%labelyzxis

w1c=yd+w2c;w2c=yd+w1c;y=w1c/(2*fs);ydv(1,i)=yd;yv(1,i)=y;

end

plot(yv,ydv)xlabel('y(t)')ylabel('dy/dt')%Endofscriptfile.%File:

pllpost.m%kk=0;whilekk==0k=menu('PhaseLockLoopPostprocessor',...

'InputFrequencyandVCOFrequency',...'InputPhaseandVCOPhase',...

'FrequencyError','PhaseError','PhasePlanePlot',...'PhasePlaneandTimeDomainPlots','ExitProgram');ifk==1

plot(t,fin,'k',t,fvco,'k')title('InputFrequencyandVCOFreqeuncy')xlabel('Time-Seconds');ylabel('Frequency-Hertz');pauseelseifk==2

pvco=phin-phierror;plot(t,phin,t,pvco)title('InputPhaseandVCOPhase')xlabel('Time-Seconds');ylabel('Phase-Radians');pauseelseifk==3

plot(t,freqerror);title('FrequencyError')xlabel('Time-Seconds');ylabel('FrequencyError-Hertz');pauseelseifk==4

plot(t,phierror);title('PhaseError')xlabel('Time-Seconds');ylabel('PhaseError-Radians');pauseelseifk==5ppplotelseifk==6

subplot(211);phierrn=phierror/pi;plot(phierrn,freqerror,'k');grid;title('PhasePlanePlot');xlabel('PhaseError/Pi');ylabel('FrequencyError-Hertz');subplot(212)plot(t,fin,'k',t,fvco,'k');gridtitle('InputFrequencyandVCOFreqeuncy')xlabel('Time-Seconds');ylabel('Frequency-Hertz');subplot(111)elseifk==7

%Endofscriptfile.

%besafe

%insertblankline

kk=1;endend%File:

pllpre.m%clearalldisp('')fdel=input('EnterthesizeofthefrequencystepinHertz>');fn=input('EntertheloopnaturalfrequencyinHertz>');lambda=input('Enterlambda,therelativepoleoffset>');disp('')disp('Acceptdefaultvalues:

')disp('zeta=1/sqrt

(2)=0.707,')disp('fs=200*fn,and')disp('tstop=1')dtype=input('Enteryforyesornforno>','s');ifdtype=='y'

zeta=1/sqrt

(2);fs=200*fn;tstop=1;

%

%numberofsimulationpoints%defaulttimevector%setnsettletimeas0.1*npts%settsettle

elsezeta=input('Enterzeta,theloopdampingfactor>');fs=input('EnterthesamplingfrequencyinHertz>');tstop=input('Entertstop,thesimulationruntime>');endnpts=fs*tstop+1;t=(0:

(npts-1))/fs;nsettle=fix(npts/10);tsettle=nsettle/fs;

%Thenexttwolinesestablishtheloopinputfrequencyandphase%deviations.

fin=[zeros(1,nsettle),fdel*ones(1,npts-nsettle)];phin=[zeros(1,nsettle),2*pi*fdel*t(1:

(npts-nsettle))];disp('')%insertblankline

%endofscript

%File:

pll2sin.m

w2b=0;w2c=0;s5=0;phivco=0;%initialize

twopi=2*pi;%define2*pi

twofs=2*fs;%define2*fs

%setfilterparameter

%defineconstants%initializevector

%initializevector

G=2*pi*fn*(zeta+sqrt(zeta*zeta-lambda));%setloopgaina=2*pi*fn/(zeta+sqrt(zeta*zeta-lambda));a1=a*(1-lambda);a2=a*lambda;

phierror=zeros(1,npts);fvco=zeros(1,npts);

%beginningofsimulationloop

end

%buildfrequencyerrorvector

%endofsimulationloopfreqerror=fin-fvco;%Endofscriptfile.function[]=pplane(x,y,nsettle)%Plotsthephaseplanewithphaseintherange(-pi,pi)ln=length(x);maxfreq=max(y);minfreq=min(y);

%Oldfigurediscarded

%Establishscale

%Collectinfofornewfig

closeaxis([-111.1*minfreq1.1*maxfreq]);holdonj=nsettle;whilej

i=1;whilex(j)

endplot(a,b,'k')a=[];b=[];

x=x-2*pi;endholdofftitle('Phase-PlanePlot')xlabel('PhaseError/Pi')

ylabel('FrequencyErrorinHertz')

%Endofscriptfile.

grid

%File:

pppiot.m

%pppIot.misthescriptplottingphaseplaneplots.Ifthe

%phaseplaneisconstrainedto(-pi,pi)pppiot.mcallsppiane.m.kz=0;

whilekz==0

k=menu('PhasePlaneOptions',...

'ExtendedPhasePlane',...

卩hasePlanemod(2pi儿…

'ExitPhasePlaneMenu');

ifk==1

phierrn=phierrn/pi;

plot(phierrn,freqerror,'k')title('PhasePlanePlot')xlabel('PhaseError/Pi')ylabel('FrequencyError-Hertz')gridpause

elseifk==2

pplane(phierrn,freqerror,nsettle+1)

pause

elseifk==3kz=1;

end

end%Endofscriptfile.

3.

ExtendedPhasePlane

2仿真结果:

PhaseLockLoopPostproc^fsor

InputFrc口ucnc-i^aiidVLUtrcquenci^

llq|"Uhrlid\^OPl

Frequei-icvErrotf

PlTeseError

I'has#Plji-icPHrt

Ph抄ePlanemad(2pl)

FJiRiT>inr|Tim^riom^inPlnli

ExitPhasePlaneMenu

 

E>ilRrngrrtm

G=30时的仿真图形:

Acceptthetentativevalues:

输入环路增益为

thefirstloopfrequencyis5Enteryforyesornforno>yEntertheloopgain>3030

EnterthesamplingfrequencyinHertz>1200

SiHAZZ谭器七

V

iDIUSmbOFWmflSturdi

III冋Frtqu叮门rid冷8h“匕山门0

频率差图

D$B5■貞丿/-

脚亡FrMMM护dV2CIF:

电抽_1曰

«

311

3)

in

npf(

■3

ns

T3?

245j5

IfTirS就汕魄

VGD

■Hl

IJD

y

BD

ID

D

30

JD

TfT-r-決"TIEh

Z

CHTimSerancE

z

In^Ul

QDi

u

n

朗刊mH蛊工N匸山&l>a

Mu芒■AUEnL严」

□(fedm隹汀

DEH占卡A#八富吕"•

相平面图

输入相位和vco相位图

Fliab*CkJ

相位差图

321u订卫¥上■占二3b£

455

ClOiObQ.rObTlrnp-SBQiPriE

<<<*1f1

A

1(1

i

1

A*

 

G=40时的仿真图形:

Acceptthetentativevalues:

thefirstloopfrequencyis5Enteryforyesornforno>yEntertheloopgain>40益为40

EnterthesamplingfrequencyinHertz>1200

Entertstop,thesimulationruntime>5仿真时间为5

输入环路增

相平面图

输入频率和VCO频率图

*:

冲$;、';T中•:

>J:

■总八Z:

■_.>

DiTii甘I厂i;•/Ek

相位差图

■a

D

PtawFlarrFlit

\4

,十.

\\\

…Xvji

1VK

■;—

;i\

oft0(0忖32[OS0}

P貝診(Eiii>Fl

036

aAz'Z

FtitB&1I0I

010:

050#财06馆

Tira=场

%D1

4----署丄一二hi*i亠

频率差图

.'rxvitil1

□3^B4kA/#|淨用"

»a

Sr-JeuuJ

wo

FtfqiitrcjErrai

 

输入频率和vco频率图

输入相位和VCO相位图

■piFft^ercymJVCDFreqeuncf

0102091405l.bor00

Trw・SKcndt

nXn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1