离散时间系统的状态空间描述.docx
- 文档编号:12473902
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:16
- 大小:97.49KB
离散时间系统的状态空间描述.docx
《离散时间系统的状态空间描述.docx》由会员分享,可在线阅读,更多相关《离散时间系统的状态空间描述.docx(16页珍藏版)》请在冰豆网上搜索。
离散时间系统的状态空间描述
燕山大学
课程设计说明书
题目:
离散时间系统的状态空间描述
学院(系):
电气工程学院
年级专业:
_11级精仪1班
学号:
110103020058
学生姓名:
指导教师:
教师职称:
电气工程学院《课程设计》任务书
课程名称:
数字信号处理课程设计
基层教学单位:
仪器科学与工程系指导教师:
学号
110103020058
学生姓名
李松
(专业)班级
11精仪一班
设计题目
19离散时间系统的状态空间描述
设
计
技
术
参
数
已知LSI系统:
1:
求其状态方程与输出方程
2:
由状态方程求其单位冲击响应
设
计
要
求
学习并掌握LSI系统的状态空间转换方法及应用特点
参
考
资
料
数字信号处理方面资料
MATLAB方面资料
周次
前半周
后半周
应
完
成
内
容
收集消化资料、学习MATLAB软件,进行相关参数计算
编写仿真程序、调试
指导教
师签字
基层教学单位主任签字
说明:
1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。
2、学生那份任务书要求装订到课程设计报告前面。
电气工程学院教务科
摘要
摘要:
线性时不变离散时间系统是最基本的数字系统,差分方程和系统函数是描述系统的常用数学模型,单位脉冲响应和频率响应是描述系统特性的主要特征参数,零状态响应和因果稳定性是系统分析的重要内容。
文章从系统的分析流程、系统模型的创建、时域分析、频域分析和因果稳定性分析等方面,介绍了线性时不变离散时间系统的基本分析方法,并以实例形式列举了MATLAB实现程序。
关键词:
MATLAB;离散时间系统;系统分析;传输函数
第一章离散时间系统与状态空间描述…………………………………1
1.1离散时间系统……………………1
1.2状态空间描述……………………………3
1.3LSI系统的求解方法……………………5
第二章软件仿真设计……………5
2.1状态方程…………………………………5
2.2输出方程…………………………………6
2.3LSI系统的单位冲击响应…………………………7
第三章仿真结果分析……………10
3.1状态方程…………………………10
3.2输出方程……………………………10
3.3LSI系统的单位冲击响应…………………………………………11
第四章学习心得…………………………………………………………11
第五章设计与实验过程中遇到的问题和分析……………………12
第一章相关离散时间系统的知识
1.1离散时间系统
离散时间系统离散时间系统是将一个序列变换成另一序列的系统,它有多种类型,其中线性时不变离散时间系统是最基本、最重要的系统。
差分方程反映了系统输入与输出的运动状态,是在时域描述系统的通用数学模型;系统函数是零状态下系统输出与输入的Z变换之比,在时域与频域之间起桥梁作用。
分析系统就是在已知系统结构或系统模型条件下,从时域和频域两方面分析系统输入与输出的关系,前者重点研究系统的时间特性,后者主要研究系统的频率特性。
下面从系统分析流程、系统模型创建、系统时域分析、系统频域分析和因果稳定性分析等方面,介绍线性时不变离散时间系统的基本分析方法,并以实例形式列举MATLAB在系统分析过程中的具体应用。
二、单位脉冲响应的计算根据差分方程求解单位脉冲激励下系统的零状态响应,或将系统函数进行Z反变换都可算出系统的单位脉冲响应,具体算法可参见参考文献[3]。
在MATLAB中描述系统的差分方程或系统函数都是用系数向量表示,调用impz函数就可直接算出系统的单位脉冲响应。
如实例1描述的系统,其单位脉冲响应的计算及显示程序如下:
b=[0.3,0.06,0,0];%系数向量不齐后面补0
a=[1,-1.1,0.55,-0.125];%系数向量不齐后面补0
[hn,n]=impz(b,a,16),%列向求出16点单位脉冲响应
stem(n,hn,'.');grid;%绘制点状图并加网格
xlabel('n');ylabel('hn');title('单位脉冲响应');
若要写出闭环形式,可调用residuez函数将系统函数展开成部分分式形式,再通过查表求Z反变换即可。
三、系统输出的时域计算
在时域上计算离散时间系统的输出,实际上就是直接求解差分方程或作卷积运算。
参考文献[3]列举了迭代法、时域经典法、卷积法等常用方法及应用实例。
考虑到分析系统的目的在于综合,系统设计时不存在初始问题,因此,分析系统响应重点分析零状态响应。
只要掌握了分析系统的概念、原理和方法,繁杂的计算可由MATLAB完成。
实例2:
试计算实例1中,当输入序列分别为单位脉冲、单位阶跃和一般序列时,系统的输出响应。
方法1:
调用filter函数实现
b=[0.3,0.06,0,0];a=[1,-1.1,0.55,-0.125];
x1=[1,zeros(1,15)];%产生16点单位脉冲序列
x2=ones(1,16);%产生16点单位阶跃序列
x3=exp(-0.2*[0:
15]);%用指数序列代表一般序列
y1=filter(b,a,x1),%计算单位脉冲响应
y2=filter(b,a,x2),%计算单位阶跃响应
y3=filter(b,a,x3),%计算一般序列响应
方法2:
调用conv函数实现
b=[0.3,0.06,0,0];a=[1,-1.1,0.55,-0.125];
[hn,n]=impz(b,a,16);%求出16点单位脉冲响应
x=exp(-0.2*(0:
15));%输入或产生一般序列
y1=conv(hn,x),%用线性卷积求系统响应
y2=filter(b,a,x),%用系统函数求系统响应
k=1:
16;dy=y1(k)-y2(k),%两种计算的误差对比
结果表明,用有限长单位脉冲响应序列代替无限长单位脉冲响应系统会有一定的误差,但可通过增加单位脉冲响应的长度逼近。
四、频率响应的计算
稳定系统的频率响应就是系统函数在单位圆上的取值,计算系统的频率响应,可将系统函数中的Z变量用
代入即可得到。
频率响应是一个复函数,其模叫幅度响应,其相角叫相位响应,它反映了输入序列的频谱经系统后所发生的变化规律。
从幅频曲线上可直观看到各频率分量的幅度变化情况,从相频曲线上可直观看到各频率分量的相移情况。
根据频响曲线分析系统对信号频谱的影响,概念清楚、简单直观,对信号综合也意义重大,但要将一个较复杂的频率响应复函数转化成幅度响应和相位响应并图示,计算量大且容易出错,图示结果也不一定精确。
利用MATLAB函数这些问题都迎刃而解。
实例3:
利用MATLAB函数计算实例1中离散系统的频率响应并图示。
由系统函数绘制频响曲线的程序如下:
N=100;w=[0:
(N-1)]*2*pi/N;%确定频点
z=exp(j*w);%求频点对应的z点
b=[0.3,0.06,0,0];a=[1,-1.1,0.55,-0.125];
Hz=polyval(b,z)./polyval(a,z);%求各频点的频响
subplot(2,1,1),plot(w/pi,abs(Hz))%绘制幅频曲线
xlabel('w*pi'),ylabel('abs(Hz)')%加标签
grid;title('幅频特性');%加网格和标题
subplot(2,1,2),plot(w/pi,angle(Hz))%绘制相频曲线
xlabel('w*pi'),ylabel('angle(Hz)')%加标签
grid,title('相频特性');%加网格和标题
绘制的频响曲线如图3所示,由图可知系统有低通效果,且通带内有较好的线性相位。
该程序过程清晰、容易理解,但调用freqz函数则更加简便。
b=[0.3,0.06,0,0];a=[1,-1.1,0.55,-0.125];
freqz(b,a);%直接绘出频响曲线
1.2状态空间的描述
随着数字计算机在系统控制中的广泛应用,离散时间系统(简称为离散系统)日益显示出其重要性。
和连续系统不同,离散系统中各部分的信号不再都是时间变量t的连续函数。
在系统的一处或多处,其信号呈现断续式的脉冲串或数码的形式。
事实上,大量的连续系统通常被通过采样化为时间离散化系统,再来进行分析和控制。
离散系统成为控制理论与控制工程中重要的一类系统模型。
系统一般可用常微分方程在时域内描述,对复杂系统要求解高阶微分方程,这是相当困难的。
经典控制理论中采用拉氏变换法在复频域内描述系统,得到联系输入-输出关系的传递函数,基于传递函数设计单输入-单输出系统极为有效,可从传递函数的零极点分布得出系统定性特性,并已建立起一整套图解分析设计法,至今仍得到广泛应用。
但传递函数对系统是一种外部描述,它不能描述处于系统内部的运动变量,因此传递函数不能包含系统的所有信息。
由于六十年代以来,控制工程向复杂化、高性能方向发展,所需利用的信息不局限于输入量、输出量、误差等,还需要利用系统内部的状态变化规律,加之利用数字计算机技术进行分析设计及实时控制,因而可能处理复杂的时变、非线性、多输入-多输出系统的问题,但传递函数法在这新领域的应用受到很大限制。
于是需要用新的对系统内部进行描述的新方法——状态空间分析法。
状态空间分析方法是能全面描述和分析动态系统的一种动力学分析与综合的主要方法,其也适应于离散系统的动力学分析与综合。
与连续系统类似,为更好地分析、控制离散时间被控对象,引入状态空间分析方法。
本节主要研究线性离散系统的状态空间描述及如何建立状态空间模型。
下面先讨论工程控制系统的计算机实现,然后讨论离散系统的状态空间描述等问题。
在经典控制理论中,离散系统通常用差分方程或脉冲传递函数来描述。
SISO线性定常离散系统差分方程的一般形式为
y(k+n)+a1y(k+n-1)+…+any(k)=b0u(k+n)+…+bnu(k)
式中,k表示第k次采样的kT时刻;
T为采样周期;y(k)、u(k)分别为kT时刻的输出量和输入量;
ai和bi为表征系统特性的常系数。
考虑初始条件为零时的变换关系
对上述差分方程模型两端取z变换并加以整理可得脉冲传递函数(z域传递函数)
上述描述的离散系统输入输出差分方程、传递函数分别与连续系统的输入输出微分方程、传递函数在形式上相同。
为进行离散系统的状态空间分析,需引入离散系统的状态空间模型。
在状态空间法中,采用以下的离散状态方程和离散输出方程所组成的线性定常离散系统状态空间模型对离散系统进行描述,即
其中x(kT)、u(kT)和y(kT)分别为n维的状态向量、r维的输入向量和m维的输出向量;
G(T)、H(T)、C(T)和D(T)分别为nn维的系统矩阵、nr维的输入矩阵、mn维的输出矩阵和mr维的直联矩阵。
离散系统状态空间模型的意义:
状态方程为一阶差分方程组,它表示了在(k+1)T采样时刻的状态x((k+1)T)与在kT采样时刻的状态x(kT)和输入u(kT)之间的关系。
描述的是系统动态特性,其决定系统状态变量的动态变化。
输出方程为代数方程组,它表示了在kT采样时刻时,系统输出y(kT)与状态x(kT)和输入u(kT)之间的关系。
描述的是输出与系统内部的状态变量的关系。
线性离散系统状态空间模型中的各矩阵的意义与连续系统一致。
1.3LSI系统的求解方法
对于离散LSI系统的响应,MATLAB为我们提供了多种求解方法:
(1)用conv子函数进行卷积积分,求任意输入的系统零状态响应(见实验5)。
(2)用dlsim子函数求任意输入的系统零状态响应。
(3)用filter和filtic子函数求任意输入的系统完全响应。
用filtic和filter子函数求LSI系统对任意输入的响应
filtic和filter子函数采用递推法进行系统差分方程的求解,可以用于求解离散LSI系统对任意输入的完全响应。
在实验4中,当输入信号为单位冲激信号或单位阶跃信号时,求得的响应即为系统的单位冲激响应或单位阶跃响应。
第二章软件仿真设计
2.1状态方程
已知LSI系统:
参数b=[10.8-1-0.8];a=[1-1.71.53-0.68];用[A,B,C,D]=tf2ss(b,a)可以求出状态空间方程系数A,B,C,D。
A=
1.7000-1.53000.6800
1.000000
01.00000
B=
1
0
0
C=
2.5000-2.5300-0.1200
D=
1
所以系统的状态方程可以表示为
Y=CX+Du
2.2输出方程
Y=CX+Du
Y=[2.5000-2.5300-0.1200]X+u
2.3单位冲击响应
n=[-20:
100]时的系统单位冲激响应。
计算系统单位冲激响应源程序:
num=[1,0.8,-1,-0.8];
den=[1,-1.7,1.532,-0.684];
n=[-20:
100];
hn=dimpulse(num,den)
hn=dimpulse(num,den);
stem(hn);
title('LSI系统的单位冲激响应')
由状态空间直接求单位冲击响应在学习了数字信号处理这门课程后,按照基本原理,综合运用所学的知识,利用Matlab,掌握系统的单位冲激响应内容,由给定的差分方程求解系统的单位冲激响应h(n).
sys=ss(A,B,C,D);impulse(sys)
第三章仿真结果分析
3.1状态方程
由于线性离散系统与线性连续系统的状态空间模型、传递函数以及高阶微分方程和差分方程之间具有结构形式上的一致性,故建立线性定常离散系统的状态空间模型时可借助于在线性定常连续系统中运用的方法。
状态空间描述考虑了“输入-状态-输出”这一过程,因此它提示了问题的本质。
输入引起的状态变化是一个运动过程,数学上表现为向量微分方程,即状态方程;状态决定输出是一个变换过程,数学上表现为变换方程,即代数方程。
对于给定系统,状态变量的选择不是唯一的。
一般来说,状态变量不一定是物理上可测量或可观察的量,但从便于控制系统的结构来说,把状态变量选为可测量或可观察更为合适。
系统的状态变量个数仅等于系统包含的独立贮能元件的个数。
3.2输出方程
系统输出的频域计算在频域上计算离散时间系统的输出,实际上就是利用Z变换或离散傅里叶变换,将时域的卷积运算变换到频域的相乘运算,再将频域运算结果反变换到时域,从而得到最终结果。
其中,Z变换法是手工计算的常用方法,特别适合于输入序列的Z变换能写成闭合形式的情形。
当输入序列是不能写成闭合形式的数据时,用Z变换法计算就很不方便,此时可改用离散傅里叶变换实现系统响应的频域计算。
由于有快速算法,离散傅里叶变换在工程上得到了广泛应用。
3.3单位冲击响应
单位脉冲响应的计算根据差分方程求解单位脉冲激励下系统的零状态响应,或将系统函数进行Z反变换都可算出系统的单位脉冲响应,具体算法可参见参考文献[3]。
在MATLAB中描述系统的差分方程或系统函数都是用系数向量表示,调用impz函数就可直接算出系统的单位脉冲响应。
如实例1描述的系统,其单位脉冲响应的计算及显示程序如下
b=[1,0.8,-1,-0.8];%系数向量不齐后面补0
a=[1,-1.7.1.53,-0.684];%系数向量不齐后面补0
[hn,n]=impz(b,a,16),%列向求出16点单位脉冲响应
stem(n,hn,'.');grid;%绘制点状图并加网格
xlabel('n');ylabel('hn');title('单位脉冲响应');
第四章学习心得
经过这几天紧张的课程设计,我从中学到以许多新的知识,从可设任务一分下来开始,我便投入到紧张的学习中,此次课程设计我的题目是离散时间系统的状态空间描述觉得这个应该是一个比较基础性的题目,紧密的联系了数字信号处理课程中的本质内容。
可是对于matlab进行数字信号处理我还是初次接触,所以需要学习的东西有很多。
要想完成此次课设题目不仅要熟练掌握数字信号处理中的理论知识,而且还要熟悉本次课程设计所用到的MATLAB软件。
所以在这几天的课程设计中,我首先学习如何使用MATLAB软件,同时又由于对基础知识掌握不牢固,又重新翻开了数字信号处理课本,复习研究其中的原理,在熟悉理论知识环节和编程环境的前提下,开始思考如何利用编程实现我们的课设要求。
通过这几天的学习,经过老师的指导和同学们的相互探讨,我初步掌握了matlab软件和LSI系统的编程实现。
通过查找资料和独立处理一些问题,锻炼了自己的能力,对我今后的学习和工作起到了不可或缺的帮助。
第五章设计与实验过程中遇到的问题和分析
首先matlab的使用问题,从头开始学习,基本内容,基本语句。
其次是设计题目的理解问题,经过老师的回答,恍然大悟,自己又翻阅了课本与图书馆借来的资料,明白了课程设计应该有的内容与方向。
然后在具体编写语句时,也出现了各种小问题,通过从网络上查找资料,与同学的沟通交流,在matlab软件上不断进行编程修改,最终得到了正确结果,完成了课程设计。
参考文献:
【1】郭仕剑,王宝顺,贺志国,杨可心等编著matlab7.x数字信号处理人民邮电出版社2006:
29-50.
【2】谢平王娜林洪彬编著信号处理原理及应用机械工业出版社54-6181-95.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 时间 系统 状态 空间 描述
![提示](https://static.bdocx.com/images/bang_tan.gif)