MATLAB仿真中连续和离散的控制器有何区别?
仿真步长和求解精度的概念对于理解这个问题至关重要。
首先是步长,步长和求解精度存在一对矛盾,步长的选择是仿真消耗的时间和求解精度要求的折中。计算机只能一步一步计算你的电路或者其他方程,例如你输入一个连续的信号,计算机在一个时刻仅仅会采集这个信号上的一个点,然后把这个点带入你的控制器数学方程中,求出电路方程的一个解,根据这个解得到系统的输出。因此,仿真波形其实是一个个的点聚集在一起形成的,并非所见的一条曲线。很显然,一个个离散的点之间的间隔越小,出来的波形就越漂亮,你仿真所得到的误差就会越小。如果步长无穷接近0
,那么仿真结果就无穷接近于物理系统。为何不能让计算机系统的步长无穷接近0
呢?如果这样的话,计算机系统的计算量太大,导致仿真消耗的时间会太长。实际仿真中步长的选择需要结合仿真所消耗的时间和仿真精度要求两者之间的关系,在消耗的时间和精度之间进行折中。
其次是求解精度,精度不仅受到仿真步长的影响,而且系统的离散化方法和求解结束后通过离散的点得到连续曲线的插值算法也会影响求解精度。目前有多离散化方法,不同的离散化方法所得到的结果精度不同,不同的离散化方法都有一个“特征采样时间”可以使得自己在这个采样时间下精度最好。因此,离散化方法离散结束后不仅仅得到一个离散系统,还会有一个最佳仿真步长。
上述为步长和精度的概念以及两者之间的关系,接下来分析MATLAB提供连续和离散两种输入方式的目的。
MATLAB提供连续系统的控制器和控制对象输入是为了:便于用户方便快捷使用仿真软件。对于一个小白,他并不懂得上述步长、离散方法、求解精度的概念,但又想得到一个较好的仿真结果怎么办?MATLAB提供这种方式,你只需要输入一个连续传递函数,matlab会根据连续系统的特性使用内部自带的离散化方法对你的系统离散化,并自动设置一个仿真步长,你需要完成的就是等待,这样降低了用户的使用门槛儿和难度。对于一个懂得理论的人,他也有可能不想自己耗费时间和精力去进行系统的离散化,这样的“自动化”使得软件用起来更加方便。
MATLAB提供离散的控制器和控制对象输入是为了追求更高的仿真精度,为用户提供更加广泛的选择。有些精度要求很高的系统,其仿真步长由其他因素决定,必须选择固定的或一段范围的步长。这种情况下系统自己的离散化方法以及自己计算的步长并不适合仿真,两者同时或者有其一必须由用户指定。为了在这种苛刻条件下依旧可以使用仿真软件,用户需要根据自己的要求对系统自行离散化,得到离散系统和对应的采样时间,自己输入到软件中,从而得到相应精度要求下的仿真结果。离散的控制器和对象的输入方法在在这种情况下拓宽了软件的适用范围,为用户提供了更加自由的选择空间。
因此,你所问的问题中,四种控制之间的区别在于仿真精度和消耗的时间。因为软件现在很强大,所以,若想要看到四种控制之间的差异,需要找到一个精度要求很高,而且极易不稳定的系统才能看出差别在哪里。对于一般的应用,四种方法可以任选其一。
此文也在我的知乎文章中发表。
MATLAB仿真中连续和离散的控制器有何区别?的更多相关文章
- OFDM通信系统的MATLAB仿真(1)
由于是第一篇博客,想先说点废话,其实自己早就想把学到的一些东西总结成文章随笔之类的供自己复习时查看的了.但是一是觉得自己学的的不够深入,总结也写不出什么很深刻的东西:二是觉得网上也有海量的资料了,需要 ...
- OFDM通信系统的MATLAB仿真(2)
关于OFDM系统的MATLAB仿真实现的第二篇随笔,在第一篇中,我们讨论的是信号经过AWGN信道的情况,只用添加固定噪声功率的高斯白噪声就好了.但在实际无线信道中,信道干扰常常是加性噪声.多径衰落的结 ...
- 经典功率谱估计及Matlab仿真
原文出自:http://www.cnblogs.com/jacklu/p/5140913.html 功率谱估计在分析平稳各态遍历随机信号频率成分领域被广泛使用,并且已被成功应用到雷达信号处理.故障诊断 ...
- (转) 经典功率谱估计及Matlab仿真
原文出自:http://www.cnblogs.com/jacklu/p/5140913.html 功率谱估计在分析平稳各态遍历随机信号频率成分领域被广泛使用,并且已被成功应用到雷达信号处理.故障诊断 ...
- 使用axes函数在matlab绘图中实现图中图的绘制
使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1 ...
- MATLAB仿真总结
MATLAB仿真过程中,编写MATLAB代码的时候犯了很多错误,做了很多蠢事.记录下自己犯错的点点滴滴,并引以为戒.使用MATLAB版本为2014a,以下内容如有不当还请指正. 1. 仿真开始前清理工 ...
- 极化码的matlab仿真(1)——参数设置
根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...
- C# if中连续几个条件判断
C# if中连续几个条件判断 1.if (条件表达式1 && 条件表达式2) 当条件表达式1为true时 using System; using System.Collections. ...
- 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)
http://www.matlabsky.com/thread-43937-1-1.html <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下) ...
随机推荐
- bzoj4825 [Hnoi2017]单旋
Description H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必 ...
- [C#学习]1.Hello World
在很多时候我们都是被helloworld带入编程的世界的,所以这句话应该算是我们程序员最熟悉的一句话了把.所以在这里,那我也照样以helloworld为例子来引入我们的C#学习. 在往常的hellow ...
- Scraping_regex
上面链接爬虫只是能将我们所需的网页下载下来,但是,我们没办法得到我们想要的数据.因此,我们只有URL管理器和URL下载器是不足以组成一个完整的网络爬虫的.我们还需要URL解析器,对数据进行提取. 数据 ...
- Android Weekly Notes Issue #256
Android Weekly Issue #256 May 7th, 2017 Android Weekly Issue #256 本期内容包括: 一个给ViewPager切换时加动画的库; Tail ...
- PHP实现类似于MySQ L的group by 效果
简单版本:只用于获取组数据 其实就是将键值变成键,遍历的时候键相同的会覆盖 $res[$v['country']] [] 可以 = 1,无关紧要
- Vulkan Tutorial 开发环境搭建之Windows
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么 ...
- java面向对象--包及访问控制符
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...
- 初码-Azure系列-迁移PHP应用至Azure的一些实践记录和思考
最近客户在逐步迁移应用从阿里云到Azure,这次又轮到一个PHP+MySQL应用了,顺便也记一下流水账. 需求:迁移部署在阿里云上的ECS服务器(系列2,IO优化+2核4G+50G的SSD云盘+10M ...
- html学习笔记 - 列表
<!-- 无序列表 --> <ul type = square> <li><a href="https://www.baidu.com"& ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...