MATLAB命令和矩阵函数_小韩每天进步一点点的博客-CSDN博客

上文了解到一些常用的MATLAB命令和矩阵函数,通过文档,可以快速找到对应功能的命令和矩阵函数。以画一个伯德图为例:

MATLAB具有在需要时可供调用的在线帮助工具。命令help会显示那些具有在线帮助的 预定义函数和运算符的清单。命令

help函数名

会给出与所列特定函数的目的和用法有关的信息。命令

help help

会给出如何使用在线帮助的信息。

>> help help

 输入回车,命令行窗口出现相关信息; 

MATLAB软件还有智能纠错的能力,如:

>> hele
未定义函数或变量 'hele'。
 
是不是想输入:
>> help

零基础入门想要画一个伯德图:

>> help bode

选择bode的参考页(蓝色字体已被标记出),查看帮助文档。

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
bode(H)

 键入代码,可以根据该传递函数的零极点绘制一个伯德图,即Figure 1。

对于纯新手,对于tf()命令同样不了解。如法炮制:

>> help tf

选择tf的参考页(蓝色字体已被标记出),查看帮助文档。

 Syntax意思为语法,我们输入命令:

>> H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
>> H = tf([1 0.1 7.5],[1 0.12 9 0 0])

H =
 
    s^2 + 0.1 s + 7.5
  ----------------------
  s^4 + 0.12 s^3 + 9 s^2

可见上面的表达式的结果是传递函数,bode()命令的操作对象是传递函数。

对比上面的两条语句,区别在于分号。

分号的用法。分号用来取消显示。如果某个语句的最后字符是分号,就取消显示;该命令 仍然执行,但结果不予显示。这是一个很有用的性质,因为人们也许不需要显示中间结果。另 外,在输入矩阵时,分号用来表示矩阵的某行已经结束,但最后一行不用分号。

 上面的例子对应的是单一的传递函数,实际应用中一个系统可能对应多个传递函数:

>> Numerator = {[1 1] ; 1};
>> Denominator = {[1 2 2] ; [1 0]};
>> H = tf(Numerator,Denominator,'InputName','current',...
        'OutputName',{'torque' 'ang. velocity'},...
        'Variable','p') 

H =
 
  From input "current" to output...
                p + 1
   torque:  -------------
            p^2 + 2 p + 2
 
                   1
   ang. velocity:  -
                   p
 
Continuous-time transfer function.

表示该模型有一个输入——电流和两个输出——扭矩和角速度。表示变量为p

观察左下角工作区(变量区):

 此时可以将H看作是一个2行1列的矩阵;

我们先引入冒号的用法:

冒号常用案标记矩阵的下标。A(:, j)是矩阵A的第j列,A(i,:)是矩阵A的第i行。

 先看一个实例:

>> A=[1,2,3;4,5,6;7,8,9]  %逗号表示隔开元素,分号表示某行结束

A =

     1     2     3
     4     5     6
     7     8     9
>> A(:, 3)

ans =

     3
     6
     9

>> A(2,:)

ans =

     4     5     6
>> A(5)

ans =

     5
>> A(7)

ans =

     3

>> A(3)

ans =

     7

那么我们想要得到电流——扭矩的传递函数,需要输入:

>> a=H(1,:)

a =
 
  From input "current" to output "torque":
      p + 1
  -------------
  p^2 + 2 p + 2
 
Continuous-time transfer function.

然后,绘制出其传递函数对应的伯德图:

>> bode(a)

出现Figure 1

为便于查找和调用,可以用Matlab给系统自动生成的窗体Figure1改名称

>> figure('NumberTitle', 'off', 'Name', '电流——扭矩的传递函数'); %先建立一个空白的Figure
>> bode(a)

绘制伯德图如下:

 最后分享两个新手常用的命令:

>> clc %清空命令行
>> clearvars %清除内存中的变量
>> clear A  %清除部分变量

 我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐