zoukankan      html  css  js  c++  java
  • matlab数据流仿真和时间流仿真

    simulink 使用的动态系统仿真,仿真需要求状态方程和输出方程,关键是求状态方程,而状态方程的求解有多种算法,可变步长和定步长,所以仿真时对求解器的选择和步长的设置就比较重要。

    所谓基於数据流的仿真方式,就是指在整个仿
    真时间段上,根据信号流动的先后顺序逻辑,从信号输入端开始,对一个子系统进行仿真得出
    在整个仿真时间段上的状态数据和输出,然后基於这些数据再对下一个子系统进行仿真,直到
    整个系统的信号输出端。
    在基於数据流的仿真方式下,只有当上一个阶段的计算完成后,才开始进入下一阶段的计
    算,因此在求解的过程中,我们无法「实时」地观察到整个系统各个状态变量的变化情况,只
    有当系统各个阶段均已经计算完毕之后,才能够观察到计算时间段上系统的状态和各个输出
    点的信号变化情况。
    所谓基於时间流的仿真,就是按照时间的推进,同步计算系统中各个子系统的状态演进过
    程。只有当前时刻上的系统中全部子系统的所有状态均已计算得出之后,才开始进行下一个
    时刻的计算,这个过程一直持续下去,直到计算时刻推进到仿真终止时间為止。
    由此可见,基於时间流的仿真求解过程中,在当前时刻计算完毕后我们就能够瞭解系统的
    状态全貌,因此可以做到「实时」地观测系统中各个状态变量的变化情况。
    基於数据流的仿真方法和基於时间流的仿真方法各有特点。一般而言,在 Matlab 编程中
    採用基於数据流的仿真方法容易利用矩阵运算模式,从而提高计算效率和速度,而基於时间
    流的仿真方法则需要通过循环结构编程来实现时间推进,相对效率较低。但是如果循环结构
    是经过仿真平台内部优化处理的,那麼基於时间流的仿真甚至也能够达到基於数据流的效率。
    因此,在使用 Matlab 语言的编程仿真中,较多地採用了基於数据流的方法,而在 Simulink 可
    视化编程中,则使用循环优化的基於时间流的仿真方法。

  • 相关阅读:
    Do you want a timeout?
    [整]常用的几种VS编程插件
    [转]Windows的窗口刷新机制
    [整][转]Invoke和BeginInvoke的使用
    [整]C#获得程序路径
    [转]Visual Studio 2010 单元测试目录
    飞秋的实现原理
    面向对象的七大原则
    [转]玩转Google开源C++单元测试框架Google Test系列
    [转]C#中的Monitor类
  • 原文地址:https://www.cnblogs.com/lianjiehere/p/4142192.html
Copyright © 2011-2022 走看看