MATLAB入门实例——绘制伯德图
MATLAB命令和矩阵函数_小韩每天进步一点点的博客-CSDN博客上文了解到一些常用的MATLAB命令和矩阵函数,通过文档,可以快速找到对应功能的命令和矩阵函数。以画一个伯德图为例:MATLAB具有在需要时可供调用的在线帮助工具。命令help会显示那些具有在线帮助的 预定义函数和运算符的清单。命令help函数名会给出与所列特定函数的目的和用法有关的信息。命令help help会给出如何使用在线帮助
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的研究生,刚开始写博客。希望和大家多多交流,一起进步!
更多推荐
所有评论(0)