首页 理论教育 离散状态方程的解法与应用

离散状态方程的解法与应用

时间:2023-07-02 理论教育 版权反馈
【摘要】:离散状态方程递推法求解仿真仪。下面讨论离散状态方程的Z反变换求解法。使用MATLAB符号工具箱可以求出比较简单的离散状态方程的解析解。程序求取式的解析解主要命令如下:求零状态响应Xb的主要命令如下:通过零输入和零状态响应叠加可以求出完全状态响应的解析式,再通过输出方程可以求出输出响应的解析式。图2-6-11 程序shixz02_17前面板程序说明:上列程序由如下4个部分构成:①获取状态方程和输出方程的解析解。

离散状态方程的解法与应用

求解离散状态方程式(1-4-1)

XkT+T)=FXkT)+GUkT

YkT)=CXkT)+DUkT

通常采用递推法和Z反变换法。

1.递推法

978-7-111-35881-7-Chapter03-208.jpg

2.Z反变换法

978-7-111-35881-7-Chapter03-209.jpg

求出XkT)后,代入输出方程可以求输出。

递推法只能得到数字序列解,不能得到封闭的解析式,但它可以适用于线性时变离散系统。Z反变换法可以获得封闭的解析式,但只适用于定常线性离散系统。下面首先讨论递推解法。

【例2-16a】离散状态空间模型的递推算法

程序如下:

978-7-111-35881-7-Chapter03-210.jpg

如例所示,设定组合输入分量为

978-7-111-35881-7-Chapter03-211.jpg

输入计算拍数,运行程序,可立即获得该拍的状态值和输出值。当取k=10时,示例运行后状态值与输出值分别为

X(10)=[-8.0538 26.4300 -11.1546]T

Y(10)=[-146.8026 -2.8254]T

仔细对比一下图2-6-5所示的几种完全响应各拍的值,与由逐步递推法所获得结果是相同的。例如,图中示出的y2第10拍的值与由递推法计算的结果均为-2.8254。

当采样周期Ts=0.5s,其余参数不变时,完全响应之下的输出y2曲线如图2-6-8所示。各采样点的值当然仍与递推算法的结果相同。不过要注意采样点与采样时间的关系(t1/Ts+1)。

978-7-111-35881-7-Chapter03-212.jpg

图2-6-8 输出y2的完全响应(采样周期Ts=0.5s)

为了方便选择初值、输入和仿真拍数,将该例设计成如例2-16所示的虚拟仪器

【例2-16b】离散状态方程递推法求解仿真仪。

离散状态方程递推法求解仿真仪的程序如shixz02_16所示。其前面板和框图面板分别如图2-6-9和图2-6-10所示。

978-7-111-35881-7-Chapter03-213.jpg

图2-6-9 程序shixz02_16前面板

978-7-111-35881-7-Chapter03-214.jpg

图2-6-10 程序shixz02_16框图面板

程序说明:

本程序的MATLAB脚本嵌入LabVIEW的while循环之中。在MATLAB脚本中使用for循环命令实现递推算法,程序的主要部分与例2-16a相同。前面板左边是参数设定赋值部分,这部分赋值方法与例2-15相同。前面板右边示出了设定采样点的状态值、输出值及其图示。各状态分量与输出分量的数值分别由两个数组表示,示出设定拍的递推值。响应曲线图与响应曲线选择开关配合,示出任一状态分量或输出分量在设定拍的递推值。例如,图2-6-9的响应曲线示出了当k=10时输出y2的采样值-4.67785,与数组“输出值”中的y2和图2-6-8中的示值相同。

下面讨论离散状态方程的Z反变换求解法。

使用MATLAB符号工具箱可以求出比较简单的离散状态方程(例如特征值为实数)的解析解。程序求取式(2-6-4)的解析解主要命令如下:(www.xing528.com)

978-7-111-35881-7-Chapter03-215.jpg

求零状态响应Xb的主要命令如下:

978-7-111-35881-7-Chapter03-216.jpg

通过零输入和零状态响应叠加可以求出完全状态响应的解析式,再通过输出方程可以求出输出响应的解析式。

由解析式可以方便地进行数值仿真。如果只需要进行数值仿真与动态曲线绘制,直接使用命令initial和lsim命令即可。

【例2-17】离散状态方程解析解及其数字仿真仪。

仿真仪程序如shixz02_17所示。其前面板和程序框图面板分别如图2-6-11和图2-6-12所示。

978-7-111-35881-7-Chapter03-217.jpg

图2-6-11 程序shixz02_17前面板

程序说明:

上列程序由如下4个部分构成:

①获取状态方程和输出方程的解析解。

②由解析解转换成数字序列。

③直接获取状态及输出响应的数字序列。

④比较与作图。

无论是解析解还是数字解都分别包含零输入、零状态响应及对应的输出响应这些响应中包含各个分量信息。

解析解的变量名如下:

Xa——零输入响应的状态轨迹解析式。

Xb——零状态响应的状态轨迹解析式。

Xab——完全响应的状态轨迹解析式。

Ya——零输入响应的输出解析式。

Yb——零状态响应的输出解析式。

978-7-111-35881-7-Chapter03-218.jpg

图2-6-12 程序shixz02_17框图面板

Yab——完全响应的输出解析式。

通过MATLAB命令char,将求得的解析式转换成可用LabVIEW显示的字符串(string),将各个分量的解析解显示在前面板的最下端。所显示的表达式与所显示的曲线一致并且同步。例如,图2-6-11示出完全响应的第2输出的曲线y2及其解析式Yab(2)

978-7-111-35881-7-Chapter03-219.jpg

令表达式中的k=10,即在MATLAB命令窗中执行命令subs(Yab(2),10),将获得如图2-6-11中坐标系0(Cursor 0)所示的纵坐标值95.6372。图中该点的横坐标值不是10而是12,即所示的采样点为12。原因是图2-6-11中横坐标值从1开始,而且所示纵坐标为采样周期末端的值,它等于该采样周期起点(11)的值。

为了保证在从解析式变换成数字序列时采样值为实数,必须使采样次数k为整数,程序中采样点设置成(0:Tst1)/Ts,其中t1为采样终点时间。

由于采用阶梯波表示各种响应曲线,每次显示一条曲线更清晰,所以程序设置了如图2-6-7所示的响应选择菜单,其使用方法参照该例。

编写程序时注意各种响应中响应曲线阶梯波生成语句。例如,第1状态轨迹的零输入响应、零状态响应和完全响应阶梯波曲线分别如下列3行语句生成,然后将横坐标变量再转换为统一的横坐标n0,进入XY图示仪。

978-7-111-35881-7-Chapter03-220.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈