为打字方便,以下把MATLAB简称“小麦”
昨天学校开运动会,一群人被抓去当观众,就没写成。晚上在群里声讨,为什么都读研了还要做这种事情,最后大家的一致结论是:这年头呀,研一的和大一的没啥区别,呵呵。
从这一篇开始,我们介绍有关控制系统的内容,我的目的是想让大家熟悉和初步掌握:MATLAB是如何辅助我们处理控制系统的问题的,从这一篇开始,我们要接触到大量的工具箱函数,熟练和灵活的应用这些函数是学习的关键。前面说过,我打算从古典控制论的MATLAB应用写起,一直到最后能够结合我的主攻方向来给大家尽量介绍一些先进的控制策略以及MATLAB仿真,现在,让我们回到奈奎斯特、伯德、维纳和伊文斯的时代,开始漫长的古典控制理论。
昨天学校开运动会,一群人被抓去当观众,就没写成。晚上在群里声讨,为什么都读研了还要做这种事情,最后大家的一致结论是:这年头呀,研一的和大一的没啥区别,呵呵。
从这一篇开始,我们介绍有关控制系统的内容,我的目的是想让大家熟悉和初步掌握:MATLAB是如何辅助我们处理控制系统的问题的,从这一篇开始,我们要接触到大量的工具箱函数,熟练和灵活的应用这些函数是学习的关键。前面说过,我打算从古典控制论的MATLAB应用写起,一直到最后能够结合我的主攻方向来给大家尽量介绍一些先进的控制策略以及MATLAB仿真,现在,让我们回到奈奎斯特、伯德、维纳和伊文斯的时代,开始漫长的古典控制理论。
拉普拉斯变换与逆变换 拉普拉斯同志在天堂一定笑的很开心,因为有了小麦,呵呵,关于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)目前可以认为是指定两个窗口
|