正弦稳态电路的MATLAB分析
【关键词】 :MATLAB 正弦稳态电路 电路分析方法
图1-2
(三)节点电位法
以例1-1为例用节点电压法解题如下: 解:
这是一个交流稳态电路,对两个独立结点列结点电压方程:
其中: ,
【例2-1】在Simulink中构建模型:对一个正弦波信号进行积分处理,然后将原始正弦信号和积分后的信号送到示波器中同时显示相互来。
图2-2 Simulink仿真简例
4)保存模型文件,执行主菜单“File”/“Save as”命令,将文件命名为“exm3_1_1.mdl”后保存。
5)执行主菜单“Simulink”/“Start”命令或单击工具栏上的“”图标,开始仿真。
快捷键为【Ctrl+T】。
6)Simulink默认的仿真时间是10s(注意这并不是实际流逝的时间),结果仿真后,双击Scope模块,可以看到仿真结果如图2-3所示。
图2-3 示波器输出的仿真结果
在图2-3所示的示波器输出图形中,黄线代表Sine Wave信源产生的正弦波形,紫线表示的是正弦波积分后的输出波形。
下面对该模块库的3个常用模块进行介绍。 1)Sine Wave模块
Sine Wave模块库中的模块很大一部分都是根据用户设定的参数来直接生成信号,比如Sine Wave模块。双击Sine Wave模块,在弹出窗口中可以调整相关参数。信号生成方式有两种:Tine based和Sample based。 如果以Time based方式运行该模块,则需要用户设定波形的幅度(Amplitude)、偏移(Bias)、频率(Frequency)、初相(Phase)几个参数;如果选择Sample based方式,参数设置则为幅度(Amplitude)、偏移(Bias)、每周期采样数(Samples per period)和偏移采样数(Number of offsetsamples),两种工作方式中的各项参数都可以用关系式加以换算:每周期采样数=2*pi/(频率*采样时间);偏移采样数=初相*每周期采样数/(2*pi)。还有一个参数设置是采样时间(Sample time),当将此参数设定为零时表示以连续的方式工作,当将此参数设置为大于零的值时则以所采样时间工作。但要注意的是采用Sample time模式的模块是不能以连续的方式工作的。
下面以图2-4(a)所示的仿真模型为例介绍Sine Wave模块的使用方法。在各模块的参数设置对话框设置各模块参数:
● Scope模块保持默认设置。
● SineWave模块:Sinetype参数设为Timebased方式,Amplitude=1,Bias=0,Frequency=0.5*pi,Phase=0,Sample time=0。 仿真模型输出结果如图2-4(b)所示。
(a) (b) 图2-4 直接利用信源模块获取输入信号
(a)Sine Wave模块的使用实例;(b)Sine Wave模块产生的信号 2)From Workspace模块
From Workspace模块可以从工作空间中读取数据作为输入信号。双击From Workspace模块,将弹出模块参数设置窗口。在“Data”文本框中填写从工作空间的哪个变量中读取数据,“Sample time”设置采样时间。
注意“Data”文本框中填写的变量必须包含信号的时间信息,比如该变量可以是一
个 n x 2的矩阵,第一列给出了n个时刻值,第二列给出了对应这些时刻的信号值。显然,能够给出的时刻值是有限的,在这些时刻之外,From Workspace模块的输出信号是什么呢?这又有两种情况。假设已经给出的时刻值包括了从1,2,…,10个值,那么在1s和2s之间模块的输出信号由“Interpolate date”复选框是否选中决定,若选中,这段时间模块的输出信号采用线性内插的方法来决定;否则,模块的输出信号将保持前一个给出了信号值的时刻的值。还有一点需要考虑的是第10s后模块的输出信号又怎么确定呢?这些时间的信号由“From output after final data value by”下拉菜单来决定。如果在此下拉菜单中选择“SettingToZero”,那么这段时间模块输出信号只是简单地置为0;如果选择“HoldingFinalValue”,那么信号将保持前一个有值的时刻的信号值。还可以采用外推的方法得到这些值,这时不仅要选中“Extrapolate”,而且还要保证“Interpolate date”复选框是选中的;最后一种方法就是让信号循环出现,这时应该选择“CyclicRepetition”,并且不能选定“Interpolate date”复选框。
下面通过实例说明From Workspace模块的应用。搭建如图2-5的仿真模型,在各模块的参数设置对话框设置各模块参数: ●Scope模块仍然保持默认设置。 ●From Workspace模块的参数“From output after final data value by”选中Setting to zero,其余保持默认设置。 接下来编辑如下M文件:
function Sin_signal=Sin_signal(A,Bias,W,Phase,t0,te,n) t=linspace(t0,te,n);
Data=A*sin(W*t+Phase)+Bias; Sin_signal=[t’Data’];
将它保存在MATLAB的work目录下,在指令窗中键入如下指令: >>simin=Sin_signal=(1,0,0.5*pi,0,0,8,100)