• 基于状态空间的建模过程


    我们得到的矩阵

    A = [0 1 0 0;

      30.0503 0 0 2.9156;

      0 0 0 1;

      -0.5117 0 0 -1.0015]

    B = [0;

      -2.4614;

      0;

      0.8455]

    C = [1 0 0 0;

      0 0 1 0]

    D =0

     建模前我们先讨论下,ABCD分别是什么,怎么计算出来:

    我们可以写成状态方程:

        X(k+1) = A * X(k) + B * u(k)

        Y(k)     = C * X(k) + D * u(k)

    A,系统矩阵,直接反映了X(k)和X(k+1)的关系;B,输入矩阵,加入控制的影响;C,输出矩阵,用于观测;D,前馈矩阵,当一个量x本来是影响系统的,但x并未考虑在系统矩阵A中,便会通过D来实现,一般来说很少出现,因为我们希望矩阵A是包含所有影响系统的因素的。

    那他们是怎么算出来的呢?

    A和B可以通过体现系统建模得出,A和B也对接下来的编程等是不可缺少的,C的确定原自你想要观测什么,如状态方程实际上反应的是[a(k+1); a(k+1)'; b(k+1); b(k+1)']和

    [a(k); a(k)'; b(k); b(k)']的关系,就拿后者来说,我们只需要关注a(k)和b(k)就可以了,因为a(k)'和b(k)'是可以通过数学计算得出的,所以在这:

      C = [1 0 0 0;

        0 0 1 0]

    D = 0,这个不用多讲:

    我们真正关注的是A和B,CD不用过多考虑

    用matlab代码建模,也可用simulink:

    clear all                                       #清理之前的空间

    A = [0 1 0 0;                               #输入各矩阵

      30.0503 0 0 2.9156;

      0 0 0 1;

      -0.5117 0 0 -1.0015]

    B = [0;

      -2.4614;

      0;

      0.8455]

    C = [1 0 0 0;

      0 0 1 0]

    D =1

    sys = ss(A,B,C,D);                                #将ABCD空间化

    sys1 = c2d(sys,0.1)                             #将sys离散化,采样时间0.1s

    x = [0;

      0;

      0;

      0];                                                #初始状态假设为0

    u = 0.001;                                           #初始控制量(这个随意,只是为了验证)

    for  i = 1:100                                      #观察10s内的变化,采样为0.1s,需要采样100次

      x(:,i+1) = sys1(1,1).A * x(:,i) + sys1(1,1).B * u;              #经典的方程,乘法注意矩阵维度

    end

    #可以查看变量x的100次变化,简单的离散化模型就建立完成了,以上仅仅是模型,为了更好的结果还需要有控制器等,这里不详细说明

    体会:问题模型已经通过矩阵(ABCD)显示出来了,里面的公式等等就相当于是个箱子,我们通过输入矩阵,得到的结果也仅仅是矩阵

  • 相关阅读:
    腾讯开源 APIJSON 连创五个第一
    最火的分布式 HTAP 数据库 TiDB
    完爆Facebook/GraphQL,APIJSON全方位对比解析(三)-表关联查询
    后端自动化版本管理,再也不用改URL了!
    后端开挂:3行代码写出8个接口!
    3步创建服务端新表及配置
    Activity猫的一生-故事解说Activity生命周期
    APIJSON-以坚持和偏执,回敬傲慢和偏见
    APIJSON,让接口和文档见鬼去吧!
    Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...
  • 原文地址:https://www.cnblogs.com/niulang/p/9036596.html
Copyright © 2020-2023  润新知