matlab系统同时提供连续和离散的控制器和对象的目的是:在降低用户使用复杂程度的同时提高仿真精度、仿真速度和应用的广泛性。

仿真步长和求解精度的概念对于理解这个问题至关重要。

首先是步长,步长和求解精度存在一对矛盾,步长的选择是仿真消耗的时间和求解精度要求的折中。计算机只能一步一步计算你的电路或者其他方程,例如你输入一个连续的信号,计算机在一个时刻仅仅会采集这个信号上的一个点,然后把这个点带入你的控制器数学方程中,求出电路方程的一个解,根据这个解得到系统的输出。因此,仿真波形其实是一个个的点聚集在一起形成的,并非所见的一条曲线。很显然,一个个离散的点之间的间隔越小,出来的波形就越漂亮,你仿真所得到的误差就会越小。如果步长无穷接近0
,那么仿真结果就无穷接近于物理系统。为何不能让计算机系统的步长无穷接近0
呢?如果这样的话,计算机系统的计算量太大,导致仿真消耗的时间会太长。实际仿真中步长的选择需要结合仿真所消耗的时间和仿真精度要求两者之间的关系,在消耗的时间和精度之间进行折中。

其次是求解精度,精度不仅受到仿真步长的影响,而且系统的离散化方法和求解结束后通过离散的点得到连续曲线的插值算法也会影响求解精度。目前有多离散化方法,不同的离散化方法所得到的结果精度不同,不同的离散化方法都有一个“特征采样时间”可以使得自己在这个采样时间下精度最好。因此,离散化方法离散结束后不仅仅得到一个离散系统,还会有一个最佳仿真步长。
上述为步长和精度的概念以及两者之间的关系,接下来分析MATLAB提供连续和离散两种输入方式的目的。

MATLAB提供连续系统的控制器和控制对象输入是为了:便于用户方便快捷使用仿真软件。对于一个小白,他并不懂得上述步长、离散方法、求解精度的概念,但又想得到一个较好的仿真结果怎么办?MATLAB提供这种方式,你只需要输入一个连续传递函数,matlab会根据连续系统的特性使用内部自带的离散化方法对你的系统离散化,并自动设置一个仿真步长,你需要完成的就是等待,这样降低了用户的使用门槛儿和难度。对于一个懂得理论的人,他也有可能不想自己耗费时间和精力去进行系统的离散化,这样的“自动化”使得软件用起来更加方便。

MATLAB提供离散的控制器和控制对象输入是为了追求更高的仿真精度,为用户提供更加广泛的选择。有些精度要求很高的系统,其仿真步长由其他因素决定,必须选择固定的或一段范围的步长。这种情况下系统自己的离散化方法以及自己计算的步长并不适合仿真,两者同时或者有其一必须由用户指定。为了在这种苛刻条件下依旧可以使用仿真软件,用户需要根据自己的要求对系统自行离散化,得到离散系统和对应的采样时间,自己输入到软件中,从而得到相应精度要求下的仿真结果。离散的控制器和对象的输入方法在在这种情况下拓宽了软件的适用范围,为用户提供了更加自由的选择空间。
因此,你所问的问题中,四种控制之间的区别在于仿真精度和消耗的时间。因为软件现在很强大,所以,若想要看到四种控制之间的差异,需要找到一个精度要求很高,而且极易不稳定的系统才能看出差别在哪里。对于一般的应用,四种方法可以任选其一。

此文也在我的知乎文章中发表。

MATLAB仿真中连续和离散的控制器有何区别?的更多相关文章

  1. OFDM通信系统的MATLAB仿真(1)

    由于是第一篇博客,想先说点废话,其实自己早就想把学到的一些东西总结成文章随笔之类的供自己复习时查看的了.但是一是觉得自己学的的不够深入,总结也写不出什么很深刻的东西:二是觉得网上也有海量的资料了,需要 ...

  2. OFDM通信系统的MATLAB仿真(2)

    关于OFDM系统的MATLAB仿真实现的第二篇随笔,在第一篇中,我们讨论的是信号经过AWGN信道的情况,只用添加固定噪声功率的高斯白噪声就好了.但在实际无线信道中,信道干扰常常是加性噪声.多径衰落的结 ...

  3. 经典功率谱估计及Matlab仿真

    原文出自:http://www.cnblogs.com/jacklu/p/5140913.html 功率谱估计在分析平稳各态遍历随机信号频率成分领域被广泛使用,并且已被成功应用到雷达信号处理.故障诊断 ...

  4. (转) 经典功率谱估计及Matlab仿真

    原文出自:http://www.cnblogs.com/jacklu/p/5140913.html 功率谱估计在分析平稳各态遍历随机信号频率成分领域被广泛使用,并且已被成功应用到雷达信号处理.故障诊断 ...

  5. 使用axes函数在matlab绘图中实现图中图的绘制

    使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1 ...

  6. MATLAB仿真总结

    MATLAB仿真过程中,编写MATLAB代码的时候犯了很多错误,做了很多蠢事.记录下自己犯错的点点滴滴,并引以为戒.使用MATLAB版本为2014a,以下内容如有不当还请指正. 1. 仿真开始前清理工 ...

  7. 极化码的matlab仿真(1)——参数设置

    根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...

  8. C# if中连续几个条件判断

    C# if中连续几个条件判断 1.if (条件表达式1 && 条件表达式2) 当条件表达式1为true时 using System; using System.Collections. ...

  9. 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)

    http://www.matlabsky.com/thread-43937-1-1.html   <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下)     ...

随机推荐

  1. NodeJS 阻塞/非阻塞

    阻塞实例 var fs = require('fs'); var data = fs.readFileSync('test.txt') console.log(data.toString()); co ...

  2. 【知识学习】如何寻找真实IP

    1.多地点ping查询IP,如果都一样可能没有使用cdn,如果有cdn,尝试海外地点ping查询IP 2.ping一下没有WWW的域名,可能存在真实IP.比如www.baidu.com设置了cdn,那 ...

  3. mysql行列转换方法总结

    这是一道行转列并且构造交叉表的问题: http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html 数据样 ...

  4. js判断字符串是否全为空(使用trim函数/正则表达式)

    我们需要判断用户输入的是否全是空格,可以使用以下方法: 方法一: 使用trim() /* 使用String.trim()函数,来判断字符串是否全为空*/ function kongge1(test) ...

  5. poj2594最小顶点覆盖+传递闭包

    传递闭包最开始是在Floyd-Warshall算法里面出现的,当时这算法用的很少就被我忽视了.. 传递闭包是指如果i能到达k,并且k能到达j,那么i就能到达j Have you ever read a ...

  6. 2017Unity开发者大会备受关注的原因有哪些?

    Unite大会是由Unity举办的全球开发者大会,至今已有10年的历史.从最开始Unity开发者大会仅500人,到现在Unity大会已经增长到5000人,10倍的参与人数,Unity开发者大会仅仅用了 ...

  7. Docker - 在Ubuntu16.04中安装Docker CE

    Get Docker for Ubuntu Check system version root@Ubuntu16:~# uname -a Linux Ubuntu16 4.8.0-36-generic ...

  8. 企业Centos服务器分区常用方案

    方案一: 一般公司生产环境,数据不是非常重要,集群架构中的一个节点服务器: /boot: 200M swap: 8G内存以下,1.5倍 8G内存以上,设置8G就够了 / : 剩下的所以存储空间 方案二 ...

  9. WebSocket实战

    前言 互联网发展到现在,早已超越了原始的初衷,人类从来没有像现在这样依赖过他:也正是这种依赖,促进了互联网技术的飞速发展.而终端设备的创新与发展,更加速了互联网的进化: HTTP/1.1规范发布于19 ...

  10. angular控制器之间的传值

    每个controller都会有自己的scope,所有的scope都是属于 $rootScope的子或者子的子... 那么问题就好解决了,通过 $rootScope.$broadcast 广播的事件每个 ...