关于线性连续系统转换到离散系统的方法
关于线性连续系统转换到离散系统的方法
虽然通常在分析设计控制器时,总是针对连续系统设计的。但是若要将其在实际工程中应用起来,则免不了需要将它转换为离散的形式。本文主要对连续系统转换到离散系统的几种方法进行了汇总,便于之后的翻阅。
参考资料:
- 状态空间方程的离散化 - 知乎 (zhihu.com)
- (55条消息) 如何将连续系统状态空间方程离散化_Let’sCode的博客-CSDN博客_连续状态空间方程离散化
- Optimal State Estimation Kalman, H Infinity, and Nonlinear Approaches (Dan Simon)
1.传递函数
线性连续系统的一种重要的表示形式为传递函数。将传递函数进行离散化的方法就是z变换,将传递函数中的"s"变量全部用"z"替换即可。
G(s)⟶G(z)G(s) \longrightarrow G(z) G(s)⟶G(z)
常见的三种"s"与"z"的对应关系分别如下所示,其中TTT表示采样时间。
前项差分变换
z=1+Ts(1)z=1+Ts \tag{1} z=1+Ts(1)后项差分变换
z=11−Ts(2)z=\frac{1}{1-Ts} \tag{2} z=1−Ts1(2)双线性变换(Tustin变换)
z=1+Ts/21−Ts/2(3)z=\frac{1+Ts/2}{1-Ts/2} \tag{3} z=1−Ts/21+Ts/2(3)
2.状态空间方程
线性连续系统的另一种重要的表示形式为状态空间方程。一般来说,将状态空间方程进行离散化的方法有两种,分别为欧拉法和零阶保持法。下面分别进行介绍。
{x˙=Ax+Buy=Cx+Du⟶{x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)\begin{cases} \dot{x}=Ax+Bu \\ y=Cx+Du \end{cases} \longrightarrow \begin{cases} x(k+1)=A_zx(k)+B_zu(k) \\ y(k)=C_zx(k)+D_zu(k) \end{cases} {x˙=Ax+Buy=Cx+Du⟶{x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)
2.1.欧拉法
欧拉法利用了泰勒展开式的一阶近似,将状态导数表示为了如下形式
x˙=x(k+1)−x(k)T(4)\dot{x}=\frac{x(k+1)-x(k)}{T} \tag{4} x˙=Tx(k+1)−x(k)(4)
将上式代入状态空间方程,可以得到离散化状态空间方程
{x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)(5)\begin{cases} x(k+1)=A_zx(k)+B_zu(k) \\ y(k)=C_zx(k)+D_zu(k) \end{cases} \tag{5} {x(k+1)=Azx(k)+Bzu(k)y(k)=Czx(k)+Dzu(k)(5)
上式中,Az=I+TA,Bz=TB,Cz=C,Dz=DA_z=I+TA,B_z=TB,C_z=C,D_z=DAz=I+TA,Bz=TB,Cz=C,Dz=D。
2.2.零阶保持法
我们知道,线性系统的状态空间方程的解可以表示为
x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτ(6)x(t)=e^{A(t-t_0)}x(t_0)+\int_{t_0}^t{e^{A(t-\tau)}Bu(\tau)d\tau} \tag{6} x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτ(6)
上式中,eA(t−t0)e^{A(t-t_0)}eA(t−t0)表示系统的状态转移矩阵,eAe^AeA的形式称为矩阵指数。
定义时间间隔为T=tk+1−tkT=t_{k+1}-t_{k}T=tk+1−tk,且假设在时间间隔内A(t),B(t),u(t)A(t),B(t),u(t)A(t),B(t),u(t)保持不变。则式(6)可以写成
x(tk+1)=eATx(tk)+∫0TeA(T−τ)dτBu(tk)=eATx(tk)+eAT∫0Te−AτdτBu(tk)(7)\begin{aligned} x(t_{k+1})&=e^{AT}x(t_k)+\int_{0}^T{e^{A(T-\tau)}d\tau}Bu(t_k) \\ &=e^{AT}x(t_k)+e^{AT}\int_{0}^T{e^{-A\tau}d\tau}Bu(t_k) \end{aligned} \tag{7} x(tk+1)=eATx(tk)+∫0TeA(T−τ)dτBu(tk)=eATx(tk)+eAT∫0Te−AτdτBu(tk)(7)
由式(7)可以确定,Az=eAT,Bz=eAT∫0Te−AτdτBA_z=e^{AT},B_z=e^{AT}\int_{0}^T{e^{-A\tau}d\tau}BAz=eAT,Bz=eAT∫0Te−AτdτB。
在计算矩阵BzB_zBz时,由于存在矩阵指数的积分运算,在实际使用时可能会比较麻烦。当矩阵AAA可逆时,矩阵指数的积分运算可以进行简化,如式(8)所示。具体推导过程详见Optimal State Estimation Kalman, H Infinity, and Nonlinear Approaches。
∫0Te−Aτdτ=[I−e−AT]A−1(8)\int_{0}^T{e^{-A\tau}d\tau}=[I-e^{-AT}]A^{-1} \tag{8} ∫0Te−Aτdτ=[I−e−AT]A−1(8)
以上介绍的两种离散化方法中,零阶保持法在精确度和稳定性方面优于欧拉法。
关于线性连续系统转换到离散系统的方法相关推荐
- matlab c2d 零阶保持器,计控实验二 连续系统变换为离散系统
实验二 连续系统变换为离散系统 一.实验目的 在对连续系统进行实时计算机控制时,往往需要把连续系统转换成离散系统. 二.实验指导 为了得到连续系统的离散化数学模型,Matlab 提供了c2d()函数. ...
- 状态空间离散化matlab,现代控制理论:3.4g 线性连续系统状态空间模型的离散化...
<现代控制理论:3.4g 线性连续系统状态空间模型的离散化>由会员分享,可在线阅读,更多相关<现代控制理论:3.4g 线性连续系统状态空间模型的离散化(24页珍藏版)>请在人人 ...
- 状态空间离散化matlab,线性连续系统状态空间模型的离散化.ppt
线性连续系统状态空间模型的离散化 * * * * * * * * * * * * * * * * * * * * Ch.3 线性系统的时域分析 目录(1/1) 目 录 概述 3.1 线性定常连续系统状 ...
- Python解决控制问题系列之二:线性连续系统最优控制问题
Python解决控制问题系列之二:线性连续系统最优控制问题 文章目录 Python解决控制问题系列之二:线性连续系统最优控制问题 1. 前言 2. 线性系统问题描述 3. Python 编程 3.1 ...
- 连续系统离散化的几种方法
参考鹏飞亿里的文章<一文书尽离散化--连续系统离散化原理及应用> 讲离散化方法之前,首先先描述一下离散系统和连续系统 上图为连续信号控制系统框图,R(s)为输入信号,Y(s)为输出信号,E ...
- 线性连续系统matlab仿真,东大20秋学期《控制系统 Simulink 仿真》在线平时作业【答案满分】...
20秋学期<控制系统 Simulink 仿真>在线平时作业1 试卷总分:100 得分:100 一.单选题 (共 10 道试题,共 50 分) 1.下列对仿真步长的理解正确的是 A.仿真起 ...
- 利用matlab快速实现连续系统转变为离散系统(z变换)
matlab为连续系统提供了离散化模型.利用c2d()函数可实现连续函数的快速离散化.c2d()函数的调研格式为: sysd=c2d(sys,Ts)或 sysd=c2d(sys,Ts,method). ...
- 如何将连续系统状态空间方程离散化
差分变换 连续系统转化为离散系统的方法之-- z变换.z变换主要研究如何将连续系统传递函数G(s) 转化为离散传递函数 G(z).就是找到一个s和z的关系,直接将G(s)中的s全部替换为z便大功告成. ...
- 连续系统与离散系统传递函数的求解问题
文章目录 1 Z变换的定义与常见激励的Z变换求解 1.1 定义 1.2 单位样值函数 1.3 单位阶跃序列 1.4 斜变序列 1.4.1 间接求导法 1.4.2 错位相减法 1.5 指数序列 1.6 ...
最新文章
- 异常记录-No module named ‘numpy.core._multiarray_umath
- linux 挂载网络文件系统,linux 挂载网络文件系统
- telnet命令的使用
- mybatis多对一处理两种处理方式
- Thread和Runnable的区别
- ewebeditor未授权:功能被禁用请先配置授权_SteamPY新功能——外区账号礼物自动领取...
- python实现拆分、合并、删除pdf
- 生成子集——位向量法
- 笔记随笔1(webpack,vue-router,vuex)
- 国际C 语言乱码大赛(IOCCC )
- 被Gartner评为十大安全技术的IAST是什么
- 2019年日本上班的你必须知道的社会保障和源泉所得税
- 7-9 旅游规划 (25 分)Dijkstra算法,单源最短路径算法
- PTA(接口)用java写 7-10 房屋、住宅、写字楼类
- Java在线打开编辑PPT文档
- android usb投影win10,win10如何投影到安卓平板上
- Ubuntu 命令行安装chrome
- 学计算机和英语哪个好考,英语不好,学计算机哪方面比较好?
- 期货价格怎么算出来的?
- 都2021年了!为什么一遇到热点事件,微博就会时不时的崩一下?
热门文章
- 【转】关于NFS讨论 参数说明
- 回答一下这 10 个最常见的 Javascript 问题
- PageRank、图计算、图存储的两种方式
- AngularJS 0005:作用域
- MVC调用部分视图PartialView
- oppor15x手机android版本,OPPO R15x手机系统升级和降级的方法汇总
- 用户用机中的opac计算机,书目查询
- python 鼠标 自动点击_利用python模拟鼠标点击自动完成工作,提升你的工作效率!...
- dhtmlxScheduler日程安排控件
- window应用在linux运行,如何在Linux上运行Windows应用程序?