DSP_实验5_二阶状态轨迹的显示

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

武汉大学教学实验报告电子信息学院通信工程专业2015年_9月17日实验名称二阶状态轨迹的显示指导教师卢昕姓名莫帮杰年级2013学号2013301200227成绩一、预习部分1.实验目的2.实验基本原理3.主要仪器设备(含必要的元器件、工具)一、实验目的1.熟悉二阶连续时间系统状态轨迹的概念。2.掌握连续时间系统冲激响应、阶跃响应的求解方法。3.观察过阻尼,欠阻尼,临界阻尼情况下,RLC电路的状态轨迹。二、实验基本原理系统数学模型的描述方法有输入输出描述法和状态变量分析法。在输入输出描述法中,主要建立系统的输入(激励)与系统的输出(响应)之间的关系,不关心系统内部的变化情况。在状态变量分析法中,需在先确定状态变量后,建立描述系统状态变量与输入之间的关系(状态方程),以及建立系统输出变量与系统状态变量及系统输入之间的关系(输出方程),这种分析法不仅能反映输入与输出的关系,而且能了解系统内部的变化过程。在状态变量分析法中,状态变量是建立状态方程和输出方程的关键变量,是能描述系统动态特性的一组独立完备的变量。对于一个二阶系统,则可以用两个状态变量来描述系统的动态特性,这两个状态变量构成的列矢量称为状态矢量,以这两个状态变量为坐标轴而形成的空间称为二维状态空间。在状态空间中状态矢量端点随时间变化而描述出的路径为状态轨迹。因此状态轨迹对应系统在不同时刻,不同条件下的状态,知道了某段时间内的状态轨迹,则系统在该时间内的变化过程也就知道了,所以二阶状态轨迹的描述方法是一种在几何平面上研究系统动态性能(包括稳定性在内)的方法。用计算机模拟二阶状态轨迹的显示,方法简单直观,且能很方便观察电路参数变化时,状态轨迹的变化规律。三、主要仪器设备MATLAB(软件)1.MATLAB图形用户界面(GUI)设计利用MATLAB图形用户界面工具设计修改RLC电路参数及显示RLC电路二阶状态轨迹的界面;并用程序控制界面中的控件,显示RLC电路的二阶状态轨迹。2.ss函数功能:建立系统状态空间模型。调用格式:sys=ss(a,b,c,d)其中,a,b,c,d为状态方程和输出方程的矩阵,sys为建立的状态空间模型。4.step函数功能:求线性时不变系统的阶跃响应。调用格式:y=step(sys,t)其中,y为系统的阶跃响应,sys为系统的状态空间模型。5.axes函数功能:设置当前轴。调用格式:axes(h)其中,h为已存在轴的句柄二、实验操作部分1.实验数据、表格及数据处理2.实验操作过程(可用图表示)3.实验结论一、实验过程1.验证性实验图1所示为RLC电路,可看作一个二阶连续时间系统。对于该二阶系统,若要用状态变量分析来描述该系统的数学模型,可选用i𝑙(𝑡)和v𝑐(𝑡)作为状态变量,这两个状态变量所形成的空间称为状态空间。在状态空间中,状态矢量随时间变化而描出的路径叫状态轨迹。本实验将利用计算机模拟该系统的状态轨迹,实验步骤如下:(a)在MATLAB命令窗口重输入“guide”,启动GUI。(b)利用GUI编辑如下所示界面,并将其保存为lrc.fig文件。(c)运行GUI,并生成lrc.m文件。(d)选中GUIDE界面中“显示状态轨迹”按钮,点击右键选择菜单上的“查看回调”,选择Callback,进入该按钮的回调函数部分。(e)在“显示状态轨迹”的回调函数部分编写以下控件代码:%“显示状态轨迹”按钮回调函数functionpushbutton1_Callback(hObject,eventdata,handles)t=0:0.1:100;%从界面上获取电路参数R=str2num(get(handles.edit1,'string'));L=str2num(get(handles.edit2,'string'));C=str2num(get(handles.edit3,'string'));%若系统以i𝐿(𝑡),v𝐶(𝑡)为响应,以e(t)为激励,%确定系统状态方程和输出方程中的a,b,c,d矩阵a=[-R/L-1/L;1/C0];b=[1/L;0];c=[10;01];d=[0];sys=ss(a,b,c,d);%建立系统状态空间模型Response=step(sys,t);%求系统的阶跃响应axes(handles.axes1);plot(t,Response(:,1),'b-','linewidth',3);%显示i𝐿(𝑡)ylabel('il(t)','fontsize',14)axes(handles.axes2);plot(t,Response(:,2),'r-','linewidth',3);%显示v𝐶(𝑡)ylabel('vc(t)','fontsize',14)axes(handles.axes3);plot(Response(:,2),Response(:,1),'linewidth',3);%显示状态轨迹xlabel('vc(t)','fontsize',14)ylabel('il(t)','fontsize',14)%判断系统的阻尼状态alph=R/(2*L);%衰减因数omega=1/sqrt(L*C);%谐振频率if(R==0)str='无阻尼';elseif(alphomega)str='过阻尼';endif(alph==omega)str='临界阻尼';endif(alphomega)str='欠阻尼';endendset(handles.text1,'string',str);(f)保存并运行lrc.m文件代码。(g)输入参数R=0,L=1,C=1,点击“显示状态轨迹”按钮,可得到以下状态轨迹图(无阻尼)。(h)输入参数R=0.2,L=1,C=1,点击“显示状态轨迹”按钮,可得到以下状态轨迹图(欠阻尼)。(i)输入参数R=1,L=1,C=4,点击“显示状态轨迹”按钮,可得到以下状态轨迹图(临界阻尼)。(j)输入参数R=2,L=1,C=4,点击“显示状态轨迹”按钮,可得到以下状态轨迹图(过阻尼)。2.程序设计实验已知某系统的系统函数为若系统起始状态为零,在激励信号为e(t)=δ(t)情况下,画出该系统的状态轨迹。实验步骤:(a)利用GUI设计器设计如下界面,并保存为hs.fig文件。(b)右击“显示状态轨迹”按钮-查看回调-Callback,找到该按钮的回调函数部分。(c)在hs.m文件中编写以下回调响应代码:functionpushbutton1_Callback(hObject,eventdata,handles)t=0:0.1:8;%从界面上获取系统参数NUM=str2num(get(handles.edit1,'string'));DEN=str2num(get(handles.edit2,'string'));[a,b,c,d]=tf2ss(NUM,DEN);sys=ss(a,b,c,d);%计算系统状态空间模型Response=impulse(sys,t);%求系统的冲击响应axes(handles.axes1);plot(t,Response(:,1),'linewidth',3);%显示状态轨迹ylabel('r(t)');(d)运行hs.m文件中的代码,可看到输入框中已预置参数[1,3],[1,3,2]。(e)点击“显示状态轨迹”按钮,在上图坐标中绘制所给参数下系统的状态轨迹图(如下)。二、实验结论1、在无阻尼情况下(R=0),系统无能量损耗,能量将以电场能和磁场能的形式在电容和电感之间来回转化,在𝑖𝐿和𝑣𝐶上的时域图像上表现为等幅振荡,在状态图上的表现为一条闭合的圆滑曲线(椭圆)。2、在欠阻尼情况下(衰减因数alph=R/(2*L)和谐振频率omega=1/sqrt(L*C)满足alphaomega),系统的能量损耗较慢,在维持若干周期的衰减振荡之后趋于平稳状态,状态矢量也在几个周期的螺旋变化之后趋于稳定。3、在临界阻尼情况下(衰减因数alph=R/(2*L)和谐振频率omega=1/sqrt(L*C)满足alpha=omega),系统刚好不能完成周期能量转化而又能最快回到平衡位置(d)在过阻尼情况下(衰减因数alph=R/(2*L)和谐振频率omega=1/sqrt(L*C)满足alphaomega),系统将不能完成周期能量转化,而慢慢回到平衡位置。三、思考题连续时间系统状态方程的求解方法。1、拉普拉斯变换法2、时域法四、实验效果分析(包括仪器设备等使用效果)本次试验中实现了使用MATLAB来绘制二阶系统的状态轨迹图,加深了对无阻尼、欠阻尼、临界阻尼、过阻尼等概念的理解,形成了将物理过程抽象成数学模型,再将模型演绎成物理过程的思维方式,增强了分析问题的逻辑性与层次性。MATLAB强大的数学处理能力使我意识到,掌握一个好的数学工具能让我们在解决工程或技术问题上事半功倍,但是要想将这样强大的工具的作用发挥到极致,自己还需要花一定的功夫去不断地学习、实践和练习。五、教师评语指导教师年月日

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功