Matlab基础
关于MATLAB
MATLAB是Matrix laboratory的缩写,是美国的MATHWORK公司开发的一种进行科学和工程计算的交互式程序语言。1984年推出第一个商业版本,到现在已经到了6.1版本,功能日趋完善和强大。主要适用于矩阵运算及控制和信息处理领域的分析设计。另外还包括仿真、系统辨识、神经元网络、模糊控制等工具箱。其中Simulink仿真工具箱可以利用图形界面和框图来编程和仿真。
运行MATLAB程序的流程
• MATLAB软件通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;
• MATLAB系统也可以执行储存在文件中的命令序列。这两种工作方式构成了系统的解释环境。
数字运算
MATLAB可以像计算器一样直接进行数学运算。
在MATLAB命令窗口内输入:
80*0.8+16*12.2
ans =
259.2000
帮助命令help
MATLAB提供了大量的函数和命令,如果想记住所有的函数及其调用格式几乎是不可能的。在线帮助可以由help 命令来获得。在MATLAB 的命令窗口直接键入help即可得到所有的帮助主题。如果要对某一命令或函数进行查询,直接在help后跟上该命令或函数即可。
变量的命名规则
变量名对大小写敏感。
变量名的首字符必须是字母。
每个变更名最多可包含19个字符。函数的命名规则与变量相同。
表达式
MTLAB对使用者键入的表达式进行翻译和计算,语句的形式通常为:
变量=表达式;
或简单地写作: 表达式;
其中分号是可选的,如果该语句的最后一个字符是分号,则在执行词句时不在屏幕上显示结果。
表达式是由运算符,函数以及变量名组成。例如:z=r*sin(x)
简单矩阵的输入
矩阵不需维数说明和类型定义,存储单元完全由计算机自动分配。输入矩阵最简单的方法是输入矩阵的元素表,每个元素之间用空格或逗号隔开,用“;”号作为元素表中每一行的结束符,并用[ ]将元素表括起来。
例如,输入语句:a=[1 2 3;4 5 6;7 8 9]
则结果为:a = 1 2 3
4 5 6
7 8 9
向量的产生
冒号是MATLAB中一个重要的字符。
语句:x=1:5
产生一个行向量,其元素为1至5的数,每个数较前一数字递增1。即:
x=[1 2 3 4 5 ],增量也可以是其它数。
如:y=[0:2:10]
则 y=[0,2,4,6,8,10]
矩阵操作
1、转置:
若a=[1 2 3;4 5 6]
b=a'
得b =
1 4
2 5
3 6
2、求逆(inverse)
使用函数inv(a),例如:
a=[1 2 0; 2 5 -1; 4 10 -1]
inv(a)
ans =
5 2 -2
-2 -1 1
0 -2 1
3、矩阵的加、减、乘。
两个同维矩阵,才能进行加减运算
c= a+b; d=a-b;
a的列数等于b的行数,则e=a*b;
例如:a=[1 3 5 7], b=[2 4 6 8]则
a.*b’
ans =
2 12 30 56
MATLAB程序的流程
MATLAB通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;
MATLAB系统也可以执行储存在文件中的命令序列。这两种工作方式构成了系统的解释环境。
当面对一个问题,用文本编辑器编辑好MATLAB程序后,保存为后缀为“.m”的文件(实质为MATLAB命令序列),执行时在命令窗口键入M文件名后回车或用菜单命令。
MATLAB程序的流程
MATLAB具有类似其它语言while ,for循环语句,可以实现一条语句或一组语句的多次重复执行。
1、for循环
for i = 1:n,
for j = 1:n
a(i , j) = 1/(i+j-1);
end
end
重复执行FOR 和END之间的命令,可以嵌套。
2、while循环
while 表达式
语句
end
例:n=1;y=0;
while n<=100
y=y+n; n=n+1;
end
得 y =5050
3、if语句
if x>0
x=x ;
else
x= - x ;
end
图形处理
MATLAB有强大图形处理功能,能处理二维、三维及图形对象或句柄图形。
二维图形处理常用命令有:
figure 创建图形窗口
plot、fplot、ezplot 基本的二维绘图命令
semilogx、semilogy、semilog,同plot,但此行的命令坐标轴是lnx,lny
xlabel、ylabel、title 标注轴名称与图形标题
text、gtext、legend 标注图形与图例的标注
help graph2d 二维图形方面有命令
help graph3d 三维图形方面有命令
help specgrah 特殊图形方面有命令
假设有两个同长度的向量 x 和 y, 则用 plot(x,y) 就可以自动绘制画出二维图来。如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。
〖例〗正弦曲线绘制:
t=0:0.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,...,6.2
y=sin(t); % 计算正弦向量
plot(t,y) %绘制图形
这样立即可以得出二维图
控制系统工具箱
控制工具箱包含了进行控制系统分析与设计所必需的工具箱函数。
(1)模型建立 (2)模型变换
(3)模型简化 (4)模型实现
(5)模型特性 (6)方程求解
(7)时间响应 (8)频率响应
(9)根轨迹 (10)估计器/调节器设计
控制系统模型
1)状态空间状态空间形式的系统方程写为:
在MATLAB中,这个系统简单的写为A、B、C、D四个矩阵的形式即可
Sys=ss(A,B,C,D)
2)传递函数
传递函数一般记为:
在MATLAB中,直接用分子/分母系数表示
Num=[b0,b1,b2…bm] den=[a0,a1,a2,….an]
sys=tf(num,den)
(3)零点增益模型(ZP)
在MATLAB中,用[z,p,k]矢量组表示
Sys=zpk(z,p,k)
模型之间的转换
控制系统的时域分析
Impulse 脉冲响应
Step 阶跃响应
Lsim 任意输入interwetten与威廉的赔率体系
控制系统频域分析
Bode Bode图
Nyquist Nyquist图
Margain 增益裕度和相位裕度
例:
figure,bode(sys1) 画其Bode图
figure,nyquist(sys1) 画Nyquist图
margin(sys1) 求系统的幅值裕量与相位裕量
控制系统稳定性分析
在MATLAB中,可利用pzmap函数绘制系统的零极点图,从而确定系统的稳定性
调用格式:
Pzmap(num,den)
系统仿真工具箱SIMULINK
类似VB中在窗体上放置控件一样,SIMULINK用方框图的绘制代替了程序的编写。SIMULINK主要完成两方面的工作
建立控制系统的模型
实现控制系统的仿真
SIMULINK启动
1. 在MATLAB的命令窗口中键入SIMULINK,就打开了SIMULINK的模块库(如图);
2. 在MATLAB命令窗口的file菜单中选择new命令的model,将打开一个新的空白窗口;
3. 在MATLAB的工具栏中,按按钮,将打开一个新的空白窗口;
连接与建模
构成任何一个系统需要三步:选定典型环节、相互联接和给定环节参数。
200多MATLAB经典教程及论文: //www.obk20.com/soft/special/matlab/
评论
查看更多