1.离散化模型的推导

设系统的状态空间表达式为:
x ˙ ( t ) = A x + B u ( t ) y ( t ) = C x ( t ) + D u ( t ) \dot{\mathbf{x}}(t)=A\mathbf{x}+B\mathbf{u}(t)\\ \mathbf{y}(t)=C\mathbf{x}(t)+D\mathbf{u}(t) x˙(t)=Ax+Bu(t)y(t)=Cx(t)+Du(t)
对上面两个式子分别取拉普拉斯变换得到:
X ( s ) = ( s I − A ) − 1 X ( 0 ) + ( s I − A ) − 1 B U ( s ) X(s)=(sI-A)^{-1}X(0)+(sI-A)^{-1}BU(s) X(s)=(sI−A)−1X(0)+(sI−A)−1BU(s)
再对上面的式子求拉普拉斯反变换得到:
X ( t ) = e A t X ( 0 ) + ∫ 0 t e A ( t − τ ) B u ( τ ) d τ = F ( t ) X ( 0 ) + ∫ 0 t F ( t − τ ) B u ( τ ) d τ F ( t ) = e A t \mathbf{X}(t)=e^{At}\mathbf{X}(0)+\int_0^te^{A(t-\tau)}B\mathbf{u}(\tau)d\tau\\ =\mathbf{F}(t)\mathbf{X}(0)+\int_0^t\mathbf{F}(t-\tau)B\mathbf{u}(\tau)d\tau\\ \mathbf{F}(t)=e^{At} X(t)=eAtX(0)+∫0t​eA(t−τ)Bu(τ)dτ=F(t)X(0)+∫0t​F(t−τ)Bu(τ)dτF(t)=eAt
对上面的结果进行离散化处理,设采样周期是 T T T,考察 t = ( k + 1 ) T , t = k T t=(k+1)T,t=kT t=(k+1)T,t=kT时 X ( t ) \mathbf{X}(t) X(t)的值。
X ( ( k + 1 ) T ) = e A ( k + 1 ) T X ( 0 ) + ∫ 0 ( k + 1 ) T e A ( ( k + 1 ) T − τ ) B u ( τ ) d τ = e A T ( e A k T X ( 0 ) + ∫ 0 k T e A ( k T − τ ) B u ( τ ) d τ + ∫ k T k ( T + 1 ) e A ( k T − τ ) B u ( τ ) d τ ) = e A T ( X ( k T ) + ∫ k T k ( T + 1 ) e A ( k T − τ ) B u ( τ ) d τ ) \mathbf{X}((k+1)T)=e^{A(k+1)T}\mathbf{X}(0)+\int_0^{(k+1)T}e^{A((k+1)T-\tau)}B\mathbf{u}(\tau)d\tau\\=e^{AT}(e^{AkT}\mathbf{X}(0)+\int_0^{kT}e^{A(kT-\tau)}B\mathbf{u}(\tau)d\tau+\int_{kT}^{k(T+1)}e^{A(kT-\tau)}B\mathbf{u}(\tau)d\tau)\\=e^{AT}(\mathbf{X}(kT)+\int_{kT}^{k(T+1)}e^{A(kT-\tau)}B\mathbf{u}(\tau)d\tau) X((k+1)T)=eA(k+1)TX(0)+∫0(k+1)T​eA((k+1)T−τ)Bu(τ)dτ=eAT(eAkTX(0)+∫0kT​eA(kT−τ)Bu(τ)dτ+∫kTk(T+1)​eA(kT−τ)Bu(τ)dτ)=eAT(X(kT)+∫kTk(T+1)​eA(kT−τ)Bu(τ)dτ)
若离散化时对输入 u u u采用零阶保持器,则有:
u ( t ) = u ( k T ) , ( k T ≤ t < ( k + 1 ) T ) u(t)=u(kT),(kT\leq t <(k+1)T) u(t)=u(kT),(kT≤t<(k+1)T)
于是上式可以变化为:
X ( ( k + 1 ) T ) = e A T X ( k T ) + ∫ k T ( k + 1 ) T e A ( ( k + 1 ) T − τ ) B u ( τ ) d τ = e A T X ( k T ) + ∫ k T ( k + 1 ) T e A ( ( k + 1 ) T − τ ) B d τ u ( k T ) = e A T X ( k T ) + ∫ 0 T e A ( T − τ ) B d τ u ( k T ) \mathbf{X}((k+1)T)=e^{AT}\mathbf{X}(kT)+\int_{kT}^{(k+1)T}e^{A((k+1)T-\tau)}B\mathbf{u}(\tau)d\tau\\=e^{AT}\mathbf{X}(kT)+\int_{kT}^{(k+1)T}e^{A((k+1)T-\tau)}Bd\tau\mathbf{u}(kT)\\=e^{AT}\mathbf{X}(kT)+\int_{0}^{T}e^{A(T-\tau)}Bd\tau\mathbf{u}(kT) X((k+1)T)=eATX(kT)+∫kT(k+1)T​eA((k+1)T−τ)Bu(τ)dτ=eATX(kT)+∫kT(k+1)T​eA((k+1)T−τ)Bdτu(kT)=eATX(kT)+∫0T​eA(T−τ)Bdτu(kT)
写成一般形式如下:
X ( k + 1 ) = F ( T ) X ( k ) + G ( T ) u ( k ) \mathbf{X}(k+1)=\mathbf{F}(T)\mathbf{X}(k)+\mathbf{G}(T)\mathbf{u}(k) X(k+1)=F(T)X(k)+G(T)u(k)
其中 F ( T ) = e A T \mathbf{F}(T)=e^{AT} F(T)=eAT, G ( T ) = ∫ 0 T e A ( T − τ ) B d τ = ∫ 0 T F ( T − τ ) B d τ \mathbf{G}(T)=\int_{0}^{T}e^{A(T-\tau)}Bd\tau=\int_{0}^{T}F(T-\tau)Bd\tau G(T)=∫0T​eA(T−τ)Bdτ=∫0T​F(T−τ)Bdτ。

这样就得到采用零阶保持器的离散化模型:
X ( k + 1 ) = F ( T ) X ( k ) + G ( T ) u ( k ) Y ( k ) = C X ( k ) + D u ( k ) \mathbf{X}(k+1)=\mathbf{F}(T)\mathbf{X}(k)+\mathbf{G}(T)\mathbf{u}(k)\\ \mathbf{Y}(k)=\mathbf{C}\mathbf{X}(k)+\mathbf{D}\mathbf{u}(k) X(k+1)=F(T)X(k)+G(T)u(k)Y(k)=CX(k)+Du(k)
采用一阶保持器的离散化模型:
u ( t ) = u ( k T ) + u ˙ ( k T ) ( t − k T ) , ( k T ≤ t < ( k + 1 ) T ) u(t)=u(kT)+\dot{u}(kT)(t-kT),(kT\leq t <(k+1)T) u(t)=u(kT)+u˙(kT)(t−kT),(kT≤t<(k+1)T)
带入之前的模型得到:
X ( k + 1 ) = F ( T ) X ( k ) + G ( T ) u ( k ) + G 1 ( T ) u ˙ ( k ) \mathbf{X}(k+1)=\mathbf{F}(T)\mathbf{X}(k)+\mathbf{G}(T)\mathbf{u}(k)+\mathbf{G_1}(T)\dot{\mathbf{u}}(k) X(k+1)=F(T)X(k)+G(T)u(k)+G1​(T)u˙(k)
其中 F ( T ) = e A T \mathbf{F}(T)=e^{AT} F(T)=eAT, G ( T ) = ∫ 0 T e A ( T − τ ) B d τ = ∫ 0 T F ( T − τ ) B d τ \mathbf{G}(T)=\int_{0}^{T}e^{A(T-\tau)}Bd\tau=\int_{0}^{T}F(T-\tau)Bd\tau G(T)=∫0T​eA(T−τ)Bdτ=∫0T​F(T−τ)Bdτ, G 1 ( T ) = ∫ 0 T F ( T − τ ) B τ d τ \mathbf{G_1}(T)=\int_{0}^{T}F(T-\tau)B\tau d\tau G1​(T)=∫0T​F(T−τ)Bτdτ。

2.重要矩阵的计算

目的在于用数值计算 G ( T ) , F ( T ) \mathbf{G}(T),\mathbf{F}(T) G(T),F(T)。

2.1 F ( T ) \mathbf{F}(T) F(T)的计算

F ( T ) = e A T ≈ ∑ i = 0 L ( A T ) i i ! = I + A T { I + A T 2 { I + . . . + A T L − 1 ( I + A T L ) } } \mathbf{F}(T)=e^{AT}\approx\sum_{i=0}^L\frac{(AT)^i}{i!}=I+AT\{I+\frac{AT}{2}\{I+...+\frac{AT}{L-1}(I+\frac{AT}{L})\}\} F(T)=eAT≈i=0∑L​i!(AT)i​=I+AT{I+2AT​{I+...+L−1AT​(I+LAT​)}}

2.2 G ( T ) \mathbf{G}(T) G(T)的计算

G ( T ) = ∫ 0 T e A λ B d λ = ∫ 0 T ∑ i = 0 L ( A λ ) i i ! B d λ = ∑ i = 0 L ∫ 0 T ( A λ ) i i ! B d λ = ∑ i = 0 L A i T i + 1 ( i + 1 ) ! B = A − 1 ( ∑ j = 1 L + 1 ( A T ) j j ! ) B = A − 1 ( F ( t ) − I ) B \mathbf{G}(T)=\int_0^Te^{\mathbf{A}\lambda}\mathbf{B}d\lambda=\int_0^T\sum_{i=0}^L\frac{(A\lambda)^i}{i!}\mathbf{B}d\lambda =\sum_{i=0}^L\int_0^T\frac{(A\lambda)^i}{i!}\mathbf{B}d\lambda=\sum_{i=0}^L\frac{A^iT^{i+1}}{(i+1)!}\mathbf{B}\\=\mathbf{A}^{-1}(\sum_{j=1}^{L+1}\frac{(AT)^j}{j!})\mathbf{B}=\mathbf{A}^{-1}(\mathbf{F}(t)-\mathbf{I})\mathbf{B} G(T)=∫0T​eAλBdλ=∫0T​i=0∑L​i!(Aλ)i​Bdλ=i=0∑L​∫0T​i!(Aλ)i​Bdλ=i=0∑L​(i+1)!AiTi+1​B=A−1(j=1∑L+1​j!(AT)j​)B=A−1(F(t)−I)B

3.仿真实验

例如仿真以下的控制系统(用Simulink搭建的):

将系统转化为以下形式:

那么就有以下的状态空间方程:
x ˙ = A x + B u y = ( 0 1 ) x \dot{\mathbf{x}}=A\mathbf{x}+B\mathbf{u}\\ y=(0 \quad 1)\mathbf{x} x˙=Ax+Buy=(01)x
其中 x = ( x 1 x 2 ) T \mathbf{x}=(x_1\quad x_2)^T x=(x1​x2​)T, A = ( 0 0 1 − 1 ) A=\begin{pmatrix}0&0\\1&-1 \end{pmatrix} A=(01​0−1​), B = ( 8 0 ) B=\begin{pmatrix}8\\0 \end{pmatrix} B=(80​), r = s i n t r=sint r=sint。

若设采样时间 T = 0.1 T=0.1 T=0.1,可以得到状态空间方程的零阶保持器的离散化模型:
F ( T ) = ( 1 0 1 − e − T e − T ) , G ( T ) = ( 8 T 8 ( T − 1 + e − T ) ) \mathbf{F}(T)=\begin{pmatrix}1&0\\1-e^{-T}&e^{-T} \end{pmatrix},\mathbf{G}(T)=\begin{pmatrix}8T\\8(T-1+e^{-T}) \end{pmatrix} F(T)=(11−e−T​0e−T​),G(T)=(8T8(T−1+e−T)​)
于是离散化模型为:
( x 1 ( k + 1 ) x 2 ( k + 1 ) ) = ( 1 0 1 − e − T e − T ) ( x 1 ( k ) x 2 ( k ) ) + ( 8 T 8 ( T − 1 + e − T ) ) u ( k ) \begin{pmatrix}x_1(k+1)\\x_2(k+1)\end{pmatrix}=\begin{pmatrix}1&0\\1-e^{-T}&e^{-T} \end{pmatrix}\begin{pmatrix}x_1(k)\\x_2(k)\end{pmatrix}+\begin{pmatrix}8T\\8(T-1+e^{-T}) \end{pmatrix}u(k) (x1​(k+1)x2​(k+1)​)=(11−e−T​0e−T​)(x1​(k)x2​(k)​)+(8T8(T−1+e−T)​)u(k)

y ( k ) = x 2 ( k ) y(k)=x_2(k) y(k)=x2​(k)

clc,clear;close all;
%设置初始参数值
K = 8;a = 5;
%设置采样时间T
T = 0.1; t0 = 0;tf = 10;
t = t0:T:tf;x0 = [0 0]';
y0 = 0;
%设置输入r
r = sin(t);
%设置矩阵
F = [1 0;1-exp(-T) exp(-T)];
G = [K*T;K*(T - 1 + exp(-T))];
C = [0 1];
%设置状态变量和输出变量
x = x0;y = y0;
time = t0;num = size(t,2);
y_output = [];t_output = [];
%下面开始循环操作
for i = 1:nume = r(i) - y;if abs(e)>=au = a;elseu = e;endx = F*x + G*u;y = C*x;time = time + T;t_output = [t_output,time];y_output = [y_output,y];
end
%下面开始画图
hold on;box on;grid on;
plot(t_output,y_output,'bo-');
xlabel('t/s');ylabel('y');
title(['采样时间T:',num2str(T)]);

可以预见到离散系统仿真的效果是很好的。

状态方程的离散化仿真相关推荐

  1. ekf估计电池soc过程推导(一)状态方程列写及离散化

    SOC是什么 SOC(State of Charge)即电池的电荷状态,通常用百分比表示.它表示电池目前已经存储了多少电量,是电池容量的一个比例. 例如,如果一个电池的额定容量为1000mAh,而目前 ...

  2. 状态空间离散化matlab,现代控制理论:3.4g 线性连续系统状态空间模型的离散化...

    <现代控制理论:3.4g 线性连续系统状态空间模型的离散化>由会员分享,可在线阅读,更多相关<现代控制理论:3.4g 线性连续系统状态空间模型的离散化(24页珍藏版)>请在人人 ...

  3. matlab仿真高阶传递函数,Matlab/Simulink动力学系统建模与仿真(第2版)

    绪论 第1章 系统建模与仿真基础 1.1 系统仿真模型框图表示法 1.1.1 基本仿真元件 1.1.2 简单仿真框图结构 1.2 拉普拉斯变换 1.2.1 拉普拉斯变换的定义及其性质 1.2.2 拉普 ...

  4. 计算机仿真技术生物,基于计算机仿真技术的人体生理特性和病理机制研究

    前 言 对人体的生理功能进行计算机模拟,借助于计算机仿真技术研究人体的生理特性和病理机制,是 目前 国内外生物医学工程领域的一个研究方向.对人体血液循环系统( human blood circulat ...

  5. 微分方程计算机仿真国内外研究论文,功率键合图法在血液循环系统计算机仿真中的应用,毕业论文...

    摘要: 根据生物流体系统同工程流体系统所具有的相似性,将功率键合图建模 方法 应用 于人体血液循环系统的 计算 机仿真当中,对一个简化的人体血液循环系统模型进行了仿真 研究 ,所得仿真数据同基本的生理 ...

  6. matlab仿真需要硬件,用Matlab/Simulink实现简单的硬件在环路仿真

    <微型机与应用>!""# 年第 $ 期 硬件在环路仿真 !"#$%$'()*(+,'(-../ 01234#5 61.*,")-78又称半实物仿真, ...

  7. 可观测性PHP秩判据,线性系统的可控性与可观测性

    现代控制理论中用状态方程和输出方程描述系统,输入和输出构成系统的外部变量,而状态为系统的内部变量,这就存在着系统内的所有状态是否可受输入影响和是否可由输出反映的问题,这就是可控性和可观测性问题.如果系 ...

  8. PID模型优化(系统辨识工具箱及PID tuner)

    传递函数推算 在实际的工程项目中,由于执行机构比较复杂,较难仅通过电路计算其数学模型并进一步进行仿真调试.这时就可以通过辨识建立数学模型来估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型, ...

  9. 《计算机控制理论与应用》MATLAB示例

    目录 MATLAB Mobile的安装与使用 Chapter 2 基本函数 S变换与Z变换 差分方程求解(WolframAlpha) 由Z传递函数求离散状态方程 连续状态方程的离散化 由离散系统状态空 ...

最新文章

  1. C6678-SRIO和Virtex6-FPGA
  2. 开发自己的 chart - 每天5分钟玩转 Docker 容器技术(167)
  3. 复现经典:《统计学习方法》第 2 章 感知机
  4. 老板思维:有支出必须有对应的收入
  5. Java synchronized到底锁住的是什么?
  6. python爬取json数据_Python爬取数据保存为Json格式的代码示例
  7. 1059 Prime Factors (25 分)质因子 易错题
  8. linux halcon 加密狗,不安装HALCON下安装运行版U盘加密狗驱动
  9. jdk 7 官方下载
  10. SQL 建表与查询
  11. 三种最常用的日志分析软件
  12. 【阿里云镜像】更改阿里巴巴开源镜像站镜像之——CentOS镜像
  13. 电脑上游戏视频录制的方法
  14. ParticleDesigner 粒子编辑器使用
  15. 电信物联网平台申请正式平台流程
  16. MR混合现实头显来啦!宏碁微软产品率先上市
  17. mysql索引优化longtext_mysql中longtext存在大量数据时,会导致查询很慢?
  18. Iperf测试能ping通,测试带宽失败
  19. vue+vue-ueditor-wrap+秀米
  20. zotero 多设备文件同步配置,不需要 iCloud,使用 webdav

热门文章

  1. 大数据时代下 数据安全运营面临严峻待解决问题有哪些
  2. python开发工具geany_geany作为Python的编辑器好用吗?
  3. 【毕业设计】基于Arduino的智能灌溉系统 - 嵌入式 单片机 物联网
  4. AMiner订阅小程序上线,随时随地掌握最新科研成果
  5. js常用工具方法utils
  6. cgb2107-day08
  7. java实现发送手机验证码功能
  8. 基于JAVA的企业部门报销管理信息系统的设计与实现
  9. 2018 Arab Collegiate Programming Contest (ACPC 2018) E - Exciting Menus AC自动机
  10. JavaScript生成字符画(ASCII Art)