Matlab的全称为:
Matrix Laboratory, 即矩阵实验室。
它的特点是:
适合矩阵运算, 适合矩阵运算 ,适合矩阵运算。
举例而言:要计算 矩阵 n 阶矩阵 M与N的乘积,matlab只需要一条指令:M*N,且花费的时间极少;
而对于C语言来说,需要利用循环一次次相乘再相加。从耗费的时间上来说,是矩阵运算的很多倍。
对于初学者而言,常常忽略matlab的矩阵运算优势,在遇到具体例子时,会再进行详细解释。
1、工作路径的设置与修改 安装好matlab后,桌面会存在一个 matlab.exe 的快捷方式,右键->快捷方式,在起始位置处输入自己定义的matlab工作路径。 2、命令行窗口字体大小修改 matlab默认的字体可能太小,可以适当增大字体。 3、常用命令与快捷键
注: 暂时好像不能插入外部链接,只能将就贴上网址。文档内容在后期可能会修改,认为有用的话,可以点击下方的“阅读原文”,关注我的知乎专栏。
1、工作路径的设置与修改 安装好matlab后,桌面会存在一个 matlab.exe 的快捷方式,右键->快捷方式,在起始位置处输入自己定义的matlab工作路径。 2、命令行窗口字体大小修改 matlab默认的字体可能太小,可以适当增大字体。 3、常用命令与快捷键
%% 通用命令clear % 清除工作区所有变量。clear x, 可以清除指定名为x的变量clc % 清空命令行窗口。可以结合clear使用:clear;clchelp % 当忘记命令的用法时,可以调出用法简介。如:help clcsyms % 定义符号变量。如 syms x y ztic + toc % 计算代码运行时间。将tic 放置在一段代码的前面,将toc放在代码的后面。 % 建议利用tic toc 来验证文章最初始说的矩阵运算的效率问题。plot % 绘图指令,过于重要,后面专门写zeros(n,n) % 定义一个n*n 的零矩阵ones(n,n) % 定义一个n*n 的全1矩阵eye(n) % 定义一个n阶单位矩阵 eps % matlab 自定义的一个最小数。matlab的分母不允许为0,可以在分母不确定时,加一个eps。format % 改变数据显示精度。format short; format longvpa % 某些情况下,出来的公式是分数,导致公式F长度太大,可以利用vpa(F,n),指定每个数的有效位数。%% 通用快捷键Tab % 当忘记命令全称、或想探索相关指令时,按键盘的tab键,可以自动补全命令。↑ % 在命令行窗口,快速翻阅历史输入指令Ctrl + C % 当matlab进入死循环时,强制中断程序运行。Ctrl + Q % 快速关闭matlab%% M文件快捷键Ctrl + N % 新建M文件Ctrl + R % 添加注释。鼠标所在行 或 选中多行, 按下后,进行注释Ctrl + T % 取消注释。鼠标所在行 或 选中多行, 按下后,取消注释Ctrl + A % 选中所有代码Ctrl + I % 自动对齐代码。通常先使用 Ctrl+A 选中所有代码后,再使用。%% Simulink快捷键Ctrl + E % 打开模型的属性设置器Alt + Enter % 设置 选中模块的主要参数Ctrl + Shift + I % 打开/关闭 模型的属性观察器Ctrl + F % 查找 字符串。可以是变量名、模块名Ctrl + R % 逆时针旋转模块Ctrl + I % 翻转模块(左右翻转)Ctrl + M % 给子系统添加封装Ctrl + U % 看子系统内部图Ctrl + Shift + Y % 将选中模块注释掉,看做 信号线,注意与 Ctrl + Shift + X 的区别Ctrl + Shift + X % 将选中模块注释掉,看做 断线。
4、经典控制理论相关命令
%% 以下命令建议一条条输入命令行窗口,看看效果s = tf('s'); % tf指令 将字母s 定义为 复频域算子sG = (s + 5)/(s^2 + 3*s + 9); % 定义一个典型的二阶系统figure % 新建一个图形窗口,可加可不加step(G); % 显示系统G的阶跃响应% hold on % hold on 指令可以在前面图窗的基础上,添加新的图形。后续可以hold off 取消figure % 防止覆盖上一张图,又不想在同一张图中显示。impulse(G); % 显示系统G的脉冲响应figurebode(G); % 显示系统G的bode图figurenyquist(G); % 显示系统G的Nyquist图 % 除了使用系统自带指令来绘制bode图、Nyquist图,也可以自行绘制相关图形。在后续介绍了图形绘制指令后% 再进行详细阐述% 也可以处理离散控制Ts = 1e-3; % 定义采样频率 Ts = 1 ms z = tf('z',Ts); % 利用tf指令,定义字母z 为z算子。G2 = (0.463*z-0.3393)/(z^2 - 1.5327*z + 0.6607);step(G2); % 可以利用step等指令观察其响应% 若给定了s域传递函数,需要求其离散域函数,可以利用 c2d 指令Gz = c2d(G,Ts,'zoh'); % 需要指定离散化步长,离散化方法,可选的有:zoh,foh,impulse,tustin等。bode(G,Gz) % 观察bode图可以发现,频率特性几乎一致。需要指出的是,采样频率越高,越接近。 %% 以下设定 传递函数在给定输入下的时域响应t = linspace(0,2,10000); % 在[0,1]中,等间距的选取1000个数,定义为时间t。u = t > 0.3; % 利用比较,定义一个逻辑数组,在0.5s时,产生阶跃信号lsim(G,u,t) % 绘制出时域响应曲线
5、绘图指令在论文撰写过程中,漂亮的图表的重要性不言而喻。鉴于该部分的重要性,将单独用一篇文章进行详细介绍。
暂时先贴之前写的文章:https://zhuanlan.zhihu.com/p/74272911
6、Simulink的使用技巧 Simulink同样是极为重要的,之后将录制视频。在视频中,对一些小技巧进行讲解。 7、帮助文档 在使用matlab遇到的大部分问题,都可以利用搜索引擎解决。在matlab自带的帮助文档中,也会给出模块的具体解释和用法,是重要的参考文献。如下图所示。 此外有matlab的中文论坛: https://www.ilovematlab.cn/forum.php matlab的英文官网: https://www.mathworks.com/support.html?s_cid=pl_support matlab的另一个藏宝阁,满是秘籍。用之,受益无穷: https://www.mathworks.com/matlabcentral/fileexchange/?s_tid=gn_mlc_fx 8、推荐的参考文献1、张志涌、杨祖樱。MATLAB教程(最新版)。2、孙忠潇(hyowinner). Simulink仿真及代码生成技术入门到精通[M].北京航空航天大学出版社.
注: 暂时好像不能插入外部链接,只能将就贴上网址。文档内容在后期可能会修改,认为有用的话,可以点击下方的“阅读原文”,关注我的知乎专栏。