控制系统与MATLAB的菜鸟教程(三)…
来源:互联网 发布:js怎么判断日期格式 编辑:程序博客网 时间:2024/06/07 05:48
为打字方便,以下把MATLAB简称“小麦”
昨天学校开运动会,一群人被抓去当观众,就没写成。晚上在群里声讨,为什么都读研了还要做这种事情,最后大家的一致结论是:这年头呀,研一的和大一的没啥区别,呵呵。
从这一篇开始,我们介绍有关控制系统的内容,我的目的是想让大家熟悉和初步掌握:MATLAB是如何辅助我们处理控制系统的问题的,从这一篇开始,我们要接触到大量的工具箱函数,熟练和灵活的应用这些函数是学习的关键。前面说过,我打算从古典控制论的MATLAB应用写起,一直到最后能够结合我的主攻方向来给大家尽量介绍一些先进的控制策略以及MATLAB仿真,现在,让我们回到奈奎斯特、伯德、维纳和伊文斯的时代,开始漫长的古典控制理论。
昨天学校开运动会,一群人被抓去当观众,就没写成。晚上在群里声讨,为什么都读研了还要做这种事情,最后大家的一致结论是:这年头呀,研一的和大一的没啥区别,呵呵。
从这一篇开始,我们介绍有关控制系统的内容,我的目的是想让大家熟悉和初步掌握:MATLAB是如何辅助我们处理控制系统的问题的,从这一篇开始,我们要接触到大量的工具箱函数,熟练和灵活的应用这些函数是学习的关键。前面说过,我打算从古典控制论的MATLAB应用写起,一直到最后能够结合我的主攻方向来给大家尽量介绍一些先进的控制策略以及MATLAB仿真,现在,让我们回到奈奎斯特、伯德、维纳和伊文斯的时代,开始漫长的古典控制理论。
拉普拉斯变换与逆变换
拉普拉斯同志在天堂一定笑的很开心,因为有了小麦,呵呵,关于L变换和逆变换,只要两个函数就可以搞定,laplace和ilaplace。
上面两个函数是符号计算工具箱里的函数,拉普拉斯变换的定义这里就不说了,这个都不知道的话一种方法是撞墙,另一种方法去看书吧。一般情况下,L变换是以字母t为自变量,以其他字母作为参数来进行变换。记得我们前面说的,必须告诉小麦,这些东西统统都是字符变量,才可以进行下面的计算。
现在来计算 和sin(wt)的L变换:代码如下
结果就是相应的L变换
现在来计算函数:的L变换,并对结果进行通分
代码如下:
这个代码的结果是分散的三个分式的形式
可以用函数numden()对这个表达式进行通分
格式是:[a,b]=numden(f)
运行上面的代码后a,b的值分别是通分后的分子和分母多项式
在这里,把小麦里已经定义好的单位冲击函数和单位阶跃函数告诉大家,分别是dirac(t)和heaviside(t),使用之前记得要把t设置为符号变量,如果你要想把阶跃函数加1个单位的延迟只需要heaviside(t-1)就可以了。关于这两个函数网上很多人再问,大吵大嚷的人也有,但大多数人居然不知道,这里我给大家指出来,大家可以尝试一下把这两个函数进行L变换看看结果是否正确,以后再用到这两个函数的时候可别说我没告诉过你哦!!!
逆L变换
用函数ilaplace,这个函数主要是以字母s为自变量,以其他字母为参数进行变换,这也和我们平时习惯是一样的,得到的结果是一个以关于字母t的函数
现在来求像函数
的逆 L变换
代码如下:
对一个时域或传递函数矩阵,可以先把矩阵定义好之后再对这个矩阵进行L和逆L变换,得到结果是矩阵里每一个元素的变换结果:举一个简单例子:
这个代码不解释了,相信大家能知道它的意思
在这里,顺便把z变换和逆z变换的函数告诉大家,用法和L变换的两个函数大致相同,分别是:ztrans和iztrans。
下面来介绍关于绘图的几个最基本的操作
问题一 如何画平面曲线图
用函数plot和ezplot
直接举例:
在0到pi上画cost*sint的图像
用plot命令,代码:
说明一下,这里定义的t和y都是一个向量,plot命令把这些密度很大的向量点连在一起,让大家认为是一个曲线的形式,可以尝试一下把plot(t,y)变成plot(y,t)看看有什么变化,一看就知道啦
还有,记得我前面特意关照的关于向量之间相乘的问题么,这里是向量的对应项做乘法,因此是点乘,这个点符号一定不要忘记加上,如果你去掉了,就会提示错误。
用ezplot函数,代码如下
这里说两点,用这个函数的时候,t的步长系统自动指定,y定义的是一个符号表达式,不是一个向量,这个与plot有点区别,因此,在写表达式的时候就不用写点乘符号了。只要按习惯来写就可以了。
另外,关于如何指定曲线的颜色,线型等属性,可以去查一查表,这里就不赘述了。
问题二
如何在一张图上画一条以上以上的曲线,以便比较
用命令:hold on
废话不多说,看例子
现在,我要把sinx和cosx的0到2pi的图像画到同一幅图里去。
代码如下
其中,'r'的意思是指定第二条曲线为红色,
如果不用hold on命令,这个代码也可以直接写成
最后,你可以运行hold off命令关闭这一功能,再画新图的时候,就只有最新的一条曲线了,大家可以去尝试一下。
问题三:如何把不同的图形画在不同的窗口里
这里举个例子就明白了
现在把sinx和cosx的0到2pi的图像画在两个窗口的坐标系里,代码入下
懂了吧figure(1)和figure(2)目前可以认为是指定两个窗口
继续,我们来学习如何构造连续系统的传递函数
理论简述:
首先,告诫大家不要学着学着就忘本了。
现在我来问你们几个问题,如果你能回答上来,说明你还没有忘本。如果对下面的问题不是特别的清楚,建议你最好先弄清楚再往下看
第一:以连续系统为例子,传递函数是怎么来的
第二:为什么要用传递函数来表达系统,好处在哪里,有什么局限。
OK,我来给大家的一个简单的参考答案,连续系统中,把一个系统的微分方程等号两边分别取拉普拉斯变换,然后把输入和输出放在一边,其他项放在另一边就得到了我们的传递函数模型。
实际上,通过L变换,系统的微分方程模型转换成了代数方程模型,分析代数方程无论从难度和手段的多样性都要比直接分析微分方程好很多,因此,我们采用传递函数来研究一个系统更加的直观和方便。另外,传递函数表达了一个系统输入和输出的关系,也就是说,一系统给定了,那么它的传递函数就不会变化,也就是说传递函数不受输入和输出的变化影响。
传递函数的局限在于,它只能反映系统的外部特性,也就是输入和输出的特性,因此,传递函数模型也被一些人称为“黑箱”模型,因为我们只能看到由它引起的外部变化,并不能解决系统内部的一些问题和矛盾。要解决这个问题就要用状态空间模型和现代控制理论,因此,状态空间模型又称“白箱”模型,我们可以清晰的看到它的内部结构,以便对系统进行优化和完善。
关于系统模型的问题先说一下构想,我想分步骤来写,连续系统传递函数模型的各种形式在这篇里介绍,频率响应模型我打算在频域分析里简单说一下,关于状态空间的问题,在后面讲到现代控制原理的内容时再专门介绍。关于离散的内容,还没想好要怎么弄,初步打算是专门写个东西来介绍它。
现在我们来生成一个传递函数模型:
用函数 tf 可以很方便的构造:
方法一 代码如下
num和den分别为分子和分母多项式的系数
方法二 代码如下:
拉普拉斯同志在天堂一定笑的很开心,因为有了小麦,呵呵,关于L变换和逆变换,只要两个函数就可以搞定,laplace和ilaplace。
上面两个函数是符号计算工具箱里的函数,拉普拉斯变换的定义这里就不说了,这个都不知道的话一种方法是撞墙,另一种方法去看书吧。一般情况下,L变换是以字母t为自变量,以其他字母作为参数来进行变换。记得我们前面说的,必须告诉小麦,这些东西统统都是字符变量,才可以进行下面的计算。
现在来计算
结果就是相应的L变换
现在来计算函数:的L变换,并对结果进行通分
代码如下:
这个代码的结果是分散的三个分式的形式
可以用函数numden()对这个表达式进行通分
格式是:[a,b]=numden(f)
运行上面的代码后a,b的值分别是通分后的分子和分母多项式
在这里,把小麦里已经定义好的单位冲击函数和单位阶跃函数告诉大家,分别是dirac(t)和heaviside(t),使用之前记得要把t设置为符号变量,如果你要想把阶跃函数加1个单位的延迟只需要heaviside(t-1)就可以了。关于这两个函数网上很多人再问,大吵大嚷的人也有,但大多数人居然不知道,这里我给大家指出来,大家可以尝试一下把这两个函数进行L变换看看结果是否正确,以后再用到这两个函数的时候可别说我没告诉过你哦!!!
逆L变换
用函数ilaplace,这个函数主要是以字母s为自变量,以其他字母为参数进行变换,这也和我们平时习惯是一样的,得到的结果是一个以关于字母t的函数
现在来求像函数
代码如下:
对一个时域或传递函数矩阵,可以先把矩阵定义好之后再对这个矩阵进行L和逆L变换,得到结果是矩阵里每一个元素的变换结果:举一个简单例子:
这个代码不解释了,相信大家能知道它的意思
在这里,顺便把z变换和逆z变换的函数告诉大家,用法和L变换的两个函数大致相同,分别是:ztrans和iztrans。
下面来介绍关于绘图的几个最基本的操作
问题一
用函数plot和ezplot
直接举例:
在0到pi上画cost*sint的图像
用plot命令,代码:
说明一下,这里定义的t和y都是一个向量,plot命令把这些密度很大的向量点连在一起,让大家认为是一个曲线的形式,可以尝试一下把plot(t,y)变成plot(y,t)看看有什么变化,一看就知道啦
还有,记得我前面特意关照的关于向量之间相乘的问题么,这里是向量的对应项做乘法,因此是点乘,这个点符号一定不要忘记加上,如果你去掉了,就会提示错误。
用ezplot函数,代码如下
这里说两点,用这个函数的时候,t的步长系统自动指定,y定义的是一个符号表达式,不是一个向量,这个与plot有点区别,因此,在写表达式的时候就不用写点乘符号了。只要按习惯来写就可以了。
另外,关于如何指定曲线的颜色,线型等属性,可以去查一查表,这里就不赘述了。
问题二
如何在一张图上画一条以上以上的曲线,以便比较
用命令:hold on
废话不多说,看例子
现在,我要把sinx和cosx的0到2pi的图像画到同一幅图里去。
代码如下
其中,'r'的意思是指定第二条曲线为红色,
如果不用hold on命令,这个代码也可以直接写成
最后,你可以运行hold off命令关闭这一功能,再画新图的时候,就只有最新的一条曲线了,大家可以去尝试一下。
问题三:如何把不同的图形画在不同的窗口里
这里举个例子就明白了
现在把sinx和cosx的0到2pi的图像画在两个窗口的坐标系里,代码入下
懂了吧figure(1)和figure(2)目前可以认为是指定两个窗口
问题四:如何在同一个窗口里显示多幅图像
用subplot命令
还是举例子,现在我要把sinx和cosx的0到2pi的图像画同一个窗口的两张图里去。
代码如下
用subplot命令
还是举例子,现在我要把sinx和cosx的0到2pi的图像画同一个窗口的两张图里去。
代码如下
subplot(m,n,k)的意思是,把窗口分成m行n列个图像(坐标系),k表示这些图像里先从左到右在从上到下的第k个图像,把这第k个图像指定为当前的坐标系来进行操作。结合上面的例子,相信大家能很好的理解。
OK,以上四个问题是我们作图的最基本操作,关于作图的问题,有很多方法,很多的函数可以执行,这篇先说这么多,以后如果有需要再专门介绍。
OK,以上四个问题是我们作图的最基本操作,关于作图的问题,有很多方法,很多的函数可以执行,这篇先说这么多,以后如果有需要再专门介绍。
继续,我们来学习如何构造连续系统的传递函数
理论简述:
首先,告诫大家不要学着学着就忘本了。
现在我来问你们几个问题,如果你能回答上来,说明你还没有忘本。如果对下面的问题不是特别的清楚,建议你最好先弄清楚再往下看
第一:以连续系统为例子,传递函数是怎么来的
第二:为什么要用传递函数来表达系统,好处在哪里,有什么局限。
OK,我来给大家的一个简单的参考答案,连续系统中,把一个系统的微分方程等号两边分别取拉普拉斯变换,然后把输入和输出放在一边,其他项放在另一边就得到了我们的传递函数模型。
实际上,通过L变换,系统的微分方程模型转换成了代数方程模型,分析代数方程无论从难度和手段的多样性都要比直接分析微分方程好很多,因此,我们采用传递函数来研究一个系统更加的直观和方便。另外,传递函数表达了一个系统输入和输出的关系,也就是说,一系统给定了,那么它的传递函数就不会变化,也就是说传递函数不受输入和输出的变化影响。
传递函数的局限在于,它只能反映系统的外部特性,也就是输入和输出的特性,因此,传递函数模型也被一些人称为“黑箱”模型,因为我们只能看到由它引起的外部变化,并不能解决系统内部的一些问题和矛盾。要解决这个问题就要用状态空间模型和现代控制理论,因此,状态空间模型又称“白箱”模型,我们可以清晰的看到它的内部结构,以便对系统进行优化和完善。
关于系统模型的问题先说一下构想,我想分步骤来写,连续系统传递函数模型的各种形式在这篇里介绍,频率响应模型我打算在频域分析里简单说一下,关于状态空间的问题,在后面讲到现代控制原理的内容时再专门介绍。关于离散的内容,还没想好要怎么弄,初步打算是专门写个东西来介绍它。
现在我们来生成一个传递函数模型:
用函数
方法一
num和den分别为分子和分母多项式的系数
方法二
方法三 代码如下
0 0
- 控制系统与MATLAB的菜鸟教程(三)…
- 控制系统与MATLAB的菜鸟教程(一)…
- 控制系统与MATLAB的菜鸟教程(二)…
- 控制系统与MATLAB的菜鸟教程(四)…
- Ardunio菜鸟教程(三)
- 从菜鸟到高手的linux教程(三)
- Matlab控制系统与仿真个别指令解析
- 2.8 控制系统数学模型的MATLAB描述
- MATLAB:经典控制系统的分析和设计
- 基于Matlab的控制系统仿真实例
- MATLAB实现控制系统的时域分析
- MATLAB实现控制系统的根轨迹分析
- MATLAB控制系统校正工具sisotool的使用
- 分布式版本控制系统----GIT的使用(三)
- 机器人路径规划 转自《机器人控制系统的设计与matlab仿真》
- Matlab教程三:回归分析(拟合)
- 安装IBM小型机控制系统的教程
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)
- •HTML和CSS的编写
- 傅里叶变换、拉氏变换、z变换的含…
- easyui combobox 使用汇总
- 傅里叶变换的物理意义
- 卷积物理意义的超强解释
- 控制系统与MATLAB的菜鸟教程(三)…
- 控制系统与MATLAB的菜鸟教程(四)…
- pitch yaw roll 最直观的解释(转…
- ANSYS常见错误和警告
- Android开发系列:调试问题
- ANSYS中von mises stres…
- 有关simulink的仿真和m文件…
- 用分析函数去掉标量子查询
- 申花绿地股权转让完成