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(下) ...
随机推荐
- 使用Docker
1. 使用镜像 1.1 在Docker Hub上查找镜像 我们查找一下之前博客里面,推送到Docker Hub里面的bage88/docker-demo,能看到有2个仓库,第一个就是我们上次上传的镜像 ...
- poj1990树状数组
Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...
- WebGIS开源解决方案之开发环境搭建(四)
续前几篇文章,前面陆续介绍了开源GIS服务器Geoserver,开源数据库Postpresql以及开源前端udig的安装和基本使用. WebGIS前端开发,可以选择arcgis for javascr ...
- CSS3特效----制作立体导航栏菜单
使用CSS3实现下图的导航菜单效果 <!doctype html> <html lang="en"> <head> <meta chars ...
- Ubuntu server搭建Java web服务器
1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...
- [刷题]Codeforces 786A - Berzerk
http://codeforces.com/problemset/problem/786/A Description Rick and Morty are playing their own vers ...
- PS不能存储,因为程序错误
当PS中遇到不能存储文件,因为程序错误时,可以这样: http://www.zcool.com.cn/article/ZMTgwOTQw.html
- kotlin, 一种新的android平台一级开发语言
最近看到一则科技新闻, 大致内容是google将kotlin语言作为android应用开发的一级语言, 与java并驾齐驱, 这是一个开发界的大事件大新闻, 连google的亲儿子go语言也没有这种待 ...
- 响应式网站-全屏banner响应的2中方法 - 被吃掉的banner
通常来讲, 设计师们喜欢把banner设计成全屏(1920px或以上) 主题内容控制在一定的范围内一般在1200px左右 这样的设计即可以在宽屏上的表现很好.也能向下兼容一些小屏幕的设备: 如下图(所 ...
- Configure HttpClient correctly
References: [1] http://dev.bizo.com/2013/04/sensible-defaults-for-apache-httpclient.html We have hit ...