利用Matlab分析运算放大器电路要点.docx
《利用Matlab分析运算放大器电路要点.docx》由会员分享,可在线阅读,更多相关《利用Matlab分析运算放大器电路要点.docx(12页珍藏版)》请在冰豆网上搜索。
![利用Matlab分析运算放大器电路要点.docx](https://file1.bdocx.com/fileroot1/2023-7/2/46738e2e-c3b4-4020-90f5-e2e51f0709e9/46738e2e-c3b4-4020-90f5-e2e51f0709e91.gif)
利用Matlab分析运算放大器电路要点
能力拓展训练任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
利用Matlab分析运算放大器电路
初始条件:
1Matlab软件6.3以上版本
2运算放大器等效电路
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.题目内容:
2.课程设计说明书应包括:
a)设计任务及要求
b)方案比较及认证
c)程序设计基本思想,程序流程图,部分源程序及注解
d)调试记录及结果分析
e)参考资料
f)附录:
全部源程序清单
g)总结
时间安排:
2013年选题、查阅资料和方案设计
2013年编程
2013年调试程序,改进与提高
2013年撰写设计报告(有调试过程及结果的截屏)
2013年答辩和交课程设计报告
指导教师签名:
2013年月日
系主任(或责任教师)签名:
年月日
目录
1前言1
2系统分析2
2.1任务及要求2
2.2分析与计算2
2.2.1电路频率响应分析2
2.2.2自激分析3
3编程和仿真4
4仿真结果与分析5
5小结7
6心得体会8
参考文献9
附录10
1前言
matlab是一种科学计算软件,在数学类科技应用软件中在数值计算方面首屈一指。
它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
而且的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
由于它使用方便,输入简捷,运算高效,内容丰富等特点,并且很容易由用户自行扩展,因此,matlab现已成为国外发达国家大学教学和科学研究中必不可少的工具。
集成电路运算放大器是一种高电压增益、高输入电阻和低输出电阻的多级直接耦合放大电路。
不管用什么方法求解电压增益和频率响应都是一个棘手的事,尤其对自激现象的调整更为困难。
但是,有了MATLAB强大的工具,使运算放大电路的相关问题处理中变得相当直观、容易了。
本文用拉氏变换法通过matlab的编程和函数调用求出电路的增益、频率响应和自激现象的模拟,通过响应曲线的比较,可方便的实现运算放大器的输出参数的调试。
对运算放大电路的求解,采用拉普拉斯变换的方法,利用matlab提供的poly、ployval、gtext语句及semilogx函数对运算放大器进行处理,绘出相应曲线。
2系统分析
2.1任务及要求
利用Matlab工具分析运算放大器开环增益和频率响应对整个电路闭环频率响应的影响,绘出闭环频率响应图,通过试验分析运算放大器的自激现象。
运算放大器等效电路如图2-1。
2.2分析与计算
2.2.1电路频率响应分析
设运算放大器的开环增益为A,它是频率的函数,则在图示的连接方法下,闭环输出与输入电压之比为:
如果增益A很大,上式分母可近似等于1,进而得到理想运放的闭环传递函数:
根据题意,要考虑A=A(ω)对H(ω)的影响,计算将十分复杂,利用MATLAB可以方便快速地解决这个问题,但必须给出具体数据。
通常,运算放大器的开环传递函数中包括3个实极点,即
其中,
,
为直流增益。
2.2.2自激分析
自激现象:
输入信号为零时,输出有一定幅值、一定频率的信号,称电路产生了自激振荡。
自激原因:
负反馈放大电路自激振荡的频率在低频段或高频段。
在低频段或高频段,若存在一个频率
,且当
时附加相移为±π,则对于
的信号,净输入量是输入量与反馈量之和。
在电扰动下,如合闸通电,必含有频率为
的信号,对于
的信号,产生正反馈过程。
输出量逐渐增大,直至达到动态平衡,电路产生了自激振荡。
3编程和仿真
考虑到运算放大器的性质可由图形清楚地表示出来,可试用图形来表示结果。
如果产生自激现象,将在图像上清楚地反映出来,这样便能从整体上把握运算放大器的性质。
现用Matlab分析一个运算放大器电路的开环增益和频率响应对整个电路闭环频率响应的影响。
由于用Matlab仿真时必须给出具体数据。
现设
,
,
,
;并设
,
取3种值:
,
,
,求其
并绘出曲线。
则其程序如下:
Z1=2000;
Z2=[20,100,500]*1000;%设置元件参数
A0=2e6;w1=1000;w2=3e6;w3=5e7;
w=logspace(2,8);%设定频率数组
b=A0*w1*w2*w3;
a=poly([-w1,-w2,-w3]);%列出运算放大器分子分母系数向量
A=polyval(b,j*w)./polyval(a,j*w);%求放大器开环频率响应
fori=1:
3
Z12(i)=Z2(i)/Z1;
H(i,:
)=-Z12(i)./(1+(1+Z12(i))./A);%求放大器闭环响应
semilogx(w,abs(H(i,:
))),holdon%画出频率-增益曲线
end
v=axis;axis(v);%保持w坐标
semilogx(w,abs(A))
holdoff
gtext('Z2=20k')
gtext('Z2=100k')
gtext('Z2=500k')
gtext('开环增益')
gtext('角频率')
gtext('增益abs(H)')
4仿真结果与分析
运行程序得到图4-1。
图4-1
由图3-1可以看出,运放在低频区较宽的一个频带里具有平坦的增益
;在高频区里出现了谐振峰,这容易造成运算放大器的自激现象。
可以采取如下方法进行消除:
减小
,或增加
和
,而
和
由运算放大器本身性能决定,因此,在放大器已选定的情况下,通常只能用加消振电容的方法减小
。
在试着改变
的值并修改程序,运行后可得到以下结果:
时的响应曲线如图3-2。
时的响应曲线如图3-3。
图4-2
图4-3
由以上两图可看出,随着
的减小,自激现象出现的几率和幅度也越来越小;同时,从响应曲线还可以得出不同阻抗下开环增益的变化规律。
总之,
越大,越容易造成运算放大器的自激现象。
消除自激可以通过减小
,或增大
、
来实现,在放大器已选定的情况下通常只能用加消振电容的方法减小
。
5小结
运用matlab或simulink解决问题,首先应建立模型,然后才能将模型输入软件进行仿真儿得到结果。
所以,建立正确的模型是很重要的。
就如本题中理清题意后,需利用相关理论知识建立数学模型,再将数学模型转化为能输入该软件的程序,即编程。
所以编程也是需要在建好数学模型的基础上才能完成的。
在输入程序的过程中应耐心自习,以避免出现错误检查起来更麻烦。
最后,对仿真结果的分析是,需要结合理论知识,进行对比和补充,这样得到的结果才更有说服力。
6心得体会
这次的基础强化训练,我们组一共四人,共同探讨研究了用Matlab来对运算放大器电路进行分析这一课题。
运算放大器是电子电路中经常用到的一个重要元件,它在很多电路中都起到了重要作用因此,对其工作时的现象进行分析是很有必要的。
在初看这题很简单的情况下,我们以为会很轻松地完成任务但事实并非如此。
一者,对于运算放大器的基本知识,我们并不如想象中那么熟悉,也许是在当初学习的时候就没有完全掌握;二者对于Matlab这款功能强大的软件,我们虽然经常听说,但实际上自己学到和用到的非常之少,以至于初用时就显得捉襟见肘了。
这次基础训练让我认识到学好平时老师教的每一点内容都是很重要的,我不应该在学习上马虎敷衍,那是在欺骗自己而已。
所以,今后我一定要认真听讲,对老师讲的知识加以重视,还要认真对待自己的学习,为之后打下坚实的基础。
另外学习软件也是一个非常艰难的过程,需要一边学习一边操作,于是只能整天的呆在电脑前,想尽办法学会这个软件。
最难的就是写程序这一部分了,对于一个陌生的软件,还有它独有的语言,这就是一道很大的坎。
但最终,经过不断地摸索借鉴,基本完成了这次训练所需要的程序部分,结果还是挺令人欣慰的。
总之,这是一次意义及其深刻的基础强化训练。
通过这次训练,我认识到自己的缺点与不足,还学习了一个非常强大实用的软件,这是很令人兴奋的。
虽然在过程中遇到了种种困难,但这也就是人生的一部分吧。
克服困难,战胜逆境,这之后就是令人畅怀的愉悦了。
参考文献
[1]康华光,《电子技术基础:
模拟部分》,北京:
高等教育出版社,2001.
[2]薛定宇,《科学运算语言MATLAB5.3程序设计与应用》,北京:
清华大学出版社,2000.
[3]张志涌,《精通MatlabR2011a》北京:
北京航空航天大学出版社,2011
[4]邱关源,《电路》,北京:
高等教育出版社,2000.
[5]BruceCarterRonMancini,OpAmpsForEveryone,Elsevier(Singapore)PteLtd,2010.
附录
Z1=2000;
Z2=[20,100,500]*1000;%设置元件参数
A0=2e6;w1=1000;w2=3e6;w3=5e7;
w=logspace(2,8);%设定频率数组
b=A0*w1*w2*w3;
a=poly([-w1,-w2,-w3]);%列出运算放大器分子分母系数向量
A=polyval(b,j*w)./polyval(a,j*w);%求放大器开环频率响应
fori=1:
3
Z12(i)=Z2(i)/Z1;
H(i,:
)=-Z12(i)./(1+(1+Z12(i))./A);%求放大器闭环响应
semilogx(w,abs(H(i,:
))),holdon%画出频率-增益曲线
end
v=axis;axis(v);%保持w坐标
semilogx(w,abs(A))
holdoff
gtext('Z2=20k')
gtext('Z2=100k')
gtext('Z2=500k')
gtext('开环增益')
gtext('角频率')
gtext('增益abs(H)')