单片机MATLAB.docx
- 文档编号:29989900
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:40
- 大小:897.11KB
单片机MATLAB.docx
《单片机MATLAB.docx》由会员分享,可在线阅读,更多相关《单片机MATLAB.docx(40页珍藏版)》请在冰豆网上搜索。
单片机MATLAB
第1章基础准备及入门
Matlab简介
●(XX)MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
●(MathWorks)MATLAB®是一种用于数值计算、可视化及编程的高级语言和交互式环境。
使用MATLAB,可以分析数据,开发算法,创建模型和应用程序。
借助其语言、工具和内置数学函数,您可以探求多种方法,比电子表格或传统编程语言(如C/C++或Java™)更快地求取结果。
●MATLAB应用广泛,其中包括信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域。
在各行业和学术机构中,有一百多万工程师和科学家使用MATLAB这一技术计算语言。
●matlab最新版本
实例演示:
1.科学计算问题—微分方程求解
求解两点边值问题:
。
本例演示:
dsolve解边值问题;可视化微分方程的解;ezplot和plot的混合使用。
(1)求解边值问题
y=dsolve('x*D2y-3*Dy=x^2','y
(1)=0,y(5)=0','x')
y=
31/468*x^4-1/3*x^3+125/468
(2)观察“解”的图形
ezplot(y,[-1,6])
holdon
plot([1,5],[0,0],'.r','MarkerSize',20)
text(1,1,'y
(1)=0')
text(4,1,'y(5)=0')
%title(['x*D2y-3*Dy=x^2',',y
(1)=0,y(5)=0'])
holdoff
2.光学现象模拟---牛顿环(newton'ring)
3.细菌生长模型
MATLAB的安装和工具包选择
MATLAB要求Win2000或WinXP平台。
注意:
(1)安装MATLAB时,假如你机器的硬盘的自由空间远大于3G,或假如你需要用到光盘上MATLAB的所有功能及工具包,那么你就点选“Typical”。
(2)在点选“Custom”后,可以根据需要,勾选相应的组件。
图1.1-1MATLAB组件选择界面
表1.1-1MATLAB各组件的功用
组件名称
功用
1.必须选择的本原性组件
MATLAB
这是最核心的部分。
没有它就没有MATLAB环境。
有了它,就可以对各类数据(除符号类数据以外)进行操作、运算和可视化。
2.最常选的通用性工具包组件
SymbolicMathToolbox
符号类数据的操作和计算。
ExtendedSymbolicMathToolbox
更丰富的符号计算函数和指令
3.其他通用性工具包组件
Simulink
不用编写程序,利用方块图实现建模和仿真;主要用于研究微分和差分方程描写的非线性动态系统。
OptimizationToolbox
包含求函数零点、极值、规划等优化程序。
MatlabCompiler
把MATLAB的M文件编译成独立应用程序。
MatlabbuilderforExcel
与MATLABCompiler配合使用,生成Excel插件。
4.常用专业性工具包组件
ControlSystemToolbox
MATLAB涉及控制的工具包有10多个,而本栏工具包是最基本的,是解决控制问题所必选的。
至于其他控制工具包则是用户根据需要选择的。
SignalProcessingToolbox
是MATLAB信号处理中的基本工具包。
SplineToolbox
内含样条和插值函数。
StatisticsToolbox
包含进行复杂统计分析所需的程序。
5.其他专业性工具包组件(举例)
Stateflow
与Simulink配合使用,主要用于较大型、复杂的(离散事件)动态系统的建模、分析、仿真。
SystemIdentificationToolbox
动态系统辨识。
......
Desktop操作桌面的启动
MATLAB的启动
●直接点击图标
启动MATLAB
●点击matlab\bin\win32文件夹中的matlab.exe
注意:
这两种启动方式所产生的当前目录不同
Desktop操作桌面简介
图1.2-1Desktop操作桌面的默认外貌
CommandWindow运行入门
最基本界面
CommandWindow指令窗简介
图1.3-1几何独立的指令窗
最简单的计算器使用法
【例1.3-1】求
的算术运算结果。
本例演示:
最初步的指令输入形式和必需的操作步骤。
〖说明〗
●本例在指令窗中实际运行的情况参见图1.3-1。
●“>>”是“指令输入提示符”,自动生成的。
●MATLAB的运算符(如+、-等)都是常见习惯符号。
●一条指令输入结束后,必须按[Enter]键,那指令才被执行。
●若输入指令是“不含赋值号的表达式”,则计算结果被赋给变量“ans”。
它是MATLAB的一个预定义变量。
数值、变量和表达式
10一数值的记述
以下记述的数值在MATLAB中合法。
3-990.0019.4561.3e-34.5e33
数值采用“占用64位内存的双精度”表示,大约保持有效数字16位。
其相对精度是eps(MATLAB的又一个预定义变量)。
10二变量命名规则
●变量名、函数名对字母大小写敏感
●变量名的第一个字符必须是英文字母,最多可包含63个字符
●变量名中不得包含空格、标点、运算符,但可以包含下连符
10三MATLAB默认的预定义变量
MATLAB有所谓预定义变量(PredefinedVariable)。
每当MATLAB启动,这些变量就自动产生。
这些变量都有特殊含义和用途。
注意:
用户在编写指令和程序时,应尽可能不对预定义变量重新赋值,以免产生混淆。
表1.3-1MATLAB中最常用的预定义变量
预定义变量
含义
预定义变量
含义
ans
计算结果的默认变量名
NaN或nan
不是一个数(NotaNumber),如0/0,
eps
机器零阈值
Inf或inf
无穷大,如1/0
nargin
函数输入宗量数目
i或j
虚单元
nargout
函数输出宗量数目
pi
圆周率
realmax
最大正实数
realmin
最小正实数
10四运算符和表达式
表1.3-2MATLAB表达式的基本运算符
数学表达式
矩阵运算符
数组运算符
加
a+b
a+b
减
a-b
a-b
乘
a*b
a.*b
除
a/b或b\a
a./b或b.\a
幂
a^b
a.^b
圆括号
()
()
()
10五面向复数设计的运算——MATLAB特点之一
复数
直角坐标和极坐标表示之间转换指令如下。
real(z)给出复数
的实部
。
imag(z)给出复数
的虚部
。
abs(z)给出复数
的模
。
angle(z)以弧度为单位给出复数
的幅角
。
【例1.3-4】复数
表达,及计算
。
本例演示:
正确的复数输入法;涉及复数表示方式的基本指令。
(1)经典教科书的直角坐标表示法
z1=4+3i%合法,但建议少用或不用
z1=
4.0000+3.0000i
〖说明〗
●在这种书写格式中,在4和i之间不许“空格”存在。
(2)采用运算符构成的直角坐标表示法和极坐标表示法
z2=1+2*i%运算符构成的直角坐标表示法
z3=2*exp(i*pi/6)%运算符构成的极坐标表示法
z=z1*z2/z3
z2=
1.0000+2.0000i
z3=
1.7321+1.0000i
z=
1.8840+5.2631i
(3)复数的实虚部、模和幅角计算
real_z=real(z)
image_z=imag(z)
magnitude_z=abs(z)
angle_z_radian=angle(z)%弧度单位
angle_z_degree=angle(z)*180/pi%度数单位
real_z=
1.8840
image_z=
5.2631
magnitude_z=
5.5902
angle_z_radian=
1.2271
angle_z_degree=
70.3048
【例1.3-5】图示复数
的和(配图1.3-2)。
本例演示:
MATLAB的运算在复数域上进行;指令后“分号”的作用;复数加法的几何意义;展示MATLAB的可视化能力
z1=4+3*i;z2=1+2*i;
%在一个物理行中,允许输入多条指令。
%但各指令间要用“分号”或“逗号”分开。
%指令后采用“分号”,使运算结果不显示。
z12=z1+z2
%以下用于绘图
clf,holdon%clf清空图形窗。
逗号用来分隔两个指令。
plot([0,z1,z12],'-b','LineWidth',3)
plot([0,z12],'-r','LineWidth',3)
plot([z1,z12],'ob','MarkerSize',8)
holdoff,gridon,
axisequal
axis([0,6,0,6])
text(3.5,2.3,'z1')
text(5,4.5,'z2')
text(2.5,3.5,'z12')
xlabel('real')
ylabel('image')
shg
z12=
5.0000+5.0000i
图1.3-2两个复数相加
【例1.3-6】
?
本例演示:
MATLAB运算定义在复数域的实质;指令后“分号”抑制运算结果的显示;MATLAB的方根运算规则;更复杂指令的表示方式;展现MATLAB的图形表现力。
(1)直接计算时,得到处于第一象限的方根。
a=-8;
r_a=a^(1/3)%求3次根
r_a=
1.0000+1.7321i
(2)
的全部方根计算
%先构造一个多项式
p=[1,0,0,-a];%p是多项式
的系数向量
%指令末尾的“英文状态分号”使该指令运行后,不显示结果。
R=roots(p)%求多项式的根
R=
-2.0000
1.0000+1.7321i
1.0000-1.7321i
(3)图形表示
MR=abs(R
(1));%计算复根的模
t=0:
pi/20:
2*pi;%产生参变量在0到2*pi间的一组采样点
x=MR*sin(t);
y=MR*cos(t);
plot(x,y,'b:
'),gridon%画一个半径为R的圆
%注意“英文状态逗号”在不同位置的作用
holdon
plot(R
(2),'.','MarkerSize',30,'Color','r')
plot(R([1,3]),'o','MarkerSize',15,'Color','b')
axis([-3,3,-3,3]),axissquare
holdoff
图1.3-3(-8)的全部三次方根分布
10六面向数组设计的运算——MATLAB特点之二
在MATLAB中,标量数据被看作
的数组(Array)数据。
所有的数据都被存放在适当大小的数组中。
【例1.3-7】实数数组
的“一行”输入法。
本例演示:
二维数组的最基本、最常用输入法;二维数组输入的三大要素。
在键盘上输入下列内容,并运行。
AR=[1,3;2,4]
AR=
13
24
〖说明〗
●二维数组输入的三大要素:
数组标识符“[]”;
元素分隔符空格或逗号“,”;
数组行间分隔符分号“;”或“回车键”。
【例1.3-9】对复数数组
进行求实部、虚部、模和幅角的运算。
本例演示:
复数数组的生成;MATLAB指令对数组元素“并行操作”的实质。
(1)创建复数数组
AR=[1,3;2,4];AI=[5,7;6,8];
A=AR-AI*i%形成复数矩阵
A=
1.0000-5.0000i3.0000-7.0000i
2.0000-6.0000i4.0000-8.0000i
(2)求复数数组中各元素的模和幅角——循环法(笨!
)
form=1:
2
forn=1:
2
Am1(m,n)=abs(A(m,n));
Aa1(m,n)=angle(A(m,n))*180/pi;
end
end
Am1,Aa1
Am1=
5.09907.6158
6.32468.9443
Aa1=
-78.6901-66.8014
-71.5651-63.4349
(3)求复数数组的实部和虚部——直接法
A_real=real(A)
A_image=imag(A)
A_real=
13
24
A_image=
-5-7
-6-8
(4)求复数数组中各元素的模和幅角——直接法
Am2=abs(A)
Aa2=angle(A)*180/pi
【例1.3-10】画出衰减振荡曲线
,
的取值范围是
(配图1.3-4)。
本例演示:
展示数组运算的优点;展示MATLAB的可视化能力。
t=0:
pi/50:
4*pi;%定义自变量t的取值数组
y=exp(-t/3).*sin(3*t);%注意:
乘法符前的小黑点。
plot(t,y,'-r','LineWidth',2)%绘制曲线
axis([0,4*pi,-1,1])
xlabel('t'),ylabel('y')
图1.3-4衰减振荡曲线
〖说明〗
●“.*”符号表示乘法是在两个数组相同位置上的元素间进行的。
本书把这种乘法称为“数组乘”。
该指令是典型的“向量化”处理形式。
【例1.3-11】复数矩阵
的生成,及计算
矩阵乘积(A取自算例1.3-9)。
本例演示:
MATLAB矩阵运算指令的简捷性。
B=[3+2i,2+6i;5+3*i,4-2*i]
%复数数组的又一种输入方式
%注意标点符号的作用
C=A*B%矩阵乘法
B=
3.0000+2.0000i2.0000+6.0000i
5.0000+3.0000i4.0000-2.0000i
C=
49.0000-39.0000i30.0000-38.0000i
62.0000-42.0000i40.0000-40.0000i
〖说明〗
●“矩阵相乘”的指令格式与“标量相乘”指令格式一样。
在其他编程语言中,矩阵乘法不得不依赖“循环”进行。
●MATLAB之所以能把矩阵运算表达得像标准“线性代数”那样简洁易读、自然流畅,那是由于MATLAB的设计者采用了“面向对象”编程技术。
CommandWindow操作要旨
指令窗的显示方式
10七默认的输入显示方式
10八运算结果的显示
●屏幕上显示的数字结果由5位数字构成。
这是“双精度”数据的默认输出格式。
用户不要误认为,运算结果的精度只有5位有效数字。
●实际上,MATLAB以16位有效数字的“双精度”进行运算和保存。
●MATLAB数值计算结果显示格式的类型见表1.4-1。
表1.4-1数据显示格式的控制指令
指令
含义
举例说明
format
formatshort
通常保证小数点后四位有效,最多不超过7位;对于大于1000的实数,用5位有效数字的科学记数形式显示。
314.159被显示为314.1590;
3141.59被显示为3.1416e+003
formatlong
15位数字表示
3.14159265358979
formatshorte
5位科学记数表示
3.1416e+00
formatlonge
15位科学记数表示
3.14159265358979e+00
formatshortg
从formatshort和formatshorte中自动选择最佳记数方式
3.1416
formatlongg
从formatlong和formatlonge中自动选择最佳记数方式
3.14159265358979
formatrat
近似有理数表示
355/113
formathex
十六进制表示
400921fb54442d18
format+
显示大矩阵用。
正数、负数、零分别用+,-,空格表示。
+
formatbank
(金融)元、角、分表示
3.14
formatcompact
显示变量之间没有空行
formatloose
在显示变量之间有空行
●
10九显示方式的永久设置
指令行中的标点符号
表1.4-2MATLAB常用标点的功能
名称
标点
作用
空格
(为机器辨认)用作输入量与输入量之间的分隔符;
数组元素分隔符。
逗号
用作要显示计算结果的指令与其后指令之间的分隔;
用作输入量与输入量之间的分隔符;
用作数组元素分隔符号。
黑点
.
数值表示中,用作小数点;
用于运算符号前,构成“数组”运算符。
分号
;
用于指令的“结尾”,抑制计算结果的显示;
用作不显示计算结果指令与其后指令的分隔;
用作数组的行间分隔符。
冒号
:
用以生成一维数值数组;
用做单下标援引时,表示全部元素构成的长列;
用做多下标援引时,表示那维上的全部元素。
注释号
%
由它“启首”的所有物理行部分被看作非执行的注释
单引号对
''
字符串记述符
圆括号
()
改变运算次序;
在数组援引时用;
函数指令输入宗量列表时用。
方括号
[]
输入数组时用;
函数指令输出宗量列表时用。
花括号
{}
胞元数组记述符;
图形中被控特殊字符括号。
下连符
_
(为使人易读)用作一个变量、函数或文件名中的连字符;
图形中被控下脚标前导符。
续行号
...
由三个以上连续黑点构成。
它把其下的物理行看作该行的“逻辑”继续,以构成一个“较长”的完整指令。
“At”号
@
放在函数名前,形成函数句柄;
匿名函数前导符;
放在目录名前,形成“用户对象”类目录。
〖说明〗为确保指令正确执行,以上符号一定要在英文状态下输入。
因为MATLAB不能识别含有中文标点的指令。
指令窗的常用控制指令
表1.4-3常见的通用操作指令
指令
含义
指令
含义
cd
设置当前工作目录。
exit
关闭/退出MATLAB
clf
清除图形窗
quit
关闭/退出MATLAB
clc
清除指令窗中显示内容
more
使其后的显示内容分页进行
clear
清除MATLAB工作空间中保存的变量
return
返回到上层调用程序;结束键盘模式
dir
列出指定目录下的文件和子目录清单
type
显示指定M文件的内容
edit
打开M文件编辑器
which
指出其后文件所在的目录
指令窗中指令行的编辑
表1.4-4MATLAB指令窗中实施指令行编辑的常用操作键
键名
作用
键名
作用
前寻式调回已输入过的指令行
Home
使光标移到当前行的首端
后寻式调回已输入过的指令行
End
使光标移到当前行的尾端
在当前行中左移光标
Delete
删去光标右边的字符
在当前行中右移光标
Backspace
删去光标左边的字符
PageUp
前寻式翻阅当前窗中的内容
Esc
清除当前行的全部内容
PageDown
后寻式翻阅当前窗中的内容
CommandHistory历史指令窗
CommandHistory历史指令窗简介
表1.5-1历史指令窗主要应用功能的操作方法
应用功能
操作方法
简捷操作方法
单行或多行指令的复制
点亮单行或多行指令;按鼠标右键引出现场菜单;选中{Copy}菜单项,即可用复合键[Ctrl+V]把它“粘贴”到任何地方(包括指令窗)。
单行指令的运行
点亮单行指令;按鼠标右键引出现场菜单;选中{EvaluateSelection}菜单项,即可在指令窗中运行,并见到相应结果。
鼠标左键双击单行指令。
多行指令的运行
点亮多行指令;按鼠标右键引出现场菜单;选中{EvaluateSelection}菜单项,即可在指令窗中运行,并见到相应结果。
(详见例1.5-1)
把多行指令写成M文件
点亮多行指令;按鼠标右键引出现场菜单;选中{CreateM-File}菜单项,就引出书写着这些指令的M文件编辑调试器;再进行相应操作,即可得所需M文件。
历史指令的再运行
【例1.5-1】演示如何再运行算例1.3-10中的全部绘图指令。
图1.5-1再运行历史指令的演示
CurrentDirectory、路径设置器和文件管理
CurrentDirectory当前目录浏览器简介
图1.6-1当前目录浏览器和适配的弹出菜单
表1.6-1当前目录适配菜单的应用
应用功能
操作方法
简捷操作方法
运行M文件
点亮待运行文件;按鼠标右键引出现场菜单;选中{Run}菜单项,即可使该M文件运行。
编辑M文件
点亮待运行文件;按鼠标右键引出现场菜单;选中{Open}菜单项,此M文件就出现在编辑/调试器中。
鼠标左键双击M文件。
把MAT文件全部数据输入内存
点亮待装数据文件;按鼠标右键引出现场菜单;选中{Open}菜单项,此文件的数据就全部装入工作内存。
鼠标左键双击MAT文件。
把MAT文件部分数据输入内存
点亮待装载数据文件;按鼠标右键引出现场菜单;选中{ImportData}菜单项,引出数据预览选择对话框“ImportWizard”;在此框中“勾选”待装数据变量名,点击[Finish]键,就完成操作。
用户目录和当前目录设置
(1)建立用户目录
(2)应把用户目录设置成当前目录
(3)把用户目录设置成当前目录的方法
MATLAB的搜索路径
MATLAB搜索路径的扩展
10一十何时需要修改搜索路径
●假如用户有多个目录需要同时与MATLAB交换信息,那么就应把这些目录放置在MATLAB的搜索路径。
●其中用来存放运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 MATLAB
![提示](https://static.bdocx.com/images/bang_tan.gif)