当前位置:首页 >> 工学 >>

自动化工具软件实验指导书1


第一部分 MATLAB 基础 实验一
一.

MATLAB 介绍

实验目的 (1) 熟悉 MATLAB 开发环境。 (2) 掌握 MATLAB 各种表达式的书写规则以及常用函数的使用。 (3) 熟悉 MATLAB 的基本操作 二. 实验原理 MATLAB (矩阵实验室的简称)是一种专业的计算机程序,用于工程科学的矩阵数学运算。但 在以后的几年内, 它逐渐发展为一种极其灵活的计算体系, 用于解决各种重要的技术问题。 MATLAB 程序执行 MATLAB 语言,并提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单 高效。 三. 实验任务及步骤 1、 学习了解 MATLAB 的实验环境: 在 Windows 桌面上, 双击 MATLAB 图标,即可进入 MATLAB 系统命令窗口。

图 1-1 MATLAB 系统命令窗口 当 MATLAB 运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。三个重要 的窗口有命令窗口;图像窗口;编辑/调试窗口;它们的作用分别为输入命令;显示图形;充许使 用者创建和修改 MATLAB 程序。在本节课中我们将会看到这三个窗口的例子。 当 MATLAB 程序 启动时,一个叫做 MATLAB 桌面的窗口出现了。默认的 MATLAB 桌面结构如图 1-1 所示。在 MATLAB 集成开发环境下,它集成了管理文件、变量和应用程序的许多编程工具。 在 MATLAB 桌面上可以得到和访问的窗口主要有: ■ 命令窗口(The Command Window) ■ 命令历史窗口(The Command History Window) ■ 启动平台(Launch Pad) ■ 编辑调试窗口(The Edit/Debug Window) ■ 工作台窗口和数组编辑器(Workspace Browser and Array Editor) ■ 帮助空间窗口(Help Browser) ■ 当前路径窗口(Current Directory Browser) 1.1 命令窗口

MATLAB 桌面的右边是命令窗口。在命令窗口中,用户可以在命令行提示符(>>)后输入一系 列的命令,这些命令的执行也是在这个窗口中实现的。假设你要计算一个半径为 2.5m 的圆的面积。 在命令窗口中的操作如下:

当回车键敲下的一瞬间,结果被计算了出来,并被存储到一个叫 area 的变量中(其实是一个 1× 1 的数组) 。 这个变量的数值将显示在命令窗口(The Command Windows) 而且这个变量能进行进 一步的计算。 (注意π 是 MATLAB 预先定义好的变量,所以 pi 不需要预先声明。 ) 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行 末打上半个省略号( ...) ,再开始第二行的书写。将一系列命令写入一个文件,在命令窗口 (The Command Windows)输入此文件的文件名,然后 MATLAB 就开始执行这个文件,而不是用直接在 命令窗口(The Command Windows)键入的方法,这样的文件叫做脚本文件(Script files),由于脚本文 件(Script files)的扩展名为“.m”,所以这它也叫做 M 文件。 1.2 历史命令窗口(The History Command Window ) 历史命令窗口( The History Command Window )用于记录用户在命令窗口 (The Command Windows),其顺序是按逆序排列的。即最早的命令在排在最下面,最后的命令排在最上面。这些 命令会一直存在下去,直到它被人为删除。双击这些命令可使它再次执行。在历史命令窗口(The Command Windows)删除一个或多个命令,可以先选择,然后单击右键,这时就有一个弹出菜单出 现,选择 Delete Section。任务就完成了。 1.3 启动平台(the launch pad) 启动平台是一个特殊的工具,为 MATLAB 和其工具箱提供帮助、demos、其他相关文件和应 用程序等参考资料。这些信息是产品附带的,所有的参考资料都在每个产品或工具箱后面列出。不 同的人拥有不同的产品,所以这个内容随个人安装的不同而不同。 图 1-2 显示的是只带有基本 MATLAB 产品的参考资料的启动平台。双击其中一个条目,你将会得到 MATLAB 的帮助,运行 MATLAB 的示例,访问这个程序所支持的标准工具,或访问 MATLAB 在互联网上的网站。

图 1-2 带有基本 MATLAB 产品的参考资料的启动平台 1.4 编辑调试器 编辑调试器一般用于创建 M 文件,或者修改已存在的 M 文件。当你打开或修改一个 M 文件, 编辑调试器会自动被调用。创建一个 M 文件的方法:

一、在菜单按“File/New/M-file”创建; 二、单击图标 。 打开一个已存在的 M 文件也有两个方法: 一、按路径“File/Open”打开; 二、单击图标 。 编程调试器是个重要的程序的文档编辑器,MATLAB 语言的一些特性会被不同的顔色表现出 来。M 文件中的评论用绿色表示,变量和数字用黑色来表示,字符变量用红色表示,语言的关键字 用蓝色表示。如图 1-3 显示了一个包含有 M 文件的简单的编辑窗口。

图 1-3 显示了一个包含有 M 文件的简单的编辑窗口 当 M 文件保存完后,在命令窗口(The Command Windows)中输入这个 M 文件的名字,它就 可以被执行了。 1.5 图像窗口(Figure Windows) 图像窗口主要是用于显示 MATLAB 图像。它所显示的图像可以是数据的二维或三维坐标图, 图片, 或用户图形接口。 下面是一个简单的脚本文件(Script files)用于计算函数 sinx 并打印出图像。

如果此文件以 sin_x.m 为文件名保存,那么你可以在命令窗口(The Command Windows)输入此文 件名就可以执行文件了。当脚本文件(Script files)被编译后,MATLAB 将会找开一个图像窗口,并 在窗口打印出函数 sinx 的图像。

图 1-4

函数 sinx 的图像

1.6 工作区浏览器 当前工作区的内容也可以通过基于 GUI 的工作空间窗口检测到。工作空间窗口默认出现在 MATLAB 桌面的左上角,它提供了和 whos 命令可得到的相同的信息,并当工作区内的内容发生 改变时,其内的信息也会随之更新。工作空间窗口(The workspace browser)允许用户改变工作区 内的任何一个变量的内容。

图 1-5 工作空间窗口 典型的工作空间窗口(The workspace browser)如图 1-5.你能看到它显示的信息和 whos 命令 得到的信息是一样的。双击这个窗口任一变量便产生了一个数组编辑器,这个编辑器允许用户修改 保存在变量中的信息。 1.7 MATLAB 帮助 你有三种方法可以得到 MATLAB 的帮助。最好的方法是使用帮助空间窗口(help browser) 。 你可以单击 MATLAB 桌面工具栏上的图标,也可以在命令窗口(The Command Windows)中输入 helpdesk 或 help win 来启动帮助空间窗口(help browser) 。你可以通过浏览 MATLAB 参考证书或 搜索特殊命令的细节得到帮助。帮助空间窗口如图 1-6 所示。

图 1-6 帮助空间窗口 另外还有两种运用命令行的原始形式得到帮助。第一种方法是在 MATLAB 命令窗口 (The Command Windo ws)中输入 help 或 help 和所需要的函数的名字。 如果你在命令窗口(The Command Windows)中只输入 help, MATLAB 将会显示一连串的函数。 如果有一个专门的函数名或工具箱的 名字包含在内,那么 help 将会提供这个函数或工具箱。 第二种方法是通过 lookfor 命令得到帮助。 lookfor 命令与 help 命令不同,help 命令要求与函数名精确匹配,而 lookfor 只要求与每个函数中 的总结信息有匹配。 Lookfor 命令 比 help 命令运行起来慢得多, 但它提高了得到有用信息的机会。

举个例子,假设你想找到一个求矩阵的逆阵(inverse of matrix)的函数。但是 MATLAB 中没有叫 inverse 的函数,这时 help 命令就不起作用了,只能用 lookfor 命令,得到结果. 2、 实验内容 1) 练习下面指令:clc,clear,clf,dir,path,help,who,whos,save,load,demo。 2) 一小球从空中下落的位移公式为: x ? x0 ? v0t ? 的位置,已知 x0 ? 10m, v0 ? 15m / s, a ? ?9.84m / s 2 。 3) 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情况并保存全部变量。 a) z1 ?

1 2 at ,用 MATLAB 计算小球在 t ? 5s 时 2

1 ? 2i ? ? 2 2sin 850 1 , b) z2 ? In( x ? 1 ? x 2 ), 其中x ? ? , 2 1? e 5 ? 2 ??0.45 ?

? t2, 0 ? t ?1 ? 2 c) z3 ? ? t ? 1 1 ? t ? 2 , 其中t ? 0 : 0.5 : 2.5 ?t 2 ? 2t ? 1, 2 ? t ? 3 ?
4) 用 MATLAB 语句用于画出函数 y( x) ? 2e
?0.2 x

在[0,10]的曲线。

5) M 文件的保存
当保存 M 文件时,文件名不能以数字开头,更不能以纯数字命名 M 文件,例如把一个 M 文 件命名为 54.m,则不管文件内容是什么,运行结果总是 ans =54。

四、思考题
1.与其他高级语言相比,MATLAB 有哪些显著特点? 2.画出 MATLAB 系统的组成结构。

五、实验总结 每次实验后,应对实验进行总结,即实验数据进行整理,绘制波形和图表,分析 实验现象,撰写实验报告。实验报告除写明实验名称、日期、实验者姓名、同组实验 者姓名外,还包括: 1.实验目的; 2.实验内容 3.实验流程图; 4.程序命令清单; 5.运行结果; 6.回答每项实验的有关问答题。

实验二
一.

MATLAB 基本运算

实验目的 (1) 通过实验,进一步熟悉 MATLAB 编程环境。 (2) 掌握 MATLAB 各种表达式的书写规则以及常用函数的使用。 (3) 能用 MATLAB 进行基本的数组、矩阵及符号运算。

(4) 掌握矩阵分析的方法以及能用矩阵求逆法解线性方程组。 实验原理 (1) 赋值语句 1)变量=表达式 2)表达式 (2) 矩阵的建立 1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元 素之间用空格或逗号分开,不同行的元素之间用分号分开。 2)利用 m 文件建立矩阵 3)利用冒号表达式建立一个向量 e1:e2:e3 4) 利用 linspace 函数产生行向量 linspace(a,b,n). 三. 实验任务及步骤 1 变量和数组 MATLAB 程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合,并且拥有 一个数组名。数组可以定义为向量或矩阵。向量一般来描述一维数组,而矩阵往往来描述二维或多 维数组。 2 MATLAB 变量的初始化 当变量初始化时,MATLAB 将会自动建立变量。有三种方式初始化 MATLAB 中的变量: 1)用赋值语句初始化变量,var = expression; 2)用 input 函数从键盘输入初始化变量,my_val = input('Enter an input value:'); 3)从文件读取一个数据 编程隐患: 每一行元素的个数必须完全相同, 每一列元素的个数也必须完全相同. 试图创建一 个不同行(列)拥有不同数目元素的数组, 在编译时将会出现错误. 表 2.1 用于创始化变量的 MATLAB 函数 二.

3 矩阵定义与引用 一维数组的创建 建立方法一:直接输入法

>>A=[1 2 3 4] >>A=[1,2,3,4] 建立方法二:冒号法 例题:建立数组 A,其中 A=[1,2,3,4,5] >> A=1:1:5 >> A=1:5 建立方法三: 特殊方法 调用格式: A=linspace(初始量,终止量,数组元素个数) B=logspace(初始量,终止量,数组元素个数) 例题:生成数组 A,其中 A=[1,2,3,4,5] >>A=linspace(1,5,5) >>A=linspace(1,5.5,5) >>A=linspace(1,5,5.5) 一维数组的引用: 引用格式: arrayName(n);引用一维数组中的第 n 个元素 arrayName(n1:n2);引用一维数组中的第 n1 至 n2 个元素 arrayName([n1 n2]);引用一维数组中的第 n1 和 n2 个元素 arrayName(n1 n2);引用一维数组中的第 n1 和 n2 个元素 (x) 例题: >>A=[1,2,3,4,5] >>A(3) >>A(1:3) 二维数组的创建 例题 >> myArray=[1 2 3 4 5 6 ; 6 5 4 3 2 1 ? 5,sqrt(25),10-5,0+5,abs(-5),5] 二维数组的引用: 引用格式: arrayName(m,n);引用二维数组的第 m 行 n 列的元素 arrayName(m,:);引用二维数组的第 m 行的所有列元素 arrayName(:,n);引用二维数组的第 n 列的所有行元素 arrayName(m1:m2,n);引用二维数组的第 n 列中 m1 至 m2 行的元素 arrayName(m,n1:n2);引用二维数组的第 m 行中 n1 至 n2 列的元素 arrayName([m1 m2],n);引用二维数组的第 n 列中 m1 行和 m2 行的元素 arrayName(m,[n1 n2]);引用二维数组的第 m 行中 n1 列和 n2 列的元 例题: >>A=[1,2,3,4,5;6,7,8,9,10] >>A(1,:) >>A(:,3)

>>A(2, 1:2) >>A(1:2,2) 4 特殊变量 在 MATLAB 中有许多预先定义好的特殊变量。在 MATLAB 中这些特殊变量可以随时使用, 不用初始化。一些常见的预定义值列在表 2.2。 表 2.2 预定义特殊变量

5 标量运算和数组运算 位于赋值号右边的表达式,可以包含标量,数组,括号和数学符号的任一个有效联合运算。两 标量间的标准运算符号如表 2.3 所示。 表 2.3 两标量间的数学运算符

表 2.4 常见的数组和矩阵运算

当我们需要的时候,我们可以运用括号来控制运算顺序。括号内的表达式优先于括号外的表达 式来计算。 MATLAB 在数组运算中提供了两种不同类型的运算, 一种是数组运算(array operations),一种 是矩阵运算(matrix)。数组运算是一种用于元素对元素的运算。 也就是说, 这个运算是针对两数 组相对应的运算使用的。注意两数组的行与列必须相同。否则, MATLAB 将产生错误。数组运算可 以用于数组与标量的运算。 当一个数组和一个标量进行运算时, 标量将会和数组中的每一元素进行 运算。相对地, 矩阵运算则遵守线性代数的一般规则, 像矩阵的乘法。 MATLAB 用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时候,把点 置于符号前来指示这是一个数组运算(例如,.* ) 。表 2.4 给出的是一些常见的数组和矩阵运算。 x=A\B 是方程 A*x=B 的解; x=B/A 是方程 x*A=B 的解。 若 A 为非奇异矩阵,则 A\B 和 B/A 可如下获得: A\B=inv(A)*B B/A=B*inv(A) 求矩阵的秩 例题: 求矩阵 A 的秩。其中 A=[1 2 3;4 5 6]。 >> A=[1 2 3;4 5 6] >> rank(A) 矩阵的特征值 例题:求矩阵 A 的特征值。其中 A=[1 0 0;0 2 0;0 0 3]。 >> A=[1 0 0;0 2 0; 0 0 3] >> eig(A) 方阵的行列式 例题: 求方阵 A 的行列式的值。其中 A=[1 1 0; 0 0 2; 0 5 -1]。 >> A=[1 1 0; 0 0 2;0 5 -1] >> det(A)

6 实验内容

1) 已知:
?12 34 ? 4? ? A?? ? 34 7 87 ? ? ? 3 65 7 ? ?
求下列表达式的值:

?1 3 ? 1? B?? 3? ?2 0 ? ? ? 3 ? 2 7 ? ?

(1) K11 ? A ? 6 * B 和 K12 ? A ? B ? I (其中 I 为单位矩阵) (2) K 21 ? A * B 和 K 22 ? A. * B (3) K 31 ? A 3 和 K 32 ? A. 3 (4) K 41 ? A / B 和 K 42 ? B \ A
^ ^

(5) K 51 ? [ A, B] 和 K 52 ? [ A([1,3],:); B ^ 2] (6) 求矩阵 A 的秩(rank); (7)求矩阵 A 的行列式(determinant) (8) 求矩阵 A 的逆(inverse) ; (8)求矩阵 A 的特征值及特征向量(eigenvalue and eigenvector) 2) 设有矩阵 A 和 B

?1 2 3 4 ?6 7 8 9 ? A ? ?11 12 13 14 ? ?16 17 18 19 ? ? 21 22 23 24

5? ? 3 0 16 ? ? ?17 ?6 9 ? 10 ? ? ? 15 ? , B ? ? 0 23 ?4 ? ? ? ? 20 ? ?9 7 0 ? ? 25? ? ? 4 13 11 ? ?

(1) 求它们的乘积 C; (2) 将矩阵 C 的右下角 3*2 子矩阵赋给 D; (3) 察 MATLAB 工作空间的使用情况。 3) 下面是一个线性方程组:

?1 / 2 1 / 3 1 / 4? ? x1 ? ?0.95? ?1 / 3 1 / 4 1 / 5? ? x 2? ? ?0.67? ? ?? ? ? ? ? ? ? ? ? ? 1 / 4 1 / 5 1 / 6 x 3 0 . 52 ? ?? ? ? ?
(1) 求方程的解。 (2) 将方程右边向量元素 b3 改为 0.53,再求解,并比较 b3 的变化和解的相对变化。 4) 利用 randn 函数产生均值为 0,方差为 1 的 6×6 正态分布随机矩阵 C,然后统计 C 中大于-0.3, 小于 0.3 的元素个数 t。 5) 读以下程序,解释指令 sprintf、fprintf、sscanf 的作用? rand('state',0); a=rand(2,2); s1=num2str(a) s_s=sprintf('%.10e\n',a) fprintf('%.5g\\',a) s_sscan=sscanf(s_s,'%f',[3,2]) 6)关系运算与逻辑运算 已知 a=20,b=-2,c=0,d=1 (1) r1 = a > b (2) r2 = a > b & c > d (3) r3 = a == b* (-10) (4) r4 = ~b | c 7) 一个内阻 R s=50?,电动势 V=120V 的电源驱动一个负载 R L。当 R L 为多少时,R L 的功率最 大?在这种情况下,功率为多少?画以 R L 为自变量的 R L 功率图。

四、思考题
1. 数组, 矩阵,向量有什么区别? 2. 如何让 MATLAB 显示一个实数,带有十五个有效的数字,并有指数形式? 3.

y?

n ??10

?2

10

n

? 2?10 ? 2?9 ? ? ? 29 ? 210 ,求 y=?(用 format

long 查看 y 的值)

五、实验总结
见实验一第五条。

实验三
一. 实验目的

数据可视化

(1) 掌握绘制二维、三维图形的常用函数 (2) 熟悉利用图形对象进行绘图操作的方法。 (3) 掌握绘制图形的辅助操作。 二. 实验原理 MATLAB 的扩展性和机制独立的画图功能是一个极其重要的功能。这个功能使数据画图变得 十分简单。 绘图的一般步骤包括: 1) 曲线数据准备 2) 指定图形窗口和子图位置 3) 绘制图形 4) 设置坐标轴和图形注释 5) 仅对三维图形使用的着色和视点等设置 6) 图形的精细修饰 7) 按指定格式保存或导出图形 三. 实验任务及步骤 1. 基本绘图函数 MATLAB 中最基本的绘图函数是绘制曲线函数 plot。 plot(y) %绘制以 y 为纵坐标的二维曲线 plot(x,y) %绘制以 x 为横坐标 y 为纵坐标的二维曲线 plot(x1,y1,x2,y2…) %在同一窗口绘制多条二维曲线图 说明:x 和 y 可以是实数向量或矩阵,也可以是复数向量或矩阵。 例如: 绘制矩阵 y 为 2×3 的曲线图 >> y=[1 2 3;4 5 6]; >> plot(y)

x 和 y 为向量或矩阵时的 plot(x,y),当 plot(x,y)命令中的参数 x 和 y 是向量或矩阵时,分别有 以下几种情况: ? x 是向量 y 是矩阵时:x 的长度与矩阵 y 的行数或列数必须相等,如果 x 的长度与 y 的每 列元素个数相等,向量 x 与 y 的每列向量画一条曲线;如果 x 的长度与 y 的每行元素个数 相等,则向量 x 与矩阵 y 的每行向量对应画一条曲线;如果 y 是方阵,x 和 y 的行数和列 数都相等,则向量 x 与矩阵 y 的每列向量画一条曲线。

? x 是矩阵 y 是向量时:y 的长度必须等于 x 的行数或列数,绘制的方法与前一种相似。 ? x 和 y 都是矩阵时:x 和 y 大小必须相同,矩阵 x 的每列与 y 的每列画一条曲线。 2 多个图形的绘制 1). 同一个窗口多个子图 使用 subplot 函数建立子图,subplot 函数的命令格式如下: subplot (m,n,i) %将窗口分成(m×n)幅子图中,第 i 幅为当前图 说明:subplot 中的逗号(,)可以省略;子图的编排序号原则是:左上方为第 1 幅,先从左向 右后从上向下依次排列,子图彼此之间独立。 例如: 在同一个窗口中建立四个子图, 在子图中分别绘制 sin(x)、 cos(x)、 sin(2x)和 cos(2x)曲线。 >> x=0:0.1:10; >> subplot(2,2,1)%第一行左图 >> plot(x,sin(x)) >> subplot(2,2,2) %第一行右图 >> plot(x,cos(x)) >> subplot(2,2,3) %第二行左图 >> plot(x, sin(2*x)) >> subplot(2,2,4) %第二行右图 >> plot(x, cos(2*x)) 2)双纵坐标图 双纵坐标图是指在同一个坐标系中使用左右两个不同刻度的坐标轴。 plotyy(x1,y1,x2,y2) %以左、右不同的纵轴绘制两条曲线 3)同一窗口多次叠绘 使用 hold 命令可以保留原图形,使多个 plot 函数在一个坐标系中不断叠绘。hold on 、hold off 、hold 、hold all。 4) 指定图形窗口 figure(n) %产生新图形窗口 3 设置曲线绘制方式、坐标轴和图形注释 1) 曲线的线型、颜色和数据点形 在 plot 函数中还可以通过字符串参数来设置曲线的线型、颜色和数据点形等,命令格式如 下:plot(x, y, s) 说明:s 为字符串,设置曲线的线型、颜色和数据点形等的,线型、颜色与数据点形参数。 例在图形中设置曲线的不同线型和颜色并绘制图形 >> x=0:0.2:10; >> y=exp(-x); >> plot(x,y,'ro-.') >> hold on >> z=sin(x); >> plot(x,z,'m+:') 2) 设置坐标轴 3) 分隔线和坐标框 4) 图形注释 图形注释是对打开的正在编辑的图形进行文字标注,文字标注包括设置标题(title) 、设置坐标 轴标签(label) 、设置图例(legend)和添加标注元素(annotation) 。

4 特殊图形和坐标的绘制 1) 柱状图 柱状图常用于对统计的数据进行显示,便于观察在一定时间段中数据的变化趋势,比较不 同组数据集以及单个数据在所有数据中的分布情况,特别适用于少量且离散的数据。 bar(x,y,width,参数) %画柱状图 2) 面积图 面积图与柱状图相似,只不过是将一组数据的相邻点连接成曲线,然后在曲线与横轴之间 填充颜色,适合于连续数据的统计显示。 area(x,y) %画面积图 3) 饼形图 饼形图适用于显示向量或矩阵中各元素占总和的百分比。 pie(x,explode,'label') %画二维饼形图 ? x 是向量,用于绘制饼形图; ? explode 是与 x 同长度的向量,用来决定是否从饼图中分离对应的一部分块,非零元 素表示该部分需要分离; ? 'label'是用来标注饼形图的字符串数组。 4) 直方图 直方图又称为频数直方图,适于显示数据集的分布情况并具有统计的功能。 hist(y,n) %统计每段的元素个数并画出直方图 N=hist(y,x) %统计出每段元素个数图 3-20 绘制直方图 说明:n 分段的个数,n 省略时则默认为分成 10 段;x 是向量,用于指定所分每个数据段的 中间值;y 可以是向量或矩阵,如果是矩阵则按列分段;N 是每段元素个数,N 可省略,省略时绘 制图形。 5) 离散数据图 (1)stem 函数 将数据用一个垂直于横轴的火柴棒表示,火柴头的小圆表示数据点。 stem(x,y,参数) %绘制火柴杆图 (2)stairs 函数 stairs 函数用于绘制阶梯图,命令格式如下:图 3-21 火柴杆图和阶梯图 stairs(x,y,'线型') %绘制阶梯图 6) 误差条图 误差条图是用来绘制误差的条形图,显示沿着曲线的误差,常用于数理统计。 errorbar(X,Y,E,'线型') %绘制在(X,Y)处长为 E 的误差条 errorbar(X,Y,L,U,'线型') %绘制在(X,Y)处向下长为 L 向上长为 U 的误差条 7) 极坐标图 polar(theta,rho,参数) %根据相角 theta 和离原点的距离 rho 绘制极坐标图 5 基 5 三维绘图命令 1) 三维曲线图 plot3(x,y,z,'线型') %绘制三维曲线 说明:x,y,z 必须是相同尺寸的数组,当是向量时则绘制一条三维曲线,当是矩阵时绘制多 条曲线,三维曲线的条数等于矩阵的列数。 2) 三维曲面图包括三维网线图和三维表面图,三维曲面图与三维曲线图的不同是三维曲线图 是以线来定义而三维曲面图是以面来定义,因此面上的点都要连接起来。 (1) 产生矩形网格

[X,Y]=meshgrid(x,y) %产生 XY 矩形网格 说明:x 和 y 分别是有 n 个和 m 个元素的一维数组,X 和 Y 都是 n×m 的矩阵,每个 (X,Y)对应一个网格点;如果 y 省略,则 X 和 Y 都是 n×n 的矩阵。 (2) 三维网线图 三维网线图就是将平面上的网格点(X,Y)对应 z 值的顶点画出,并将各顶点用线连接起 来。 mesh(X,Y,Z,C) %绘制网格点数据对应的三维网线 (3) 三维表面图 三维表面图与网线图相似,但不同的是网线图中网格范围内的区域为空白,而三维表面 图则用颜色来填充。 surf(X,Y,Z,C)%绘制网格点数据对应的三维表面图 另外,surf 函数还有两个派生的函数 surfc 和 surfl,surfc 用来绘制三维表面图并加等高线, surfl 用来绘制三维表面图并加光照效果。 (4) 设置视角 view([az,el]) %通过方位角和俯仰角设置视角 view([x,y,z]) %通过(x,y,z)直角坐标设置视角 (5) 设置色彩 MATLAB 使用 colormap 函数来设置色图以及显示色图矩阵的值, 使用 colorbar 显示色图的 颜色条。 6 实验内容 1) 绘制下列曲线:

x3 ①y ? x? 3

1 2 ②y? e 2?

x2

③ x 2 ? 2 y 2 ? 64

④?

? x ? r sin t ? y ? r cost

2)通过用 plot 和 fplot 函数绘制 y ? sin

1 的曲线,并分析其区别 x

3) 在同一坐标系下绘制下面三个函数在 t?[0,4?]的图象。

y1 ? t y2 ? t y3 ? 4? e ?0.1t sin(t )
4) 编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。

?sin x ? y ( x) ? ? x ?? x ? 6 ?

x?0 0? x?3 x?3

5) 三维空间曲线绘制 z=0:0.1:4*pi; x=cos(z); y=sin(z); plot3(x,y,z) 6) 用 mesh 或 surf 函数, 绘制下面方程所表示的三维空间曲面, x 和 y 的取值范围设为[-3, 3]。

z??

x2 y2 ? 10 10

四、思考题
根据

x2 y2 ? ? 1 绘制平面曲线,并分析参数 a 对其形状的影响。 a 2 25 ? a 2

五、实验总结
见实验一第五条。

实验四
一.

符号运算

实验目的 (1) 掌握定义符号对象的方法; (2) 掌握符号表达式的运算法则以及符号矩阵运算; (3) 掌握求符号函数极限及导数的方法; (4) 掌握求符号函数定积分和不定积分的方法。 二. 实验原理 符号运算的对象是非数值的符号对象, 对于像公式推导和因式分解等抽象的运算都可以通过符 号运算来解决。符号工具箱(Symbolic Math Toolbox )能够实现微积分运算、线性代数、表达式 的化简、 求解代数方程和微分方程、 不同精度转换和积分变换, 符号计算的结果可以以图形化显示, MATLAB 的符号运算功能十分完整和方便。 三. 实验任务及步骤 1. 符号对象的创建和使用 创建符号对象都可以使用 sym 和 syms 函数来实现。 1)sym 函数 S=sym(s,参数) %由数值创建符号对象 S=sym(?s?,参数)%由字符串创建符号对象 当被转换的 s 是数值时,参数可以是'd'、'f'、'e'或'r' 四种格式,当被转换的's'是字符串时,参 数可以是'real'、'unreal'和'positive'三种格式 2) syms 函数 syms(s1,s2,s3,…,参数) 或 syms s1,s2,s3,?,参数%创建多个符号变量 syms 与 sym 的关系是:syms(s1,s2,s3,…,参数)等同于 s1=sym('s1',参数),s2=sym('s2',参 数)?? 3)class 函数 s=class(x) %返回对象 x 的数据类型 4)符号常量是不含变量的符号表达式,用 sym 函数来创建;符号变量使用 sym 和 syms 函数来 创建。符号表达式是由符号常量和符号变量等构成的表达式,使用 sym 和 syms 函数来创建。符号 矩阵的元素是符号对象,符号矩阵可以用 sym 和 syms 函数来创建。 2 符号对象的运算 1)因式分解 syms x f=x^6+1; s=factor(f) 2)计算极限 syms h n x L=limit((log(x+h)-log(x))/h,h,0) M=limit((1-x/n)^n,n,inf) 3)计算导数 syms a x; y=sin(a*x); A=diff(y,x) B=diff(y,a) C=diff(y,x,2) 4)计算不定积分、定积分、反常积分 syms x f=(x^2+1)/(x^2-2*x+2)^2;

g=cos(x)/(sin(x)+cos(x)); h=exp(-x^2); I=int(f) J=int(g,0,pi/2) K=int(h,0,inf) 5)符号求和,求级数的和 S, 以及前十项的部分和 S1. syms n S=symsum(1/n^2, 1, inf) S1=symsum(1/n^2,1,10) 6)解代数方程和常微分方程 利用符号表达式解代数方程所需要的函数为 solve(f),即解符号方程式 f.例如:求一元 二次方程 a*x^2+b*x+c=0 的根. f=sym('a*x^2+b*x+c') 或 f='a*x^2+b*x+c' solve(f);solve(f, a) 利用符号表达式可求解微分方程的解析解,所需要的函数为 dsolve(f),使用格式: dsolve('equation1', ' equation2', ?) 其中:equation 为方程或条件.写方程或条件时,用 Dy 表示 y 关于自变量的一阶导数,用 D2y 表示 y 关于自变量的二阶导数,依此类推. 7)Fourier 变换 F=fourier(f,t ,w) %求以 t 为符号变量 f 的 fourier 变换 F f=ifourier (F,w,t) %求以 w 为符号变量的 F 的 fourier 反变换 f 8)Laplace 变换 F=laplace(f,t,s) %求以 t 为变量 f 的 Laplace 变换 F f=ilaplace(F,s,t) %求以 s 为变量的 F 的 Laplace 反变换 f 9) Z 变换 F = ztrans (f,n, z) %求以 n 为变量的 f 的 Z 变换 F f=iztrans(F,z,n) %求以 z 为变量的 F 的 z 反变换 f 3 实验内容 (1) 已知 x=6,y=5,利用符号表达式求 z ? (2) 分解因式。
4 4 (a) x ? y ; (b) 125 x ? 75 x ? 15 x ? 1 (3) 化简表达式
6 4 2

x ?1 3? x ? y

4 x2 ? 8 x ? 3 (a) sin ?1 cos ? 2 ? cos ?1 sin ? 2 ; (b) 2x ? 1
(4) 已知

?0 1 0? ?1 0 0 ? ?a b ? ? ? ? P1 ? ?1 0 0? , P2 ? ? 0 1 0 ? , A ? ? ?d e ? ? ? ?0 0 1? ? ?1 0 1 ? ? ?g h
完成下列运算: (1) B ? P1 ? P2 ? A . (2)B 的逆矩阵并验证结果。 (3)包括 B 矩阵主对角线元素的下三角阵。 (5) 用符号方法求下列极限或导数。

c? f? ? i? ?

x (e sin x ? 1) ? 2(e tan x ? 1) 。 x ?0 sin 3 x x ? arccos x (b) lim 。 x ?1 x ?1
(a) lim

(c) y ? (6)

1 ? cos(2 x ) ,求 y? 和 y?? 。 x dx 4 ? x8 dx
2

用符号方法求下列积分。 (a) (b) (c)

? 1? x

? (arcsin x)
?
ln 2 0

1 ? x2

e x (1 ? e x )2 dx

四.

思考题
求解微分方程时使用 dsolve('Dy=x', 'x')和 dsolve('Dy=x'),哪个结果将是什么?是否正确?为什 么? dsolve('D2y=x+Dy', 'y(0)=1', 'Dy(0)=0', 'x')与 dsolve('D2y=x+Dy', 'y(0)=1', 'Dy(0)=0')的区别。

五.

实验总结
见实验一第五条。

实验五
一.

分支语句与编程设计

实验目的 (1) 掌握 MATLAB 程序编辑、运行及调试方法; (2) 了解程序设计的基本步骤; (3) 掌握关系运算和逻辑运算; (4) 掌握选择结构的编程方法。 二. 实验原理 前面几章开发的几个完全运转的 MATLAB 程序中包括一系列的 MATLAB 语句,这些语句按 照固定的顺序一个接一个的执行, 像这样的程序称之顺序结构程序。 还可以采用两类控制顺序结构: 选择结构和循环结构,用于重复执行特定部分的代码,从而形成更为复杂的程序。 三. 实验任务及步骤 1. 程序设计的基本步骤

2. 关系运算符和逻辑运算符 选择结构的运算由一个表达式控制的,这个表达式的结果只有 true(1) 和 false(0)。有两种形式 的运算符可以在 MATLAB 中关系得到 true/false:关系运算符和逻辑运算符。 跟 C 语言一样, MATLAB 没有布尔型和逻辑数据类型。 MATLAB 把 0 值作为结果 false , 把所有的非 0 值作为结 果 true。 1) 关系运算符 关系运算符是指两数值或字符操作数的运算符,这种运算将会根据两操作数的关系产生结果 true 或 false 。关系运算的基本形式如下:

a1 op a2
其中 a1 和 a2 是算术表达式, 变量或字符串,op 代表表 3.1 中的关系运算符中的一个。 如 果两者的关系为真(true )时,那么这个运算将会返回 1 值;否则将会返回 0 值。 3-1 中的关系运算符

关系运算符也可用于标量与数组的比较。关系运算符也可比较两个关系运算符,只要两个数组 具有相同的大小。 注意因为字符串实际上是字符的数组, 关系运算符也比较两个相同长度的字符串。 如果它们有不同的长度,比较运算将会产生一个错误。等于关系运算符由两个等号组成,而赋值运 算符只有一个等号。它们是完全不同的两个符号,初学者极易混淆。符号==是一个比较运算符,返 回一个逻辑数, 而符号= 是将等号右边的表达式的值赋给左边的变量。 另外需要小心==和~=运算符。 等于运算符(==)如果两变量值相同将会返回变量值 1,如果不同将返回 0 。 不等运算符(~=)如果两变量值不同则返回 1 ,相则返回 0 。 2) 逻辑运算符 逻辑运算符是联系一个或二个逻辑操作数并能产生一个逻辑结果的运算符。有三个二元运算

符:分别为 AND,OR 和异或运算符,还有一个一元运算符 NOT。二元逻辑运算的基本形式:

l1 op l2
一元逻辑运算的基本形式为:

op l1
其中 l1 和 l2 代表表达式或变量, op 代表表 3.2 中的逻辑运算符。如果 l1 和 l2 的逻辑运算 关系为 true,那么运算将会返回值 1,否则将会产生 0。 3-2 逻辑运算符

在运算的顺序中,逻辑运算在所有的数学运算和关系运算之后进行。

3. 选择结构(分支语句) 选择结构可以使 MATLAB 选择性执行指定区域内的代码(称之为语句块 blocks),而跳过其他 区域的代码。选择结构在 MATLAB 中有三种具体的形式:if 结构,switch 结构和 try/catch 结构。 1) if 结构 ?? x ? ?5 : 0.1 : 5; ? x2 ? 1 x?1 if 条件 1 ?? if x ?? 1 ? ?1 ? x ? 1 ? 0 语句段 1 y ? x.2 ? 1 ?? x 2 ? 1 elseif 条件 2 x ? ?1 ? elseif ? 1 ? x ? 1 语句段 2 y ? 0*x ...... else else y ? ? x.3 ? 1 语句段 n end End plot(x, y) 说明:在一个 if 结构中,可以有任意个 elseif 语句,但 else 语句最多有一个。只要上面每一 个控制表达式均为 0 ,那么下一个控制表达式将会被检测。一旦其中的一个表达式的值非 0,对应 的语句块就要被执行,然后跳到 end 后面的第一个可执行语句继续执行。如果所有的控制表达式 (control expression) 均为 0,那么程序将会执行 else 语句。如果没有 else 语句,程序将会执行 end 后面的语句,而不执行 if 结构中的部分。 2) switch 结构 switch 表达式 case 值 1 语句段 1 case 值 2 语句段 2 ... otherwise 语句段 n end 说明:将表达式依次与 case 后面的值进行比较,满足值的范围就执行相应的语句段,如果都 不满足则执行 otherwise 后面的语句段;表达式只能是标量或字符串;case 后面的值可以是标量、

字符串或元胞数组,如果是元胞数组则将表达式与元胞数组的所有元素进行比较,只要某个元素与 表达式相等,就执行其后的语句段;switch 和 end 必须配对使用。 注意在大多情况下只有一个语句块会被执行。当一个语句块被执行后,编译器就会跳到 end 语 句后的第一个语句开始执行。如果 switch 表达和多个 case 表达式相对应,那么只有他们中的第一 个将会被执行。 3)try/catch 结构的应用 try 语句块 1 语句块 2 语句块 3 catch 语句块 1 语句块 2 语句块 3 end 当程序运行到 try/catch 语句块,在 try 语句块中的一些语句将会被执行。如果没有错误出现, catch 语句块将会被跳过。 另一方面, 如果错误发生在一个 try 语句块, 那么程序将中止执行 try 语 句块,并立即执行 catch 语句块。 4. 实验内容 1) 输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符, 若为数字字符则输出其对应的数值,若为其他字符则原样输出(采用 if 结构) 。 2) 编 写 一个 程序 允许 使用者 输 入一 个字 符串 ,这个 字 符必 须是 一个 星期中 的 一天 ( 即 "Sunday","Monday","Tuesday" 等),应用 switch 结构把这些字符串转化为相应的数字,以 星期天为第一天,以星期六为最后一天。如果输入不是这七个字符串中的一个,那么输出 提示信息。 3) 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动 转去求两矩阵的点乘。A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; 4) 变量 a ,b ,c,d 定义如下,计算后面的表达式。 a = 20; b = -2; c = 0; d = 1; 求(a)a > b, (b) b > d; (c) a > b & c > d; (d) a == b; (e) a & b > c; (f) ~~b 5) 变量 a ,b ,c,d 定义如下,计算后面的表达式。 a = 2; b = 3; c = 10; d = 0; 求 (a)a*b^2 > a*c; (b) d | b b > a; (c) (d | b) > a 四.

思考题
有一分数序列:

1 , 2
五.

3 5 8 13 21 , , , , , ??? 2 3 5 8 13

编写一段程序,求前 16 项的和。

实验总结
见实验一第五条。

实验六
一.

循环结构

实验目的 (1) 掌握 while 循环; (2) 掌握 for 循环结构; (3) break 和 continue 语句; (4) 掌握循环嵌套。 二. 实验原理 循环(loop) 是一种 MATLAB 结构,它允许我们多次执行一系列的语句。循环结构有两种基本 形式:while 循环和 for 循环。 两者之间的最大不同在于代码的重复是如何控制的。 在 while 循环中, 代码的重复的次数是不能确定的,只要满足用户定义的条件,重复就进行下去。相对地,在 for 循 环中,代码的重复次数是确定的,在循环开始之前,我们就知道代码重复的次数了。 三. 实验任务及步骤 1 while 循环 只要满足一定的条件,while 循环是一个重复次数不能确定的语句块。它的基本形如下 while 条件表达式 循环体 end 如果条件表达式的值非零(true),程序将执行代码块(code block),然后返回到 while 语句执行。 如果条件表达式的值仍然非零,那么程序将会再次执行代码。直到条件表达式的值变为 0 ,这个 重复过程结束。当程序执行到 while 语句且条件表达式的值为 0 之后,程序将会执行 end 后面的 第一个语句。 2 for 循环 for 循环结构是另一种循环结构,它以指定的数目重复地执行特定的语句块。for 循环的形式 如下: for 循环变量=array 循环体 end 其中 array 可以是向量也可以是矩阵,循环执行的次数就是 array 的列数,每次循环中循环变 量依次取 array 的各列并执行循环体,直到 array 所有列取完。 1) 运算的细节 在用 for 循环时,我们必须检查许多重要的细节。 (a) 没有必要缩进 for 循环的循环体。 (b) 在 for 循环中,我们不能随意修改循环指数。循环指数常被用作计算器, (c) 用赋值的方法可以扩展一个已知的数组。 (d) 用 for 循环和向量计算是非常常见的。 2) break 和 continue 语句 有两个附加语句可以控制 while 和 for 循环:break 和 continue 语句。break 语句可以中止循环 的执行和跳到 end 后面的第一句执行,而 continue 只中止本次循环,然后返回循环的顶部。如果 break 语句在循环体中执行,那么体的执行中止,然后执行循环后的第一个可执行性语句。 3) 循环嵌套 一个循环完全出现在另一个循环当中,这种情况经常发生。如果一个循环完全出现在另一个循 环当中,我们称这两个循环为带嵌套的循环。注意外部 for 循环指数变量增加之前,内部 for 循 环要完全执行完。当 MATLAB 遇到一个 end 语句,它将与最内部的开放结构联合。如果在循环嵌套 中一个 end 语句突然被删除,将会产生许多难以发现的错误。如果 for 循环是嵌套的,那么它们 必须含有独立的循环变量。 如果它们含有相同的循环变量, 那么内部循环将改变外部循环指数的值。 如果 break 或 continue 语句出现在循环嵌套的内部,那么 break 语句将会在包含它的最内部的循 环起作用。 4)流程控制命令

(a)return 命令 return 命令用于提前结束程序的执行,并立即返回到上一级调用函数或等待键盘输入命 令,一般用于遇到特殊情况需要立即退出程序或终止键盘方式。应注意当程序进入死循环时,则按 Ctrl+break 键来终止程序的运行。 (b) keyboard 命令 keyboard 命令用来使程序暂停运行,等待键盘命令,命令窗口出现“K>>”提示符,当 键盘输入“return”后,程序才继续运行。keyboard 命令可以用来在程序调试或程序执行时 (c) input 命令 r=input('str','s')%从键盘中输入数据保存到变量 r (d)disp 命令 disp 命令是较常用的显示命令,常用来显示字符串型的信息提示。 (e) pause 命令 pause 命令用来使程序暂停运行,当用户按任意键才继续执行。常用于程序调试或查看 中间结果,也可以用来控制执行的速度。pause 的命令格式如下: pause(n) %暂停 n 秒 3 M 文件结构结构 MATLAB 的程序如果要保存则使用扩展名是“.m”的 M 文件,M 文件有两种即 M 脚本文件 (Script File)和 M 函数文件(Function File) 。 1)M 文件的一般结构 (a) 函数声明行 函数声明行是在 M 函数文件的第一行,只有 M 函数文件必须有,以“function”引导并指 定函数名、输入和输出参数,M 脚本文件没有函数声明行。 (b) H1 行 H1 行是帮助文字的第一行。 (c) 帮助文本 (d) 程序代码 程序代码由 MATLAB 语句和注释语句构成。 2)M 脚本文件 M 脚本文件的说明如下: ( a ) MATLAB 在运行脚本文件时,只是简单地按顺序从文件中读取一条条命令,送到 MATLAB 命令窗口中去执行; (b) M 脚本文件运行产生的变量都驻留在 MATLAB 的工作空间中, 可以很方便地查看变量, 在命令窗口中运行的命令都可以使用这些变量; (c)脚本文件的命令可以访问工作空间的所有数据,因此要注意避免工作空间和脚本文件 中的同名变量相互覆盖,一般在 M 脚本文件的开头使用“clear”命令清除工作空间的变量。 3) M 函数文件 M 函数文件的说明如下: (a)M 函数文件中的函数声明行是必不可少的; (b)M 函数文件在运行过程中产生的变量都存放在函数本身的工作空间中,函数的工作空 间是独立的、临时的,随具体的 M 函数文件调用而产生并随调用结束而删除,在 MATLAB 运 行过程中如果运行多个函数则产生多个临时的函数空间; (c) 当文件执行完最后一条命令或遇到“return”命令时就结束函数文件的运行, 同时函数 工作空间的变量被清除; (d)一个 M 函数文件至少要定义一个函数。 函数声明行的格式如下: function [输出参数列表] = 函数名(输入参数列表) 函数名是函数的名称,保存时最好函数名与文件名一致,当不一致时,MATLAB 以文件名 为准;输入参数列表是函数接收的输入参数,多个参数间用“,”分隔;输出参数列表是函数运算 的结果,多个参数间用“,”分隔。 4 函数的使用 1) 主函数和子函数

一个 M 函数文件中可以包含一个或多个函数,主函数是出现在文件最上方的函数,即第一行 声明的函数,一个 M 文件只能有一个主函数,通常主函数名与 M 函数文件名相同。子函数的次序 无任何限制;子函数只能被同一文件中的函数(主函数或子函数)调用,不能被其它文件的函数调 用;同一文件的主函数和子函数运行时的工作空间是相互独立的。 2)函数的输入输出参数 函数的参数传递是将主调函数中的变量值传给被调函数的输入参数 (1)函数参数传递的是数值 (2)被调函数的输入参数是存放在函数的工作空间中,与 MATLAB 的工作空间是独立的,当 调用结束时函数的工作空间被清除,输入参数也被清除。 3) 局部变量、全局变量和静态变量 局部变量(Local Variables)的作用范围只能在函数内部;全局变量在使用前必须用“global” 声明,而且每个要共享全局变量的函数和工作空间,都必须逐个用“global”对该变量加以声明要 清除全局变量可以使用 clear 命令,命令格式如下: clear global 变量名 %清除某个全局变量 clear global %清除所有的全局变量 4)嵌套函数、私有函数和重载函数 嵌套函数指在 MATLAB 中一个函数的内部还可以定义一个或多个函数,这种定义在其他函数内 部的函数就称为嵌套函数。 私有函数是限制访问权限的函数,私有函数存放在“private”子目录中,只能被其直接父目录 的 M 函数文件所调用。 重载函数是指两个函数使用相同的名称,处理的功能相似,但参数类型或个数不同,重载函数 通常放在不同的文件夹下,文件夹名称以“@”开头后面跟一个数据类型名。 5 实验内容 1)编写 MATLAB 语句计算 y(t)的值, y(t) ? ?
2 ? ??3 t ? 5 2 ? ?3t ? 5

t?0 t<0

已知 t 从-9 到 9 每隔 0.5 取一次值。运用循环和选择语句进行计算。 2)输入一个百分制成绩,要求输出成绩等级 A、B、C、D、E。其中 90 分~100 分为 A,80 分~ 89 分为 B,70~79 分为 C,60~69 分为 D,60 分以下为 E。 要求: (1) 分别用 if 和 swtich 语句实现; (2) 输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息。 3)编写 M 脚本文件,分别使用 for 和 while 循环语句计算 sum ?

?i
i ?1

10

i

,当 sum>1000 时终止

程序。 4)建立 5×6 矩阵,要求输出矩阵第 n 行元素,当 n 值超过矩阵的行数时,自动转为输出矩阵 最后一行元素,并给出出错信息。

四.

f (40) f (30) ? f (20) 2 (1)当 f (n) ? n ? 10In(n ? 5) 时,求 y 值; (2)当 f (n) ? 1* 2 ? 2 * 3 ? 3 * 4 ? ... ? n * (n ? 1) 时,求 y 值。 思考题
5) 已知 y ? 如何将一个普通的数字数组带有逻辑性? 如何去除数字数组的逻辑性?

五.

实验总结
见实验一第五条。

实验七
一.

用户图形界面设计

实验目的 (1) 掌握 MATLAB 用户图形界面的基本元素; (2) 掌握简单的用户图形界面设计; 二. 实验原理 用户图形界面(GUI )是程序的图形化界面。一个好的 GUI 能够使程序更加容易的使用。它 提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面 应当是易理解且操作是可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标 在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行 描述。 三. 实验任务及步骤 MATLAB 的图形用户界面提供了包含按钮、文本框、标签等一系列交互控件,用户可以通过 鼠标和键盘进行交互操作。 1 图形用户界面概述 在 MATLAB 主界面选择菜单“File”→“New”→“GUI”,或直接在命令窗口输入“Guide”命令都可 以打开 GUIDE 快速开始界面。

下面我们再介绍下设计一个 GUI 界面的步骤 (1)界面布局设计

界面布局设计包括以下几个步骤: 通过拖拽控件面板中的控件到界面设计区中;然后使用对象对齐工具(Align Objects) 进行控件的布局调整,使用 Tab 顺序编辑器(Tab Order Editor)对各控件的 Tab 顺序进行较 好地设置;如果界面需要菜单,则使用菜单编辑器( Menu Editor)进行菜单的设计;添加完 控件后在对象浏览器(Object Browser)中就可以看到所有的图形对象,完成界面的布局设计。 (2)属性设置 打开属性编辑器(Property Inspector)对相关的属性进行修改 。 (3)编写回调函数 2.实验内容 使用 guide 来创建一个下图所示的图形用户界面。该界面具有如下功能: (1) 在编辑框中,可输入表示阻尼比的标量或“行数组”数值,并在按【Enter】键 后,在轴上画出相应的蓝色曲线。坐标范围:X 轴 [0, 15];Y 轴 [0, 2] 。 (2) 在点击【Grid on】或【Grid off】键时,在轴上画出或删除“分格线”;缺省 时,无分格线。 (3) 在菜单【Options】下,有 2 个下拉菜单项【Box on 】和【Box off】 ;缺省时 为 Box off 状态。 (4) 所设计的界面和其上图形对象、控件对象都按比例缩放。

步骤一:

步骤二:

步骤三:

步骤四: [mygui1.m] function varargout = Mygui1(varargin) % MYGUI1 Application M-file for Mygui1.fig % FIG = MYGUI1 launch Mygui1 GUI. % MYGUI1('callback_name', ...) invoke the named callback. % Last Modified by GUIDE v2.0 15-Jun-2002 16:12:52 if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); set(handles.box_off,'enable','off') if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval( varargin{:}); % FEVAL switchyard

else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); end end %--------------------------------------------------------------------------------------------------------------function varargout = GridOff_push_Callback(h, eventdata, handles, varargin) grid off %--------------------------------------------------------------------------------------------------------------function varargout = GridOn_push_Callback(h, eventdata, handles, varargin) grid on %--------------------------------------------------------------------------------------------------------------function varargout = zeta_edit_Callback(h, eventdata, handles, varargin) z=str2num(get(handles.zeta_edit,'String')); t=0:0.1:15; cla for k=1:length(z) y(:,k)=step(1,[1, 2*z(k), 1], t); line(t,y(:,k)); end %--------------------------------------------------------------------------------------------------------------function varargout = options_Callback(h, eventdata, handles, varargin) %--------------------------------------------------------------------------------------------------------------function varargout = box_on_Callback(h, eventdata, handles, varargin) box on set(handles.box_on,'enable','off') set(handles.box_off,'enable','on') %--------------------------------------------------------------------------------------------------------------function varargout = box_off_Callback(h, eventdata, handles, varargin) box off set(handles.box_off,'enable','off') set(handles.box_on,'enable','on') 步骤五:

四.

思考题
使用输入对话框输入一个正弦信号的幅值和相角,默认值为 1 和 0,并使用消息框重新显示输 入的幅值和相角值。

五.

实验总结
见实验一第五条。

实验八
一. 实验目的

Simulink 仿真设计

(1)熟悉 Simulink 的操作环境并掌握绘制系统模型的方法。
(2)掌握 Simulink 中子系统模块的建立与封装技术。 (3)对简单系统所给出的数学模型能转化为系统仿真模型并进行仿真分析。 二. 实验原理 Simulink 设计简单,系统结构使用方框图绘制,以绘制模型化的图形代替程序输入,以鼠标操 作代替编程;分析直观,用户不需要考虑系统模块内部,只要考虑系统中各模块的输入输出;仿真 快速、准确,智能化地建立各环节的方程,自动地在给定精度要求下以最快速度仿真,还可以交互 式地进行仿真。 三. 实验任务及步骤 1. Simulink 的工作环境 在 MATLAB 的命令窗口输入“simulink”,或单击工具栏中的图标,就可以打开 Simulink 模块 库浏览器(Simulink Library Browser)窗口。 1)Simulink 的模型窗口 Simulink 模型的创建和仿真都是在模型窗口中进行 的,模型窗口包括菜单、工具栏、模型设计区和状态栏。 模型窗口中的模型设计区用来创建和修改模型。 2) 仿真包括以下几个步骤 (1)模型编译 (2)连接 (3)仿真执行 一般仿真模型都采用数值积分来仿真的, 相邻两个时间 点的长度为步长,步长的大小取决于求解器的类型。 3) Simulink 的模块库 Simulink 的模块库浏览器提供了各种基本模块,并将 它们按照应用领域和功能进行分类以方便用户查找。

2. 实验内容 1) 建立下图 1 所示的 Simulink 仿真模型并进行仿真, 改变 Gain 模块的增益, 观察 Scope 显示波形的变化。

图 1 正弦波产生及观测模型

2.利用 simulink 仿真来实现摄氏温度到华氏温度的转化:T f ? 100℃) ,参考模型为图 2。

9 Tc ? 32 ( Tc 范围在-10℃~ 5

图 2 摄氏温度到华氏温度的转化的参考模型

3.利用 Simulink 仿真下列曲线,取 ? ? 2? 。 1 1 1 1 x(?t ) ? sin ?t ? sin 3?t ? sin 5?t ? sin 7?t ? sin 9?t 。 3 5 7 9
仿真参考模型如下图 3,Sine Wave5 模块参数设置如下图 4,请仿真其结果。

图3

x (? t ) 的仿真参考模型图

图 4 Sine Wave5 模块参数设置图

4)如图 5 所示是分频器仿真框图,其组成仅有三台设备:脉冲发生器,分频器和示波器。分 频器送出一个到达脉冲,第一路 cnt(计数) ,它的数值表示在本分频周期记录到多少个脉冲;第 二路是 hit(到达) ,就是分频后的脉冲输出,仿真出结果来。

图 5 分频器仿真框图

四.

思考题
用 Simulink 求解下图所示电路 0~100 微秒内的响应。 已知 R=6*10-4 欧, C=1700 微法, L=6*10-9 享,uc(0)=15kV。

R Gain2 1 s 1 s
Uc Uc

i

Scope

UL

1/L Gain1

i

i

-1/C Gain

Integrator

Integrator1

Scope1

? 模块参数设置: Integrator1 的 Initial condition:15kV 在命令窗口为 R,L,C 赋值。 ? 仿真参数设置如下: Start time:0 Stop time:100e-6 Solver Type:Variable-step Solver:ode45 Max step size:1e-7 Min step size:auto Initial step size:auto Relative tolerance:1e-3 Absolute tolerance:1e-6 五.

实验总结
见实验一第五条。

第二部分 Protel DXP 电子制图
实验九 原理图设计基础
一. 实验目的 (1)熟悉原理图设计界面; (2)会新建与保存设计文件; (3)会设置图纸大小、方向、颜色和格点以及放置元器件。 二. 实验原理 Protel DXP 是 Altium 公司 2002 年推出的最新一代 EDA 设计软件,是 Protel 99SE 的最新升级 版本。Protel DXP 与以前的 Protel 99SE 相比,在操作界面和操作步骤上有了很大的改进,用户界 面更加友好、 直观, 用户操作更加便利。 Protel DXP 主要由以下几大部分组成: 原理图 (Schematics) 设计模块; 原理图仿真 (Simulate) 模块; 印刷电路板 (PCB) 设计模块; 自动布线器 (Auto Router) ; 超高速集成电路硬件描述语言(VHDL) 。 三. 实验任务及步骤 1. Protel DXP 简介 Electronic Design Automation(EDA)---电子设计自动化。内容丰富、软件较多。Protel 是其中之 一,其发展过程如下: Tango?Protel for Dos?Protel for Windows1.0/1.5 ?Protel3.16 ?Protel98 ?Protel99 ?Protel99se ?Protel DXP。 ProtelDXP 的 启 动 : 两 种 方 法 : 1 、 任 务 栏 上 开 始 菜 单 中 的 PROTELDXP 图 标 ,点击选取选项即可启动 Protel DXP 集成设计环境,如图 9-1 所示。

图 9-1 在你建立了设计文件夹之后,就可以在编辑器之间转换。例如,原理图编辑器和 PCB 编辑器。 DXP 将根据当前所工作的编辑器来改变工具栏和菜单。一些工作区面变的名字最初也会显示在工作 区右下角。 这些名字点击后会弹出面板, 这些面板可以通过移动、 固定或隐藏来调整你的工作环境。 下图展示了当前几个文件和编辑器同时打开并且窗口进行平铺时的 DXP

2 实验内容 绘制出如图 9-2 所示的稳压电源电路原理图,其中纸型设置为 A4、改变工作区颜色、方向设 置为水平方向,最后将图纸命名为“Power-7805.SchDoc”进行保存。
U1 A 1 IN 7805 OUT GND C1 100uF 2 OUT

3

JP1 2 1 Header 2

D1 IN4007

D2 IN4007

C2 100uF

D3 IN4007

D4 IN4007

图 9-2

稳压电源电路原理图

【步骤】
1)建立 PCB 设计项目,启动原理图编辑器并保存新建原理图文件 (1)从 Protel DXP 的主菜单下执行命令 File/New/PCB Project,建立一份 PCB 设计项目, 如图 9-3 所示。在“Projects”面板中使用鼠标右键单击项目“PCB Project1.PrjPCB” ,将弹出如 图 9-4 所示的保存菜单。在该菜单中选择“Save Project”命令,在弹出保存文件对话框,命名为 Power.PRJPCB。如图 9-5 所示。

图 9-3 新建工程项目

图 9-4 工程保存菜单

图 9-5 工程管理窗口

(2) 在该设计项目下新建一份 SCH 原理图, 相应的菜单执行命令为 File/New/Schematic, 将 其命名为 Power-7805.SCHDOC。 执行 File/New/Schematic 命令,打开原理图编辑器,在“Projects”面板中使用鼠标右键单 击原理图文件标签“Scheet1.SchDoc” ,在弹出的保存菜单中选择“Save”命令,完成对该原理图 文件的保存,名为“Power-7805.SchDoc”,如图 9-6 所示。

图 9-6 原理图编辑器界面 2) 设置图纸参数 图纸参数设置可在“Document Options”对话框中完成,执行 Design/Option 命令,即可打开 图纸参数设置对话框,如图 9-7 所示。图纸方向的设置,在该对话框“ Options ”选项区的 “Orientation”下拉列表框中,选择“Landscape”项为图纸水平放置。 在“Options”选项区的“Scheet Color”栏中,改变工作区颜色。同时在“Standard Styles” 下拉列表框中设置图纸尺寸,选择 A4 纸型,其他选项保持默认设置,单击“OK”按钮,即可完成 图纸参数设置。

图 9-7 图纸参数设置对话框 3) 绘制原理图 绘制电路原理图主要有如下几步:查找并放置元器件、设置元器件属性、绘制元器件间的电气 连接和放置网络标号。 (1)查找并放置元件 放置元件首先要查清元件所在库。 (常用元件见附录 1) ① 原理图设计界面的下方有一排按钮,单击 Libraries(库)按钮,弹出如图 9-8 所示的库 对话框。 Protel 默认加载常用元件杂项集成库 Miscellaneous Devices.IntLib 和常用接插件杂项集成 库 Miscellaneous Connectors.IntLib。 在库文件面板中浏览原理图元件,找到二极管、电容等原理图元件。 为了加快寻找的速度,可以使用关键字过滤功能,由于二极管的原理图元件名称为 Diode,因 此可以在关键字过滤栏中输入 Diode 或 Dio*(*为通配符,可以表示任意多个字符) ,既可找到所 有含有字符 Dio 的元件。 常用元件的关键字: DIO:二极管 CAP:电容 RES:电阻 PNP:PNP 型三极管 NPN:NPN 型三极管 TR:变压器 IND:电感

图 9-8 库对话框 ② 对于常用库中没有的元器件,单击图 1-7 对话框中的 Search 按钮,弹出如图 9-9 所示的

库搜索对话框。 ③在 Scope 选项区域中确认设置为 Libraries on Path,单击 Path 右边的打开图标按钮,找 到安装的 Protel DXP 库的文件夹路径, 如 C:\Program Files\Altium\Library。 同时确认 Include subdirectories 复选项被选定。 ④在 Seach Criteria(搜索标准)选项区域中可以使用 Name、Description、MdelType、Model Name 组合来说明要搜索的元件,例如要搜索三端稳压器 7805 元件相关的可以在 Name 文本框中键 入 *7805* 。 ⑤单击 Search 按钮开始搜索,查找结果会显示在 Result 对话框中,如图 9-10 所示。

图 9-9 库搜索对话框

图 9-10 搜索结果对话框

可以看到很多匹配搜索标准的元件型号,选择一款适合的元件原理图符号和封装。这里选择元 件 L7805AC-V,属于 ST Power Mgt Voltage Regulator.IntLib 库。能否找到所需要的元件关键在 于输入的规则设置是否正确,一般尽量使用通配符以扩大搜索范围。 ⑥单击 Install Library 按钮,库就添加到当前项目中。在当前项目中就可以取用该库中的 所有元件。 在完成了对一个元件的查找后,可以按照稳压电源电路原理图的要求,依次找到其他元件。如 图 9-11 所示。 如需翻转操作,可用鼠标左键按住该元件,并敲空格键进行 0°、90°、180°和 270°四种角 度的翻转,敲 X、Y 进行水平翻转与垂直翻转。
U? L7805AC-V 1 D? Diode 2 1 Header 2 D? Diode C? Cap Pol2 100pF D? Diode D? Diode IN OUT GND 2

JP?

3

C? Cap Pol2 100pF

图 9-11 电源电路元件 (2)修改元器件的属性 在放置好的元器件上双击鼠标左键(也可以在放置过程中,按 Tab 键,在弹出的对话框中修改 元器件属性)将弹出属性设置对话框,更改其中的元件标号及其它参数,效果如图 9-12 所示。
U1 7805 1 D1 IN4007 2 1 Header 2 D2 IN4007 C1 100uF D3 IN4007 D4 IN4007 IN OUT GND 2

JP1

3

C2 100uF

图 9-12 修改元器件属性后的效果 (3)绘制元器件间的电气连接并放置端口 用绘制导线工具 来连接元器件间的引脚。效果如图 9-13 所示。
U1 1 IN 7805 OUT GND C1 100uF 2

3

JP1 2 1 Header 2

D1 IN4007

D2 IN4007

C2 100uF

D3 IN4007

D4 IN4007

图 9-13 连好线的电路

(4)放置网络标号 单击网络标号工具 ,放置网络标号。在放置的过程中,按 Tab 键在弹出的对话框中设置网 络标号的属性,放置网络标号后的效果如图 9-2 所示。 至此,该稳压电源电路原理图绘制完成。再点击保存。

【练习】
参照范例要求绘制如图 9-14 所示的两级放大电路原理图。
VCC

R5 75kΩ

R6 5.1kΩ C4 0.22uF

R7 68kΩ

R8 5.1kΩ C5 Uo

C3 Ui 0.22uF

Q1

Q2

R3 10kΩ

R1 750Ω

C2 10uF

R2 10kΩ

R4 580Ω

C1 10uF

图 9-14 两级放大电路

实验十

设计电路原理图

一. 实验目的 (1)掌握绘制原理图的基本步骤; (2)会加载和移除元件库,并查找元器件; (3)会给放置好的元件自动编号会新建与保存设计文件。 二. 实验任务及步骤 绘制出如图 10-1 所示,555 构成的多谐振荡器。
R1 Rw 1K Vcc

1K R2 1K D2

D1 Diode

U1 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P VCC DISC 8 7

Diode

OUT

3

OUT

C1 Cap 1uF

C2 0.01uF

图 10-1 555 构成的多谐振荡器

【步骤】
1.加载元器件库。 执行 Design/Browse Library…命令,打开 Libraries 元器件库面板。在元器件库面板中,单 击“Libraries…”按钮添加元器件库文件。

图 10-2 增删元器件库对话框 在随后弹出的如图 10-2 对话框中,单击“Add Library”按钮,将弹出如图 10-3 所示的打开 元器件库对话框。

图 10-3 打开元器件库对话框 到 DXP 的 安 装 路 径 , 查 找 相 应 的 库 。 一 般 在 c:\Program Files\Altim\Library\Texas Instruments 下。如图 10-4 所示。

图 10-4 找到库所在路径 在 对 话 框 中 选 择 TI Analog Timer Circuit.IntLib 文件后,单击“Open”按钮,将该 库文件加载到“Add Remove Libraries”对话框中, 单击“Close”按钮,即可将文件 TI Analog Timer Circuit.IntLib 加到元器件库面板中,如图 10-5 所示。 2.放置元器件。 从元器件库中选取所需要的元器件放置在工作 区中,其中 NE555 取自元器件库 TI Analog Timer Circuit.IntLib;电阻、电容、二极管取自元器件 库“Miscellaneous Devices.IntLib” 。单击元器件 库中的“Place….” (放置)按钮后,鼠标将变成十 字形状并粘贴有所选元器件,将该元器件移至工作 区中适当位置,单击鼠标左键,即可放置该元件, 同时进入下一个元器件放置状态,若不再需要放置 同样的元器件,可单击鼠标右键退出元器件放置状 态,如图 10-6 所示。

图 10-5 加载后的元器件库面 板

R? Res2 1K D?

R? Res2 1K U? 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P

C? R? RPot2 1K Cap 100pF 8 7

C? Cap 100pF

VCC DISC

Diode D?

OUT

3

Diode

图 10-6 放置元器件 3、调整元器件位置。 按设计要求排列元器件,首先用鼠标单击所要移动的元器件,则该元器件处于被选中状态,此 时光标成十形状,单击所需移动的元器件的同时拖动该元器件到合适位置,松开鼠标,即可实现元 器件的移动。按此方法调整其他元器件,调整后的效果如图 10-7 所示。
R? R? Res2 1K

RPot2 1K R? Res2 1K D? D? Diode U? 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P C? Cap 100pF C? Cap 100pF VCC DISC 8 7

Diode

OUT

3

图 10-7

调整后的元器件效果

4、设置元器件属性。 将光标移到要修改的参数上方,用鼠标左键双击,将弹出属性对话框。以设置电阻 R1 为例, 双击 R?,弹出图 10-8 所示 Parameter Properties 对话框,在“Value”文本框中填入 R1。双击 Res2,弹出图 10-9 所示对话框,如果希望些参数不显示,去掉“Visble” (可视)复选框前的勾。 其他的修改与此相同, 这里就不再重复。 按此方法设置其他元器件的属性, 设置后的效果如图 10-10 所示。

图 10-8 元器件属性编辑对话框

图 10-9 元器件属性编辑对话框
R1 Rw 1K

10K D1 Diode U1 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P C1 1uF C2 0.01uF VCC DISC 8 7

R2 1K D2

Diode

OUT

3

图 10-10 5、连接导线、放置电源与接地。 选取布线工具栏中的布线工具

修改属性后的效果

,此时光标变成十字形状,按下 Tab 键设置线型与颜色,如

图 10-11 所示。 选取导线的设置为默认值:颜色为蓝色,宽度为 Small。将光标移至需要布线的元器件的一个 引脚,单击鼠标左键,然后拖动鼠标到另一个元 器件的引脚,单击鼠标左键,再单击鼠标右键, 即完成该段导线的绘制。放置电源、接地与网络 标签, 可以单击工具栏中的 、 和 按钮,

鼠标将变成十字形状,将电源、接地及网络标号 移至合适位置,单击鼠标左键,即可完成绘制。 按上面的方法连接元器件,连接后的效果如图 10-12 所示。

图 10-11 导线属性对话框

R1 Rw 1K

Vcc

1K R2 1K D2

D1 Diode

U1 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P VCC DISC 8 7

Diode

OUT

3

OUT

C1 Cap 1uF

C2 0.01uF

图 10-12

绘制出来的振荡器电路图

6、 更新元器件编号。 若电路原理图设计完成后,需要对元器件进行重新编号。通常在“Annotate”对话框中实现。 执行 Tools→Annotate 命令,将弹出如图 10-13 所示的对话框。

图 10-13 在该对话框中单击

元器件编号设置对话框 按钮,将出现如图 10-14 所示的浏览器信息。

图 10-14 浏览器提示的信息 单击 OK 按钮,可将原理图中的元器件编号自动复位,如图 10-15 所示。

图 10-15 复位后的元器件编号 单击 序列号变更提示信息。 按钮,系统将自动更新元器件列表,弹出如图 10-16 所示的元器件

图 10-16 元器件序号变更提示信息 单击 OK 按钮系统将自动更新元器件序列号,如图 10-17 所示。

图 10-17 单击 列表,如图 10-18 所示。

变更后的元器件序号

按钮,系统在变更列表的基础上生成更为详细的元器件变更

图 10-18 单击元器件变更表中的

元器件变更列表 按钮,来确认元器件变更的有效性,若有效,在

“Status”栏中的“Check”选项中是对钩,如图 10-19 所示。

图 10-19 确认元器件变更的有效后,单击 10-20 所示。

确认变更有效对话框 按钮,可以实现元器件的自动编号,如图

图 10-20 元器件自动编号 7、 保存文件。执行 File→Save As 命令,进行保存即可。

【练习】
参昭范例要求绘制如图 10-21 所示的单片机最小系统电路图。
DB[0..7] VCC C6 4.7uF U2 16 15 6 5 4 3 2 1 28 A0 25 A1 24 A2 23 REF+ REFIN1 IN2 IN3 IN4 IN5 IN6 IN7 A0 A1 A2 VDD D7 D6 D5 D4 D3 D2 D1 D0 WR/RDY CS INT RD MODE PWRDN 27 22 21 20 19 11 10 9 8 D7 D6 D5 D4 D3 D2 D1 D0 1 2 3 4 5 6 7 8 10 11 INT 12 13 14 15 WR 16 RD 17 RST 9 30 VCC 29 31 20

C5 0.1uF

VCC U1 P1.0/T2 P1.1/T2EX P1.2/RXD1 P1.3/TXD1 P1.4/INT2 P1.5/INT3 P1.6/INT4 P1.7/INT5 P3.0/RXD0 P3.1/TXD0 P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD RST ALE PSEN EA GND VCC P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 X1 X2 40 39 38 37 36 35 34 33 32 D0 D1 D2 D3 D4 D5 D6 D7

JP1 8 7 6 5 4 3 2 1 Header 8

14

GND

17 WR 18 13 INT 12 RD 7 26 VCC

MAX118CAI R2 VCC Res2 200 S1 RST SW-PB C4 Cap 22uF J1

21 22 23 24 25 26 A0 27 A1 28 A2 19 18 C2 100uF Y1 XTAL C3 Cap 100uF

VCC

R1 Res2 1K

Phonejack2 TN

图 10-21 单片机最小系统

1

DS87C520-MCL

2

实验十一
一. 实验目的 (1)了解层次性原理图的结构; (2)学会方块电路的绘制和端口的设置; (3)掌握层次性原理图的绘制方法。 二. 实验任务及步骤 采用自下而上的设计方法,先绘制出如 图 11-1 所示的子图 power-7805. SchDoc、 11-2 所示的子图 555 多谐振荡器. SchDoc 和 11-3 所示的子图两级放大电路. SchDoc, 最后绘制出如图 11-4 所示的电路原理图, 层 次性原理图结构如图 11-5 所示。
R1 Rw1 1K Vcc

设计层次原理图
U2 A 1 IN 7805 OUT GND C3 100uF 2 Vcc D3 IN4007 2 1 Header 2 D4 IN4007

3

JP1

C4 100uF

D5 IN4007

D6 IN4007

图 11-1 子图——power-7805
VCC

R3 75kΩ

R4 5.1kΩ C5 0.22uF

R5 68kΩ

R6 5.1kΩ C6 Uo

1K R2 1K D2

D1 Diode

U1 4 6 5 2 1 RST THR CVOLT TRIG GND NE555P VCC DISC 8 7
Ui C7 0.22uF

Q1

Q2

Diode

OUT

3

clk

C1 Cap 1uF

C2 0.01uF

R7 10kΩ

R8 750Ω

C8 R9 10uF 10kΩ

R10 580Ω

C9 10uF

图 11-2 子图——555 多谐振荡器
power-7805_3 power-7805_3.SchDoc 555多 谐 振 荡 器 555多 谐 振 荡 器 .SchDoc

图 11-3 子图——两级放大电路
两 级 放 大 电 路 两 级 放 大 电 路 .SchDoc
clk Ui Uo

图 11-4 主图——top

图 11-5 层次性原理图结构

【步骤】
(1)创建工程文件 从 Protel DXP 的主菜单下执行命令 File/New/PCB Project,建立一份 PCB 设计项目,保存为放大电路层次 图。如图 11-6 所示。 (2)绘制子图 power-7805. SchDoc、555 多谐振荡

图 11-6 工程管理窗口

器. SchDoc 和两级放大电路. SchDoc。 在当前工程下,绘制好所有子图。可以复制已有的原理图,然后放上端口。值得注意的是,图 11-2 和图 11-3 子图中输入和输出端口的设置,下面将简单介绍其操作步骤。 执行 Place → Port 命令或单击工具栏中的 按钮, 此时光标变成十字形状, 并带有虚线

形式的端口图形。在此状态下单击 Tab 键,将弹出如图 11-7 所示的对话匡。

图 11-7 执行放置输入/输出端口后的效果 在“Name”下拉列表框中输入 CLK,在“I/O Type”下拉列表框中选择“Output” ,在“Style” 中选择“Right” ,即可完成设置,单击 “OK”按扭,选择相应位置单击鼠标左键放置,即可完成 输入/输出端口的设置。如图 3-8 所示。注意:不能使用电源端口,因为它是全局的。

图 11-8 输入/输出端口的属性设置对话框 (3)层次原理主图 top. SchDoc 的绘制 ① 在当前工程下,新建一张原理图,保存为 top. SchDoc。 ② 执行 Design/Create Symbol From Sheet,弹出所图 11-9 所示选择层次原理图子图文件对 话框。

图 11-9 选择层次原理图子图文件

图 11-10 是否倒转端口方向

图 11-11 图纸符号

③ 在选择层次原理图子图文件对话框内自动列出属于当前设计项目的所有原理图文档。从中 选择 power-7805. SchDoc,点 OK,会弹出一个是否倒转方块电路图的输入输出端口方向对话框, 如图 11-10 所示。 ④ 点 No, 表示不进行方向取反, 此时光标将变成十字光标, 并粘附一个图纸符号, 如图 11-11 所示。 将光标移到合适位置后,单击鼠标左键将图纸放置在原理图上。 ⑤ 重复步骤②③④,分别产生与其它原理图子图相对应的图纸符号。 ⑥ 可以看出,DXP 系统已经自动将原理图子图中的输入输出端口转换为图纸符号中的图纸入 口,默认的图纸符号名与层次原理图子图的主文件名相同。 调整子图符号布局,将图纸符号之间有电气连接关系的端口用导线或总线连接起来,得到如图 11-4 所示的主图。 ⑦对元器件进行重新编号。 执行 Tools→Annotate 命令。在执行自动编号的时候一定要在主图 top. SchDoc 中执行。因为 它才是这个文件的原理图,另外三个电路图则相当于三个元件。 ⑧ 打开 projects 面板, 选中工程项目 “放大电路层次图.PrjPCB” , 执行 Projects/Compile PCB Project,完成对该项目的编译。 ⑨ 单击工作区左边的 Navigator 面板标签,显示导航面板,可以看到各原理图之间的层次关 系,如图 11-5 所示。 ⑩ 层次图之间的切换。 执行 Tool/ Up/Down Hierarchy 或点击 按钮,光标变为十字型。在主原理图中单击子原理

图相应的方块电路端口,即可打开方块电路对应的子原理图;单击子原理图中的某一个原理图电路 端口,编辑器将自动切换到主原理图中,且光标停留在子原理图电路端口对应的方块电路端口上。

【练习】
绘制图 3-12 所示的信号发生器电路图,然后改为层次原理图电路,其中方波形成电路为子图 1,三角波形成电路为子图 2。
R1 +12V 10K C1 100pF

+12V

7

8 U1 2 6 3 5 1 AD741CN R2 10K 1K D1 -12V R4 R3 2

7
U2

8 6 out

3 1 5 AD741CN

4

C2

47K R6 10K D2

R5 1K

图 3-12 信号发生器电路图

4
-12V

实验十二

编译项目及生成原理图报表

一. 实验目的 (1)学习编译项目,产生 ERC 报告,会纠正报告中的错误; (2)会生成原理图的网络表、元器件列表。 二. 实验任务及步骤 以图 9-2 所示的 555 定时器组成的振荡器电路原理图为例,生成该原理图的 ERC 表、网络表、 元器件列表。

【步骤】
打开或新建一个工程文件 Myproject1. PrjPCB,把振荡器电路原理图放入该工程下。 (1)产生 ERC 报告 ERC 即电气规则检查。主要用于在进行 PCB 设计之前,对电路原理图中电路连接匹配的正确性 进行检验。 执行完该检查后, 系统将自动在原理图中有错的地方加以标记, 从而方便用户检查错误, 提高设计质量和效率。 ① 在对所绘原理图进行 ERC 检测之前应对 ERC 规则进行设置。ERC 规则进行设置在“Options for Project”对话框实现,执行 Project→Project Options 命令,将弹出如图 12-1 所示的对话 框。 其中涉及到电路原理图检查的有 Error Reporting(错误报告)和 Connection Matrix(连接矩阵) 两个。一般采用默认设置不需要对错误报告类型进行修改。

图 12-1 项目管理选项对话框 ② 编译项目 (ERC 检查) 编译项目就是在设计文档中检查原理图的电气规则错误。执行菜单命令 Project / Compile PCB Project ,系统开始编译 Myproject1. PrjPCB 。当项目被编译时,在项目选项中设置的错误 检查都会被启动,同时弹出 Message 窗口显示错误信息。如果原理图绘制正确,将不会弹出

Message 窗口。 故意把电阻 R 重名,编译后弹出如图 12-2 所示信息。

图 12-2 ERC 错误报告 双击一个出错信息前面的颜色方块,则会弹出与此错误有关的原理图信息,显示在 Compile Error 对话框。如图 12-3 所示。

图 12-3 Compile Error 对话框 从 Compile Error 对话框中单击错误跳转到原理图的违反对象进行检查或修改。此时修改对 象高亮显示,电路图上的其他元件和导线模糊。修改完成后,可以单击图纸有下方的 Clear 按钮, 清除图纸的模糊状态。 修改完成后,重新编译项目,直至不再显示错误为止。保存项目文件。 (2)生成网络表 网络表文件是简单的 ASCII 码文本文件, 共包含两部分: 元器件描述和元器件的网络连接描述。 执行主菜单命令 Design/Netlist/Protel,产生与原项目文件同名,后缀名为. net 的网络表, 这里生成的网络表名称即为 Myproject1. net,如图 12-4 所示。 双击 Myproject1. net 图标,将显示网表的详细内容。如图 12-5 所示。

图 12-4 网络表的生成

图 12-5 网络表文件 内容

(3)生成元器件列表 元器件列表主要用于整理电路原理图或一个项目中的所有元器件,主要包括元器件的名称、标 注和封装等。 首先打开原理图文件,然后执行 Report→Bill of Materials 命令,系统将自动生成如图 12 -6 所示的元器件列表。

图 12-6 元器件列表 单击 Excel,可用 Excel 程序打开报表,如图 12-7 所示。 单击 Export 输出按钮,可将报表导出到指定的文件夹,报表的扩展名为.xls。如图 12-8 所示。 单击 Report 报告按钮,可以预览想要打印的报表。如图 12-9 所示。

图 12-7 用 Excel 程序打开的元件报表

图 12-8 报表存储路径选择对话框

图 12-9 打印报表预览 输出文件清单(报表):Report?Export 保存清单,格式为.xls。

【练习】
参照范例要求对图 9-22 所示的单片机最小系统电路原理图进行编译, 并生成网络表及元件报 表。

实验十三

原理图元件库的管理

一. 实验目的 (1)学会编辑原理图元件; (2)会创建原理图元件。 二. 实验任务及步骤 1.修改 NPN 三极管的原理图符号 图 (a) 为原三极管原理图符号,需要的三极管符号如图 (b)。如图 13-1 所示。

(a)原三极管原理图符号 (b)需要的三极管原理图符号 图 13-1 要修改的三极管符号 2.新建数码管原理图元件如图 13-2 所示。 图 13-2 数码管符号

【步骤】
1.修改 NPN 三极管的原理图符号 (1)打开或创建一个项目文件,执行菜单命令 File/New/Schematic Library,将在项目文件 下新建一个默认文件名为 Schlib1.Schlib 的原理图库文件,并自动进入原理图库文件编辑器,如 图 13-3 所示。

图 13-3 原理图元件编辑器 点击工具栏中的保存文件按钮,在弹出的文件保存对话框中确定保存路径和文件名,如保存为 “自制原理图库.Schlib”。 (2)打开库编辑面板 点击面板中的 Library Editer 选项卡,打开库编辑面板,如图 13-4 所示,此时可以看到元件 列表栏 Components 下已经有了一个默认元件名为 Component_1 的元件。

图 13-4 库编辑窗口 (3)打开原元件库复制原元件 打开原元件库 c:\Program Files\Altium\Library\Miscellaneous Devices.IntLib,所图 13 -4 所示。

图 13-4 打开三极管所在元件库 点项目管理窗口下方 Library Editer,选择 NPN 三极管,在它上面点右键,选 copy 复制 NPN 三极管,或直接复制原理图符号 。所图 13-5 所示。

图 13-5 复制元件符号 (4)在自制元件库中粘贴原元件 在自制元件库编辑窗口中点右键,粘贴,或在图纸中心按 Ctrl+V 粘贴原复制的三极管元件。 如图 13-6 所示。

图 13-6 粘贴原元件 执行 Tools/Rename Component 对复制过来的元件重命名,弹出输入新元件名对话框,如图 13 -7 所示,输入新元件名称“ZZNPN”,表示自制的 NPN 型三极管。

图 13-7 新建元件 改名后的结果如图 13-8 所示。

图 13-8 复制的元件 (5)编辑原元件 选择绘图工具中的绘制椭圆工具,按 Tab 键弹出如图 13-9 所示的属性对话框,因为圆内部不 需要填充,所以不选中 Draw Solid 复选框,并将 Border Width 设置为 Small,点击 OK 按钮完成 设置。

图 13-9 椭圆属性对话框 在原符号上绘制椭圆,如图 13-10 所示。完成元件的复制,保存库文件。 在移动圆圈时,受捕获栅格的限制可能移不到想要的位置,此时可以修改捕获栅格为 5,画好 圆后再改回默认值 10。

图 13-10 绘制好的新元件 完成原元件的复制和粘贴后,最好及时将打开的原元件库关闭,如果关闭时出现是否保存修改 对话框,注意在原元件库 Miscellaneous Devices.IntLib 后选 Don’t save 项,不要保存对原元 件库的修改,以免破坏原元件库。 2.新建数码管原理图元件 (1)打开创建的“自制原理图库.Schlib”,点击 Library Editer 库编辑选项,打开库编辑 面板。出现图 13-10 所示界面,点 Add 新加一个元件,取名为“DLED” 。 (2)打开绘图工具栏 如果编辑器中绘图工具没有打开,执行菜单命令 View/Toolbars/Sch Lib Drawing 打开。

绘图工具的作用如表 13-1 所示。 表 13-1 绘图工具的作用 工具符号 作 用 工具符号 作 用

绘制直线 绘制椭圆弧 绘制椭圆弧 绘制多边形 放置文字 创建新元件 添加子件

绘制矩形 绘制圆角矩形 绘制椭圆 粘贴图片 阵列粘贴 放置元件引脚

(3)绘制原理图元件 ①绘制矩形框。 用鼠标单击绘图工具栏中的绘制直角矩形按钮 ,此时光标变成十字形状,将光标移至 4 个 象限的交点,单击鼠标并向右下方拖动。根据元件管脚多少,绘制一个大小合适的矩形,这里大小 为 10 格×12 格,单击鼠标左键,完成矩形的绘制。如图 13-11 所示。

图 13-11 绘制矩形 图 13-12 绘制笔段 图 13-13 绘制小圆点 ②绘制数码管的笔段 选择绘制多边形工具,绘制一个笔段,并设置好颜色。然后采取按 Ctrl+C 复制,Ctrl+V 粘贴 的办法绘制数码管的其它段,如图 13-12 所示。 ③绘制数码管的小数点 把捕获栅格设为 5,放大工作区,选择绘图工具中的绘制椭圆工具,绘制小圆点。如图 13-13 所示。把捕获栅格设回 10。 ④添加元件管脚 选择绘图工具中的放置元件引脚工具,按下 Tab 键弹出属性对话框,如图 13-14 所示。

图 13-14 引脚属性 引脚主要属性: “Display Name”引脚名称:一般以字母表示该引脚的作用。 “Designator”引脚序号:一般以数字表示实际元件的管脚号。 “Electrical”电气特性:可以根据实际元件管脚在下拉列表框中进行设置。常用的设置有: Input 输入,IO 双向,Output 输出,Power 接电源,Passive 接地等。如果用户不能确定的话,也 可不设置,不影响后面 PCB 板的制作。 “Symbols”符号栏:设置管脚的各种附带符号,以表示数字电路元件引脚的输入信号类型等。 例:要设置该引脚为时钟引脚且低电平有效,可在 Inside Edge 内部边缘中选 Clock 表示 该引脚为时钟,而在 Outside Edge 外部边缘中选 Dot 表示该引脚低电平有效, 则在引脚预览图片框 中出现相应的符号。 “Length”引脚长度:设置引脚的长度。 “Hidden”隐藏:如果是数字集成块的电源和 接地管脚,可以选中该复选框将其隐藏起来,从 而在图纸上不显示该引脚。因为默认情况下,数 字集成块的左上角管脚接电源 VCC, 右下角管脚接 地 GND。 管脚属性设置好后,点击 OK 放置管脚。注意 放置时管脚的方向,确保电气节点朝向元件外部, 以便于原理图中该引脚连线。 放置好管脚后的元 图 13-15 放置引脚后的效果 件如图 13-15 所示。 元件绘制完成后,点击库编辑面板中的 Edit 按钮,弹出如图 13-16 所示的元件属性对话框。 修改 Designator 元件编号栏为“DLED?” ,保存元件库。

图 13-16 元件属性对话框

【练习】
在“自制原理图库.Schlib”中,制作如图 13-17 所示的电解电容、开关变压器、和计数器和 单片机等原理图元件符号。
U?

T? 2

6 7 12 9 10 4 11 5

1 2 10 7 9 3 4 5 6 8

SR CLK CET CEP PE P0 P1 P2 P3 GND

VCC TC

16 15

U? 1 2 3 6 7 8 9 11 4 5 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.7 XTAL2 XTAL1 AT89C2051 VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 GND 20 19 18 17 16 15 14 13 12 10

1
C? ELECTRO1

Q0 Q1 Q2 Q3

14 13 12 11

3

KG_TRANS

图 13-17 元件符号

实验十四

印制电路板设计基础

一. 实验目的 (1)会设置 PCB 编辑器中显示的层面; (2)会识别常用元件的封装;能根据实际元件选用合适的封装。 二. 实验任务及步骤 1.打开 DXP 安装目录自带的 PCB 板例子,观察其中每层显示的内容,认识 PCB 印制电路板。 2.添加 Miscellaneous Devices.IntLib 以及其它封装库,浏览这些库中的元件引脚封装。 3.在 PCB 编辑区放置如图 14-1 所示的电阻、电容、二极管、三极管、三端稳压、双排直插 芯片等常用元件的封装图 。

图 14-1 需放置封装的元件

【步骤】
1.认识印制电路板 (1)认识 PCB 印制电路板的层 ① 打开 DXP 安装目录自带的 PCB 板例子 4 Port Serial Interface.pcbdoc,一般路径为 D:\Program Files\Altium\Examples\4 Port Serial Interface\4 Port Serial Interface.pcbdoc。 如图 14-2 所示。

图 14-2 DXP 自带 PCB 例子 ② 按 Shift+S 键,切换到单层显示模式,分别点击编辑窗口下的顶层、底层、机械层、丝印

层、禁止布线层及多层,观察每层显示的内容。点击 Toplayer 后显示结果如图 14-3 所示。

图 14-3 Toplayer 层 ③ 设置显示层面 执行 Design/Board Layers 菜单命令,将弹出如图 14-4 所示的层面设置对话框,可根据不同 的设计需要在相应板层后面的复选框中打上“√”,选中该项,以便显示该层面。可去掉不用显示 的层后的“√”,如图中所示。

图 14-5 绘制的导线 图 14-4 层面设置对话框 (2)放置铜膜导线 ① 执行 File/New/Pcb 命令,打开 PCB 编辑器,保存 PCB 文件为“导线焊盘.PCBDOC”。 ② 切换到 Bottom Layer 层,点击工具栏上交互式布线工具 图标,绘制导线如图 14-5 所

示。 双击导线,出现如图 14-6 所示导线属性对话框。修改导线宽度,点击工具栏上 Overlay 放置宽度说明,修改宽度后效果如图 14-7 所示。

,在 Top

图 14-6 导线属性对话框 图 14-7 修改宽度后效果 (3)放置焊盘和过孔 ① 切换到 Multi 层,点击工具栏上 图标,放置焊盘。 双击焊盘, 出现焊盘属性对话框, 一般包含如下参数: 焊盘长度 (X-Size) 、 焊盘宽度(Y-Size)、 孔径(Hole-Size) 、序号(Designator)、形状(Shape)等如图 14-8 所示。

图 14-8 焊盘属性对话框 修改焊盘属性,并在 Top Overlay 放置焊盘大小说明,修改后效果如图 14-9 所示。

图 14-9 放置焊盘

图 14-10 交互式布线,自动放置过孔 图标,绘制导线 A,按小键盘上的“*”

②切换到 Bottom Layer 层,点击工具栏上布线工具

键切换到顶层 Top Layer,并自动放置过孔,接着绘制 B,同样方法,按小键盘上的“*”键切换到 顶层 Bottom Layer 层,绘制 C,并自动生成过孔。如图 14-10 所示。 2.添加和浏览 PCB 元件库 Protel DXP 中 常 见 的 元 器 件 封 装 库 , 基 本 上 都 在 DXP 安 装 目 录 下 面 的 “c:\Program Files\Altium\Library\Pcb”目录下。 在库面板添加 Miscellaneous Devices PCB.PcbLib 常用元件封装库,从 Components 转到 Footprints 模式,浏览其中各元件封装,如图 14-11 所示。 添加 Cylinder with Flat Index.PcbLib 塑封外壳三极管封装库,并浏览其中封装,如图 14 -12 所示。

图 14-11 浏览常用元件封装库 图 14-12 浏览三极管封装库 3.在 PCB 图纸中放置图 14-1 中所示元件的引脚封装。 零件封装是指实际零件焊接到电路板时所指示的外观和焊点的位置。 不同的元件可共用同一零 件封装,同种元件也可有不同的零件封装。封装分针插式,表面贴片式两种。图 14-1 中全部为普 通过孔元件,采用针插式封装。 (1)电阻 电阻是各电路中使用最多的元件之一,编号一般以 R 开头,根据功率不同,体积也差别很大, 小的如 1/8W 电阻体积只有米粒大小,而大的功率电阻,如某些电器电源部分的限流或取样电阻的 体积超过七号电池,因此不同体积的电阻,应根据实际大小选择合适的封装。 电阻元件封装命名一般由二部分组成,前面字母部分用于规定封装的类别,如电阻为 AXIAL, 后一部分为数字,一般代表焊盘间距,单位为英寸。因此封装 AXIAL-0.4 表示该封装为电阻,焊盘 间距为 0.4 英寸( =400mil=10.16mm=1.016cm ) ,根据体积不同,电阻封装可以从 AXIAL-0.3 ~ AXIAL-1.0。1/4W 电阻一般选 AXIAL-0.3。 (2)电位器 原 理 图 库 中 电 位 器 的 常 用 名 称 是 “RPOT1” 和 “RPOT2”,常用的封装为 VR 系列,从 VR2~VR5,这里后 缀的数字也只是表示外形的不同,而没有实际尺寸的含 义,其中 VR5 一般为精密电位器封装。 (3)电容 ① 无极性电容

图 14-13 各种无极性电 容

无极性电容原理图库元件名称为“CAP”,根据容量不同,体积外形差别较大,如图 14-13 所 示。 其封装由二部分组成:前面字母部分为 RAD,后一部分为数字,和电阻一样代表焊盘间距, 根据体积不同,无极性电容封装可以从 RAD-0.1~RAD-0.4。 ② 有极性电容 有极性电容(如电解电容)体积根据容量和耐压的不同,体积差别很大。 电解电容的引脚封装也由二部分组成,字母部分为 RB,如 RB5-10.5,数字 5 表示焊盘间距为 5mm,而 10.5 表示电解电容的圆筒外径。根据体积不同,电解电容封装 RB5-10.5 和 RB7.6-15。 (4)二极管 二极管编号一般以 D 开头,根据功率不同,体积和外形也差别很大。二极管常用的封装有二种 DIODE0.4(小功率)和 DIODE0.7(大功率) 。注意二极管为有极性元件,封装外形上画有短线的一 端代表负端,和实物二极管外壳上表示负端的白色或银色色环相对应。

图 14-14 放置的各种封装图 (5)三极管 三极管在结构上分为二种类型,一种为 PNP 型 ,另一种为 NPN 型,根据功率不同,体积和外 形差别较大,常用的有塑封和金属外壳封装。小功率塑封三极管封装一般有 BCY-W3 系列,大功率 的可采用 SFM 系列 ,金属外壳三极管依功率大小一般 E 型可选用 CAN-3 系列封装。 三极管在选择封装时主要考虑其安装、定位和焊接,不考虑其内部结构和材料,即不管三极管 是 PNP 或 NPN 型,是锗材料或是硅材料,只要焊盘参数、管脚序号对应,均可采用相同的三极管封 装。 (6)双列直插元件 常见的双列直插元件如种类繁多的双列直插集成块,依据功能不同,它们在原理图库元件中的 名称也不尽相同。如数字电路中的与非门 74LS20、模拟电路中的集成功放 LM386 等,它们常用的 封装一般采用“DIP”系列,后缀数字表示引脚数目。 放置元件封装方法: 新建 PCB 文件,并保存为“浏览封装.PCBDOC”。在库面板选择 Miscellaneous Devices PCB.PcbLib 常用元件封装库,选择 Footprints 模式,找到合适的元件封装,放置到工作区。 放置效果如图 14-14 所示。

实验十五

稳压电源 PCB 板设计

一. 实验目的 (1)熟悉 PCB 板设计流程。 二. 实验任务及步骤 以如图 15-1 所示的原理图为例,生成该原理图的 PCB 板。要求用单层板, 尺寸为 60mm×40mm, 元件全部采用过孔元件,一般线宽为 30mil,GND 为 60 mil,VCC 为 50 mil。
U1 A 1 IN 7805 OUT GND C1 100uF 2 Vcc

3

JP1 2 1 Header 2

D1 IN4007

D2 IN4007

C2 100uF

D3 IN4007

D4 IN4007

图 15-1

稳压电源电路原理图

【步骤】
1.绘制或打开图 15-1 所示电路原理图。 主菜单下执行命令 File/New/PCB Project,建立一份 PCB 设计项目。在此项目下,绘制或打 开图 15-1 所示电路原理图 power-7805.SCHDOC。 2.检查元件封装

图 15-2 元件属性对话框 打开原理图文件,双击元件,出现元件属性对话框,在 Model 窗口可以查看元件的封装。如果 封装不对,点击 Edit 进行修改。例如,查看整流二极管。双击二极管后,出现如图 15-2 所示元 件属性对话框,在元件属性中可以看出封装为 DSO-C2/X3.3,这是一种贴片元件封装,要改为针插

式 DIODE0.4。 点 Edit 出现如图 15-3 所示 PCB 模型对话框。

图 15-3 PCB Model 对话框 图 15-4 找到合适封装 修改库路径,点 Browse 找到 DIODE0.4。或 PCB Library 中选择 Any,直接在 name 栏输入 DIODE0.4。Selected Footprint 显示正确的封装图形,点 OK。如图 15-4 所示。 3.生成网络表 检查完原理图元件封装后,执行主菜单命令 Design/Netlist/Protel,生成网络表。如图 15 -5 所示。

图 15-5 生成网络表 4.新建 PCB 文档 (1)手动创建 PCB 文档 主菜单下执行命令 File/New/PCB,新建一 PCB 文档,保存为 Power-7805.PcbDoc。如图 15-6 所示。

图 15-6 空白的 PCB 图 (2)PCB 设置 ①工作层 执行菜单命令 Design/Board Layers,显示 Board Layers 对话框。按范例要求使 用单层板,所以可将顶层关闭,其他保留系统默认设置。如图 15-7 所示。

图 15-7 Board Layers 对话框 ②使用环境设置和格点设置 执行菜单命令 Design/Options,系统将会出现如图 15-8 所示的 Board Options 对话框。

图 15-8 Board Options 对话框 ③ 特殊设置 执行菜单命令 Tools/Preference,系统将弹出如图 15-9 所示的 Preferences 对话框。它有 Options(一般) 、Display(显示) 、Show/Hide 和 Defaults(违规)四个选项卡。

图 15-9 Preferences 对话框 (3) 规划印制板 ① 绘制电路板物理边界 §单击 PCB 编辑器窗口下部工作层转换按钮,将当前工作层转换到机械层 Mechanical1。 §把单位由“mil”切换到“mm”(可利用键盘 Q 键切换) ,捕捉栅格设为 2.5mm(按 G)。 §单击工具栏中的图标 ,或者执行菜单 Edit/Origin/Set,在十字光标状态下在 PCB 编辑

器的工作区的左下角某处单击一下,该点就被定义为相对坐标原点(0,0),沿此点往右为+X 轴, 往上为+Y 轴。 (按 Ctrl+Eed 可回到原点) §单击工具栏上的图标 ,设置边框线。此时光标连着十字形,表示处于划线状态,在刚定义 的原点处单击鼠标左键确定连线起点,然后按一下键盘上的 J 键,接着再按一下 L 键,屏幕弹出坐 标跳跃对话框,如图 15-10 所示。点击 OK,单击左键确定,一条边界就画好了,重复此操作,画 一个矩形框,如图 15-11 所示。

图 15-10 坐标跳跃对话框 图 15-11 绘制物理边界 ② 绘制电路板的电气边框 电气边界用来限定布线及各元器件的放置范围, 与规划物理边界方法相同, 小于等于物理边框, 只是要画在禁止布线层 Keep-Out Layer。 (4)加载元件封装库 除了 DXP 默认加载的常用封装库外,电路中三端稳压还需用到 ST Power Mgt Voltage Regulator.IntLib。打开库面板,点击 Library 进行加载。 (5)加载网络表及元件 在 PCB 编辑界面执行 Design→ImportChangesForm[PCB Profect1.PrjPCB]命令后,将会弹出 如图 15-14 所示的对话框。

图 15-14 网格变化对话框 单击 按钮后,将弹出如图 15-15 所示对话框,在状态栏“Check” 一列中出现

说明装入的元器件正确,出现 说明有问题,有可能是元件所在库没有加载,回到原理图检查。 “Check”状态栏全部为 后,可以进行下一步操作。

图 15-15 元器件全部正确的网络变化对话框 单击 按钮 ,出现如图 15-16 所示检查正确界面。

图 15-16 检查正确 单击 Close,缩小显示窗口,即可看见载入的元件和网络飞线,如图 15-17 所示。

图 15-17 加载网络表和元件后的 PCB 编辑器 (6)自动布局 执行菜单命令 Tools/Auto Placement/Auto Placer,弹出图 15-18 所示的 Auto Placer 对话框。

图 15-18 Auto Placer 对话框 图 15-19 Statistical Placer 选项 在 Auto Placer 对话框中提供了两种自动布局方式,每种方式均采用不同的计算、优化元件位 置的方法。 Cluster Placer:适合于元件数量较少的 PCB 设计。 Statistical Placer:适合于元件数量较多的 PCB 设计。该种方式使用统计算法来放置元件, 是元件间采用最短的导线来连接。Statistical Placer 选项如图 15-19 所示。 本例选择 Cluster Placer 自动布局方式,单击 OK 按钮,系统开始自动布局。自动布局后飞线 往往很乱, 为了使飞线反映元件之间真实的连接情况, 执行 Design/Netlist/Clear Nets 菜单命令, 弹出如图 15-20 所示 Confirm 确认对话框,单击 Yes,系统开始自动整理网络,在 PCB 上将显示 飞线,如图 15-21 所示。

图 15-20 Confirm 对话框 图 15-21 清理后的自动布局效果 (7)手工调整元件布局 自动布局后的结果不太令人满意,还需要用手工布局的方法,重新调整元件的布局,使之在满 足电气功能要求的同时,更加优化、更加美观。 手工调整元件布局,包括元件的选取、移动和旋转等操作。 经过手工调整方式的调整后,稳压电源电路的布局如图 15-22 所示。 (8)设置自动布线规则 要采用自动布线,必须首先设置好布线规则,然后 PCB 编辑器才能按照预设的布线规则自动地 完成导线的绘制,具体步骤如下: 执行 Design/Rules 菜单命令,出现如图 15-23 所示 PCB 设计规则设置对话框。 执行 Design/Rules 菜单命令,出现如图 15-23 所示 PCB 设计规则设置对话框。

图 15-23 所示 PCB 设计规则设置对话框

布线规则一般只对导线宽度和布线层面的选择进行设置,其它采用默认参数。 ① 设置导线宽度规则 Width 在电路板中,导线宽度关系到电路板的可靠性和布线难度,导线宽度太窄,一方面铜箔导线在 焊接以及长期的使用过程中容易脱落、断裂,特别对于高压、大电流的导线,如电源、接地线太窄, 可能造成铜箔导线电流过大而烧毁电路板等后果;另一方面导线太窄也造成电路板厂家制作困难, 成本提高;但导线宽度也不是越宽越好,导线越宽,自动布线时走线越困难,布通率越低,因此在 自动布线前,必须根据实际情况和具体设计要求合理设置自动布线时的导线宽度。

图 15-24 设置一般导线宽度 为了满足不同网络导线宽度的不同要求,同时不使电路板面积过大,我们可以采取同时设置几 个导线宽度规则的办法:一般先设置一个整体电路板导线宽度的普通规则,然后根据实际情况对于 大电流的个别网络导线分别设置较大的导线宽度。 一般导线宽度设置如图 15-24 所示。 对于大电流网络我们必须单独设置导线宽度规则,如电源、接地网络等,本例中设地线 GND 导 线宽度为 60mil(最大 80mil,最小 50mil) ,电源 VCC 导线宽度为 50mil(最大 60mil,最小 40mil) , 操作方法如下: 在导线宽度设置对话框中,选中 Width 规则项,单击鼠标右键,将弹出如图所示的浮动菜单, 选中 New Rule 新规则菜单,将在原 Width 规则项上增加一个 Width1 新导线宽度规则设置项,如图 15-25 所示。

图 15-25 设置新导线宽度规则

图 15-26 布线层面设置对话框 ② 设置布线层面规则 Routing Layers 系统默认设置为双面板,即信号层为顶层和底层,其中顶层布线方向默认为水平方向,底层布 线方向默认为垂直方向。 在自动布线规则设置对话框中,点击 Routing Layers 布线层面选项,将弹出如图 15-26 所示 的布线层面设置对话框。 如果要制作单面板,布线层面可设置为顶层不使用,底层布线方向没有限制。 (9)自动布线 执行菜单 Auto Route/All 命令,弹出如图 15-27 所示的自动布线策略选择对话框,一般采用 默认第一项参数即可。

图 15-27 自动布线策略选择对话框 点击 Route All 布所有导线按钮,将启动自动布线过程,本例中元件较少,布线速度很快,自 动布线过程中弹出如图 15-28 所示的自动布线信息报告栏。

图 15-28 自动布线信息报告栏

图 15-29 自动布线结果 完成自动布线后,生成如图 15-29 所示的 PCB 图。从图中可以看出,自动布线的结果存在诸多 缺陷,还需手工修改改进。

【练习】
参照范例要求,制作如图 15-30 所示的多谐振荡器 PCB 板,要求制作单面板,PCB 板尺寸为 60mm(2380mil)×40mm(1580mil)。

R

R

4

3

U

1

K

4

1

8

VCC

R

RST

1

K

6

VCC

5

THR

7

1

Res2

CVOLT

2

C

1

1

TRIG

DISC

G

N

D

O

U

1

0

0

p

C

2

F

SE555CP

T

3

R

1

0

0

p

F

1

Res2

图 7-30 振荡器的电路原理图

K

2

K

1

实验十六

电路板综合设计与 PCB 板制作

一. 实验目的 (1) 了解印制电路板的整体制作过程,培养制作电路板的实用技能,积累电路板制作经验; (2) 了解热转印法制板与小型工业制板工艺流程; (3) 学会 PCB 文档的打印,光绘文件的输出; (4) 会输出钻孔文件,并用数控钻打孔。 二. 实验任务及步骤 实验 1:如图 16-1 所示为 DA2030A 组成的 BTL 功放电路原理图(立体声只需要做两组相同的 电路即可) ,图 16-2 为功放的电源电路。要求设计此电路的 PCB 板。
+VCC LC2 1U
5

LC1 10U/25V

LIN

1 2

TDL1 4 TDA2030A

LR1 22K

LR2 22K

LR3 1

JP1 3 2 1 Header 3 +VCC GND -VCC

3

LC3 22U/25V

LR4 22K LC4 0.1U LS1

LR5 680 JP2 3 2 1 Header 3 1 2 LR6 22K
3

Speaker

RIN GND LIN
5

TDL2 4 TDA2030A LR7 22K

LR8 1

-VCC LC6 22U/25V 10U/25V LC5

LC7 0.1

LR9 680

图 16-1 DA2030A 组成的 BTL 功放电路原理图
+VCC C1 3300uF

JP 3 2 1 Header 3

D1

C3 104

JP11 1 2 3

C2 3300uF

Header 3 C4 104 -VCC

图 16-2 功放板的电源电路

【步骤】
1)制作原理图元件、绘制原理图
5

1 4 2 TDA2030A
3

2)确定封装形式并自制 PCB 引脚封装 在绘制原理图过程中或完成后,必须在原理图元件属性对话框中的 FootPrint(引脚封装)属 性栏中指定对应的引脚封装,对于原封装库中没有或不合适的封装形式,必须采取自制或复制修改 的方法。 自制引脚封装

TDA2030 小电解电容封装 整流桥堆封装 3) 制作各 PCB 板 电源板尺寸和元件布局 载入电路板引脚封装并手工布局 电源板 PCB 布线 4) 放置安装孔、补泪滴、覆铜 ①安装孔,放置几个焊盘即可。 ②补泪滴 执行菜单命令 Tools/Teardrops,弹出如图 16-3 所示的补泪滴选择对话框,左边选择操作的 对象,右边选择操作动作和泪滴类型。补泪滴效果 如图 16-4 所示。

图 16-3 所示的补泪滴选择对话框 ③ 覆铜

图 16-4 补泪滴效果

PCB 的敷铜一般都是连在地线上,增大地线面积。方法:切换到要铺铜的层,执行菜单 Place/Polygon plane 命令(或按 p 再按 G) ,在设置中选择网络,勾选去死铜,选择全铜或风格铜 并设置风格大小,完毕后圈出你要覆的区域后右键, 铺銅一般应该在安全间距的 2 倍以上,在覆铜前打开 Design-Rules,将其中的 Clearance 选 项距离设大一点 从主菜单执行命令 Place/Polygon Plane ?,也可以用元件放置工具栏中的 Place Polygon Plane 按钮 。系统将会弹出 Polygon Plane (敷铜属性)设置对话框,如图 16-4 所示。

16-4 Polygon Plane (敷铜属性)设置对话框 放置敷铜 设置好敷铜的属性后,鼠标变成十字光标表状,将鼠标移动到合适的位置,单击鼠标确定放置敷铜 的起始位置。再移动鼠标到合适位置单击,确定所选敷铜范围的各个端点。敷铜的区域必须为封闭 的多边形状 实验 2:分别用热转印法和工业制板法制作如图 16-5 所示的 TDA2030 功放板

图 16-5 TDA2030 功放板

【步骤】
一、热转印法制作 热转印法是制作少量单面板的最佳选择。它利用了激光打印机墨粉的抗腐蚀特性,成本低廉。 1.设计布线规则 由于热转印制版的特点,在布线时要注意以下方面: (1)线宽不小于 15mil,线间距不小于 10mil。为确保安全,线宽要在 25~30mil,大电流线 按照一般布线原则加宽。为布通线路,局部可以到 20mil。 (2)尽量布成单面板,无法布通时可以考虑跳接线。仍然无法布通时可以考虑使用双面板。 尽量使用手工布线,自动布线往往不能满足要求。 (3)0.8mm 的孔焊盘要在 70mil 以上,推荐 80mil。否则会由于打孔精度不高使焊盘损坏。 (4)bottomlayer 的字要作镜像,即翻转过来写。 2.制作步骤 (1)打印底层线路图。 执行菜单 File/Page setup 命令进行打印设置,如图 16-6 所示。

图 16-6 打印设置 点击 Advanced 进入打印层的选择,删除不用的层,如图 16-7 所示。

图 16-7 选择打印层 点击 OK,退出设置,执行菜单 File/Print preview 命令进入打印预览,如图 16-8 所示。

图 16-8 打印预览 如果预览正确,把热转印纸光面向上放于打印机,点击预览窗口的 进行打印。

(2)裁板 裁板又称下料,根据设计好的 PCB 图大小来确定板材的尺寸规格,可根据具体需要进行裁板。 (3)钻孔(如果电路元件较少,可跳过此步,待做完(7)后,用小台钻钻孔) ① 准备好钻孔文件,即把设计好的 PCB 文档另存为 PCB 2.8 ASCII 格式。 ② 把裁好的板子铜面向上,用胶带固定在钻台底板上。 ③ 运行 Create-DCD,打开 PCB 2.8 ASCII 格式的 PCB 文档,根据输出中所列孔径装好钻头。 ④ 打开数控钻电源(红) ,启动钻床主轴电机(绿) ,调整钻头起始位置及高度(钻头与待钻 板距离 1-1.5mm) ,并设置原点,然后找终点。 ⑤ 顺序或选择孔径进行钻孔。 ⑥ 钻完一种规格的孔,换另一规格钻头时,关掉主轴电机(绿) ,上升主轴。换好钻头后,打 开主轴电机,下降到合适位置,钻孔。此过程不能再设置原点、终点。 (4)抛光:把钻好孔的板用砂纸稍加抛光。 (5)对孔转印: 将打印好图的转印纸墨面对着铜皮,置于上面与钻好孔的板对好孔后用纸胶带贴好,放入热转印 机中,一般温度设为 180 度,转速 1.2N,转印两遍即可,没有印到的地方用油性墨笔涂上。注意 热转印机一定不要直接开掉电源,应该用软件关机,否则会烧坏机器。 关机方法:连续按右边的 NET 键两下,出现“OFF” ,按住 NET 不动, “4OFF”倒数至“0OFF” , 自动关机。 (6)腐蚀:转印好后,揭下转印纸,把印好线路图的板子,用夹子夹好,放入腐蚀槽中,按 下对流按钮,3 分钟即可。 (腐蚀机可事先预热)
或将三氯化铁(一般是用 40%的三氯化铁和 60%的温水)倒入塑料盒,转印成功后的 PCB 板将铜皮 面向上,不断均匀摇动,边摇边观察,直到腐蚀完成。

(7)用慢干水洗掉墨粉或用细砂纸打掉。 制作效果如图 16-9 所示。

图 16-9 制作效果图


相关文章:
软件测试实验指导书
软件测试实验指导书_计算机软件及应用_IT/计算机_专业资料。第 1 章 实验基础知识...实验教学, 使学生掌握软件测试的方法和技术,并能运用软件测试工具进行 自动化...
自动化测试实验报告-
实验项目:手机软件自动化测试工具的运用 1 学时 2 学时 2 实验目的与要求 通过自动化工具的使用, 使学生可以更多地理解自动化测试工具的作用和使 用方法,增加...
软件测试自动化实验报告
二、实验内容 1软件测试自动化的初步介绍和产生 软件测试自动化就是通过测试工具或其他手段, 按照测试人员的预定计划对软件产品进 行自动的测试, 它是软件测试的...
软件测试实验指导书2011
14页 1下载券 软件测试实验指导书10版 48页 2下载...20 3.3 自动化功能测试......4.测试工具 .软件测试的工作量很大(据统计,会用到 40% 的开发时间;一些...
过程控制仪表及装置实验指导书1
1_微机保护装置基本功能... 3页 2下载券 软件工程实验1指导书-工... 暂无...级号 2000 年 7 月 前言 过程控制仪表是实现生产过程自动化必不可少的工具。...
电子设计自动化实验指导书(电气工程及其自动化版)
电子设计自动化实验指导书 实验一:VHDL 组合逻辑电路设计实验学时:2 实验类型:验证 实验要求:必修 一、实验目的 1、熟悉 QuartusII 软件的使用,熟练进行程序输入...
实验指导书HJD1(校内)
实验指导书HJD1(校内)_工学_高等教育_教育专区。机电...的二次开发等程序, 掌握计算机技术在自动化领域的...五、实验用电器组件和工具 三相异步电动机 断路器(...
软件质量保证与测试实验指导书
软件质量保证与测试》 实验指导书姓 学班名: 号: 级: ___ ___ ___ ...软件自动化测试工具的使用 2 7 14 20 1 实验一 实验一、黑盒测试——等价...
物流自动化实验指导书
、 适用专业 物流系统工程 二、 实验性质、目的和任务 物流自动化实验的目的...则可以使 用 WinCC 提供的工具软件变量模拟器(WinCC Tag Simulator)来模拟变量...
电子设计自动化实验指导书2013
二.实验原理电子设计已经倾向于使用基于电子计算机的自动化设计工具。 三.实验内容认识和实际操作各种电子设计自动化软件。 四.实验步骤 1、 进入 windows 操作系统,...
更多相关标签: