1. 主页
  2. 文档
  3. 现代控制理论
  4. 状态空间模型
  5. 连续状态空间离散化

连续状态空间离散化


连续状态空间离散化

在控制理论中,连续是一种理想的理论分析角度,但是在实际的控制系统中需要借助计算机实现,对模拟量采样得到离散的数据,以便进行处理。

我们仍可以将系统看作连续系统进行建模,然后根据采样时间将连续状态空间转换成为离散状态空间

连续状态空间方程为:

\(\dot{x}=Ax+Bu\)

设连续控制输入信号u经采样器离散化后再经零阶保持器连至系统输入端,离散化后的信号设为\(u_{h}\)。

系统的状态响应为:

\(x(t)=e^{A(t-t_{0})}x(t_{0})+\int_{t_{0}}^{t}e^{[A(t-\tau)]}Bu_{h}(\tau)d\tau\)

取\(t_{0}=kT,t=(k+1)T\),且区间内u保持不变,即\(u(\tau)=u(kT)\),则:

\(x[(k+1)T]=e^{AT}x(kT)+\int_{0}^{T}e^{A\tau}d\tau \cdot Bu(kT)\)

其中,T是采样时间

类似的,对输出也进行离散化

\(y=Cx+Du\)

可得:

\(y(kT)=Cx(kT)+Du(kT)\)

\(G=e^{AT}\)

\(H=\int_{0}^{T}e^{A\tau}d\tau \cdot B\)

则可得到离散状态空间模型

\(x[(k+1)T]=Gx(kT)+Hu(kT)\)

\(y(kT)=Cx(kT)+Du(kT)\)


程序参考

该程序包采用C语言编写,用vs2013编译,用以将连续状态空间进行时间离散化。

void discrete_state_matrix(double *A, double *B, double T, double *result1, double *result2, int n1,int n2)
  • A,系统矩阵;
  • B,输入矩阵;
  • T,采样时间;
  • result1,离散化后的系统矩阵G;
  • result2,离散化后的输入矩阵H;
  • n1,系统矩阵阶数,即状态向量维数;
  • n2,输入向量维数;

!程序有效性已经过验证,如有bug请联系我们以便及时修改。

下载链接请关注微信公众平台iccetop,回复“连续状态空间离散化”进行获取。


这篇文章对您有用吗?

我们要如何帮助您?

发表评论

邮箱地址不会被公开。 必填项已用*标注