- AVR单片机与传感器基础
- 鲁长宏 冯璐
- 3776字
- 2021-03-05 10:46:52
1.2 两个简单的仿真电路实例
ISIS可以仿真模拟电路、数字电路和多种型号单片机,并带有多种虚拟仪器,可帮助电路的仿真和调试。下面我们就搭建一个比较简单的模拟电路,并进行仿真调试,以此来开始学习ISIS软件的使用。
启动ISIS软件后,单击“File”→“New Design”命令,弹出一个界面,可选择不同模板来进行电路设计与仿真。不同模板只是设置和显示信息有所不同,对仿真没有本质影响,所以选第一个“DEFAULT”即可。进入主界面后,单击元器件选择窗口上面的“P”按钮,将会弹出如图1.2所示的元器件选择对话框,其结构和各部分名称如图所示。
图1.2 元器件选择对话框
选择元器件可以有两种途径。如果知道元器件在库中的名称,可以直接在“Keywords”栏中输入名称,ISIS将把所有符合名称的元器件及其所属库都显示出来。如果不知道元器件在库中的准确名称,则只能根据分类来查找。ISIS软件的元器件分类库中各项的名称和含义如下:
Analog ICs:模拟集成电路芯片,它有8个子类;
Capacitors:电容,共有23个子类,其中Animated子类为动态仿真电容;
CMOS 4000series:CMOS 4000系列电路芯片,共有16个子类;
Connectors:连接器,共有8个子类;
Data Converters:数据转换器,共有4个子类;
Debugging Tools:调试工具,共有3个子类;
Diodes:二极管,共有8个子类;
Inductors:电感,共有3个子类;
Laplace Primitives:拉普拉斯模型,共有7个子类;
Memory ICs:存储器芯片,共有7个子类;
Microprocessor ICs:微处理器芯片,共有13个子类,包括8051和AVR系列;
Miscellaneous:杂项元器件;
Modeling Primitives:建模源,共有9个子类;
Operational Amplifiers:运算放大器,共有7个子类;
Optoelectronics:光电元器件,共有11个子类;
Resistors:电阻,共有11个子类,其中Generic为通用电阻;
Simulator Primitives:仿真源,共有3个子类;
Switches and Relays:开关和继电器,共有4个子类;
Switching Devices:开关元器件,共有4个子类;
Thermionic Valves:热离子真空管,共有4个子类;
Transducers:传感器,共有2个子类;
Transistors:晶体管,共有8个子类;
TTL 74系列集成电路系列:包括不同特性系列及多个子类。
在此界面中,根据Category—Sub_category—Device—Library,双击选中的元器件,此器件就会被调入主界面中的元器件选择窗口。此例中我们需要的元器件如下:
灯泡:Optoelectronics—Lamps—LAMP—ACTIVE;
发光二极管:Optoelectronics—LEDs—LED_GREEN—ACTIVE;
电池:Miscellaneous—BATTERY;
电位器:Resistors—Variable—POT_HG—ACTIVE;
保险丝:Miscellaneous—FUSE—ACTIVE;
电阻:Resistors—Generic—RES—DEVICE。
返回主界面,在元器件选择窗口中单击选中的各个元器件,然后分别在电路图编辑窗口中适当位置单击,即可放置好仿真所需要的元器件,软件会自动给放置的元器件起好名字。调整好元器件的位置,然后在各个元器件的接线端单击,可把各个元器件之间的导线连接好,如图1.3所示。注意两个元器件的引脚不能直接连在一起,引脚之间必须用导线连接。
图1.3 第一个仿真电路
此仿真电路的作用有两个,一是分析和观察灯泡及发光二极管的亮度随电压和电流的变化情况,二是观察干路电流超过保险丝的额定值时,保险丝熔断情况。线路连接好后即可单击“运行”按钮,开始仿真。但由于初始元器件参数不合适及不能直观查看电流和电压,仿真效果不明显。但双击每个元器件,都可以查看和更改其参数。我们将各个元器件参数更改如下:电池组电压由9V改为15V,电位器阻值不变,电阻R1阻值由10kΩ改为1.28kΩ,灯泡内阻24Ω不变,发光二极管管压降2.2V不变,保险丝额定电流1A暂时不变。点选工具箱中电压和电流探针,在如图1.4中所示位置分别添加2个电压探针和3个电流探针。在电池组的负极添加一个接地符号,使电压探针测得的电压是相对于地的值。注意电流探针的尖头最好要顺着电路中电流方向。
图1.4 改参数后第一个仿真电路
此时,单击“运行”按钮。单击电位器,左右移动滑动端,通过改变电位器的电阻值,观察电流和电压的变化,以及灯泡和发光二极管的亮度随电压和电流的变化。当电位器滑动端在最左端(0%)时,D1支路电流理论值应为:(15-2.2)/1.28kΩ=10mA,而灯泡支路电流应为:15/24=0.625A。此时,干路电流最大值约为0.63A,没超过保险丝的额定值,所以工作正常。停止仿真,双击保险丝,将其额定电流修改为0.5A。先将电位器滑动端移到中间,然后单击“运行”按钮。慢慢左移电位器滑动端,同时观察干路电流变化,当超过0.5A时,保险丝熔断,灯泡和发光二极管熄灭。
ISIS还可以直观显示电路中电流的实时流动方向和各部分电路电压的相对大小。停止运行,单击“System”→“Set Animation Options”菜单命令,在弹出窗口中将“Show Wire Voltage by Color? ”和“Show Wire Current with Arrows? ”后面的“√”点上,再运行,即可看到动态效果。另外,单击“Template”→“Set Design Defaults”菜单命令,将“Show hidden text? ”后面的“√”去掉,从而将每个元器件的text属性隐藏,让电路更整洁。
下面再介绍一个稍微复杂一点的模拟仿真电路:非线性蔡氏混沌电路。典型的蔡氏电路如图1.5所示,它由3个部分构成:LC2振荡电路,RC1移相电路和NR非线性负阻电路。根据欧姆定律,可以得到蔡氏电路工作时的状态方程为:
图1.5 蔡氏电路
式中,为C1(或负阻NR)两端的电压;为C2(或L)两端的电压;iL为通过L的电流;G为可调电阻R的电导;g为非线性负阻NR的电导。
实验电路中L、C1、C2、R均为线性器件,只有NR为非线性负阻器件,NR也是产生混沌现象的关键器件。阻值为负的电阻元件并不存在,所谓负阻,是指元件两端动态的电压和电流比值为负值。NR的实现可以有多种途径,常用且比较简单的方法是:使用两个运算放大器和6个电阻来构成一个非线性负阻电路,其电路如图1.6所示。其中每个运算放大器和3个电阻各构成一个负阻电路,两个负阻电路并联构成了非线性负阻电路。根据运算放大器的线性工作原理,按图1.6中各电阻的取值,可以推出从运算放大器正输入端看进去对地的电阻值。再考虑到运算放大器输出的饱和情况,可以得到每个负阻电路和并联后非线性负阻电路的U-I特性曲线,如图1.7所示,图中横轴电压U和纵轴电流I、I1和I2如图1.6所示。从图1.7中可以看出,两个运算放大器构成的负阻电路的U-I特性曲线都分为三段,中间段为线性负阻特性,而左右两段为线性正常电阻特性。由于电阻阻值的选择,I1的负阻区域约为±2V,而I2的负阻区域约为±11V。要注意的是I1和I2的负阻特性都是线性的,但是二者并联之后负阻变成了分段线性,总体非线性。I总体分为5段,两端由于运算放大器输出饱和形成了两段正常电阻特性区间,中间是分段线性、总体非线性的三段负阻区间,并且负阻区间的大小和I2相同。这总体非线性的负阻正是产生混沌现象的重要因素。此外,我们知道,LC并联电路可以和负阻构成负阻振荡器。一般来说,正常的电阻消耗能量,而负阻则可以看作是向外提供能量,用来维持LC振荡所消耗的能量。
图1.6 非线性负阻电路
图1.7 非线性负阻U-I特性曲线
本实验的完整仿真电路如图1.8所示。它所用到的元件清单如下:
图1.8 仿真电路
电位器:Resistors—Variable—POT_HG-ACTIVE,总阻值按图中修改;
电阻:Resistors—Generic—RES—DEVICE,阻值按图中修改;
电容:Capacitors—Generic—CAP—DEVICE,电容值按图中修改;
电感:Inductors—Generic—INDUCTOR—DEVICE,电感值按图中修改;
运算放大器:Oprational Amplifiers—Dual—TL082—OPAMP。
我们研究某一个物理量的时候,可以观察它随时间变化的关系(时域),也可以分析它的频率成分(频域),还可以分析它和另一个量之间相位的变化关系(相图)。将电路中O1和O2输出送给示波器,并使示波器工作于X-Y模式,观察这两路电压信号之间的相位关系。
仿真时,要将图中两个运算放大器电源引脚(8和4)加上±15V电源。将电位器R的阻值调到最大值,慢慢连续减小R的阻值,示波器屏幕上将依次出现如图1.9所示的从左到右的相图,请自行分析这些相图所反映的物理规律。
图1.9 倍周期与混沌吸引子相图
(a)一倍周期;(b)两倍周期;(c)四倍周期;(d)阵发混沌;(e)三倍周期;(f)单吸引子;(g)双吸引子
另外,请自行完成下面两个内容:
用“Graph Mode”按钮中的“DC SWEEP”功能得到图1.7所示非线性负阻U-I特性曲线。
用示波器观察图1.8中O1和O2两路电压信号随R变化的时域图。
ISIS的其他元器件及其功能,我们将在单片机的仿真电路中继续学习。
“DC SWEEP”提示:
ISIS的“Graph Mode”按钮中提供了很多的图表曲线功能,可以帮助分析电路中某些物理量随参数变化的关系。其中的“DC SWEEP”就特别适合分析图1.6的负阻电路,要用其得到图1.7所示的输入电压U和电流I、I1、I2的关系曲线,需要如下操作:
(1)首先在“Graph Mode”按钮中选中“DC SWEEP”项,然后在编辑窗口中拖拽出适当大小的DC SWEEP图表。DC SWEEP图表的作用是让电路中的某个自变量和X轴相关联,让一个或多个因变量和Y轴相关联,然后让X轴自变量在一定范围内单调变化,从而得到自变量和因变量之间的关系曲线。
(2)在“Generator Mode”按钮中选中“DC”项,在图1.6中电压U的上输入端点处添加一个直流电压激励源。双击添加的直流电压激励源,弹出属性窗口,选中下面的“Manual Edits”选项,然后右边会出现“Properties”输入框,在其中输入“VALUE=X”,这将使负阻电路的输入电压,也就是激励源电压和DC SWEEP图表的X轴数值关联在一起。
(3)在电路中I、I1、I2处添加3个电流探针并分别命名,注意探针箭头要和电流方向一致。分别选中3个电流探针,然后把它们逐个拖进DC SWEEP图表,图表纵轴将显示出3个电流探针的名字,这使得3个电流值和Y轴相关联。在添加完电流探针后,也可以在图表上右键单击,在弹出的菜单中选择“Add Traces…”来添加Y轴的各个被测量。
(4)左键双击图表弹出属性窗口,注意“Sweep variable”为X,扫描变量X已经和直流激励源电压值相关联了。扫描变量X的“Start value”改为“-14”,“Stop value”改为“14”,“No steps”改为“1000”。然后单击“OK”按钮退出。
最后单击“Graph”菜单下的“Simulate Graph”命令,即可绘出负阻电路输入电压U和电流I、I1、I2之间的关系曲线。如果想改变曲线颜色和背景色,可以在“Template”菜单下选择“Set Graph Colors…”来进行设置。