1、1目录1.产生行向量 .51.1 将行向量转化为列向量 .51.2 组合向量为矩阵 51.3 simin 按照时间读入 workspace 数据到 simulink .51.4 数组长度的计算 .62.mod 和 rem 模块 取余数 63.sum over 模块 .74.Matlab 特性说明 .84.1 总线信号的说明 .84.2 与常数模块的比较 .94.3 限幅模块 .104.4 模型注释和标注注意事项 104.5 多路使能开关 .245.statelow 中的上升沿和下降沿 276.Matlab 数据显示格式 .277.matlab 取整函数 .298.MATLAB 交互式命令 wa
2、rning 298.1 MATLAB 交互式命令 error 298.2 MATLAB 交互式命令 try 和 catch308.3MATLAB 交互式命令 pause 308.4MATLAB 交互式命令 each 318.5MATLAB 交互式命令 input .328.6MATLAB 交互式命令 keyboard 和 return 329.simulink 模型中的中断以及时间 .339.1simulink 生成的代码在 keil 下编译的问题 349.2 Simulink 采样时间的确定 3410.可变子系统 Variant Subsystem 和可配置子系统 Configurable
3、Subsystem 3411. simulink 操作快捷键 3812.simulink 模块库解析 .4013. Matlab 逻辑函数 ischar isempty isinf isnan isnumeric .4014.Matlab 中 break 和 continue 的用法 .4015.M_lint 的用法 4015.1.M 文件中的换行 4415.2 M 文件的加密保护 pode.4415.3 代码实例 5315.4 M 语言语法分析 5815.5 优化 matlab 代码 .6015.6MATLAB 程序的基本设计原则 .6416.Matlab 的 ADA 简介和语言排名 661
4、7.用字母替换表格中的数据 .68217.1 Simulink 查表模块 6818.simulink 模块操作句柄 .7220.代码生成报告简介 .7221.代数环问题以及解决办法 .7722.simulink 仿真警告信息和解决措施 .7923.过零检测功能的作用和使用 .7924.simulink 回调函数 .8025.Matlab 中结构体的定义 .8126.总线信号的注意事项 .8326.1 mux 和 bus8527.stateflow 中 matlab 函数的结合使用方法 8628.在 VS 中调用 simulink 生成的 C 代码 8829.脚本建模 .8929.1. 脚本建模
5、 add_line .9029.2 脚本建模 delete_line .9129.3 脚本建模 get_param9129.4 脚本建模 replace_block9529.5 脚本建模 set_param 9629.6 仿真命令 sim.9829.7 脚本建模命令简述 10029.8 命令行动态仿真 10429.10 simulink 命令集 10930.状态机和流程图 .11330.1 潍柴模块库中的流程图注意事项 11330.2 设置初始化的时候状态机是否执行 11531.goto 和 from 模块的 scope 属性 11732. matlab coder、simulink code
6、r 和 embeded coder 有什么区别和联系 .11832.1 编译器的配置 .12233.simulink 代码集成 .12333.1 代码集成之 LegacyCodeTool .12334.循环和数组 .13034.1 数组写入文件 13034.2 循环 13134.3 if 的用法 .13434.4M 文件和流程控制 .13435.模型的测试 .14335.1 程序调试 .14435.2 文件操作 14435.3 编译器的局限性 14435.4inport 输入端口从 matlab 工作空间导入数据 .14435.5 数据导入简介 .14735.6 模型的自动测试 15235.7
7、matlab 支持的硬件 .15235.8 模型覆盖率的解释 .152335.9 向 Simulink 导入信号数据的方法总结 .15335.10 导入数据到根层级的输入端口 .15635.11 导入数据创建测试用例 .160Importing Data to Create an Input Test Case .160从 Microsoft Excel 表格导入数据 162设置模型 16735.12 导入数据测试离散运算 16835.13 导入离散的时间序列 17235.14 模型覆盖率测试 17431.15 to file 模块 17731.16 Simulink 数据导入 17836.实
8、时仿真 .18236.1RealTime Workshop 仿真原理与功能 18237.Matlab 和 simulink 的数据接口 .18237.1 由 MATLAB 工作空间变量设置系统模块参数 18237.2 将信号输出到 MATLAB 工作空间中 18237.3 使用 MATLAB 工作空间变量作为系统输入信号 18338.Matlab 函数类别 .18338.1 函数句柄 18339.Matlab 基础 .18540.模型的执行顺序 .18641.simulink 代码生成 .18841.1 Embedded Coder 18841.2xPC 和 rtwt 目标环境的设置与应用 1
9、8941.3 RTW 代码生成功能简介 19141.4 基于 simulink 模型的嵌入式代码生成 .19541.5 Real-Time Workshop.19741.6 代码生成科普 .19842 Matlab 生成独立程序 .20342.1Matlab 下使用 mcc 生成独立的可执行程序 .20342.2 Visual Studio 中调用 matlab 生成的 dll 20543. 封装子系统 .21143.1 子系统封装 .21343.2 模块化与封装(建立子系统) .22342.3 触发使能子系统 22443.4 使能子系统 22644.添加库到库浏览器 .22644.1 添加库
10、模块 .22744.2 潍柴模块库解析 .23044.3 自定义模块的例子 .23145 C-MEX 程序研究 261附录 2671.MATLAB 控制系统仿真与嵌入式系统算法设计 .267451.产生行向量 t=0:0.1:11.1 将行向量转化为列向量 u=t1.2 组合向量为矩阵1.3 simin 按照时间读入 workspace 数据到 simulink参考产生两个列向量矩阵的方法,进行如下测试: t=(1:0.1:2); u=(1:0.1:2); simin=t,u;我在 matlab 中生成了一个矩阵 C:1,2;3 4,用 simulink 的 from workspace 模块
11、和 display显示后却只有一个数字 6。我想把这个 C 矩阵读取到 simulink 中当作常数使用?6From Workspace 数据导入需要给出采样时间序列的,作为 simin 的第一列,其对应采样时刻数据作为数据二,三列。1.4 数组长度的计算命令行窗口中国输入ddd=0 0 0 1 1在 m 文件中定义hg=length(ddd);则:hg=5所以在测试的过程中,将数据直接从 Excel 中复制到 命令刚窗口中即可。以免改变 m 问价结构体。2.mod 和 rem 模块 取余数语法格式:M = mod(X,Y)返回 X 对 Y 取模运算的结果。这里 X 可以是一个数组。其中,比较
12、特殊的情况有:mod(X,0):结果为 Xmod(X,X):结果为 0mod(X,Y):如果 X 不等于 Y 且 Y 不为 0,则结果的符号与 Y 的符号一致。rem 函数也用于取模运算,二者不同之处在于:rem(X,Y):如果 X 不等于 Y 且 Y 不为 0,则结果的符号与 X 的符号一致。如果 X、Y 符号一致,则 mod(X,Y)和 rem(X,Y)结果相等。mod 函数可以判断两个数是否是同余关系(congruence relationships):当且仅当 mod(x,m) = mod(y,m),则 x、y 是同余关系。Mod 的官方文档解读:Modulus after divis
13、ionSyntaxM = mod(X,Y)DescriptionM = mod(X,Y) if Y = 0, returns X - n.*Y where n = floor(X./Y). If Y is not an integer and the quotient X./Y is within roundoff error of an integer, then n is that integer. The inputs X and Y must be real arrays of the same size, or real scalars.The following are true
14、by convention: mod(X,0) is X mod(X,X) is 0 mod(X,Y) for X=Y and Y=0 has the same sign as Y.M = mod(X,Y),该数值将返回 X - n.*Y ,而 n 为 n= floor(X./Y),即 x 除以 y7得到的整数(不是整数将得到小于真实值的整数) 。若 y 不是整数,将得到一个错误值。Tipsrem(X,Y) for X=Y and Y=0 has the same sign as X.mod(X,Y) and rem(X,Y) are equal if X and Y have the sam
15、e sign, but differ by Y if X and Y have different signs.The mod function is useful for congruence relationships: x and y are congruent (mod m) if and only if mod(x,m) = mod(y,m).Examplesmod(13,5)ans =3mod(1:5,3)ans =1 2 0 1 2 mod(magic(3),3)ans =2 1 00 2 11 0 23.sum over 模块依存关系输入只有一个元素启用 Sum over 参数
16、.8Sum over选择维度在其上执行总和的操作。All dimensions求和所有的输入内容,产生一个标量。 Specified dimension显示 Dimension 参数, 在那里你指定的维度,在其上执行的操作。如下这种建模方式很容易发现问题出现的位置:4.Matlab 特性说明强处理能力MATLAB 是一个包含大量计算算法的集合。其拥有 600 多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如 C 和 C+ 。在计算要求相同的情况下
17、,使用 MATLAB 的编程工作量会大大减少。MATLAB 的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。4.1 总线信号的说明总线信号可以一块定义多路,只选用其中几路,运行正常,无报错提示。搭建模型如下:9运行提示:Warning: The model untitled does not have continuous st
18、ates,hence Simulink is using the solver VariableStepDiscrete insteadof solver ode45. You can disable this diagnostic by explicitlyspecifying a discrete solver in the solver tab of the ConfigurationParameters dialog, or by setting the Automatic solver parameterselection diagnostic to none in the Diag
19、nostics tab of theConfiguration Parameters dialog Warning: Using a default value of 0.2 for maximum step size. Thesimulation step size will be equal to or less than this value. Youcan disable this diagnostic by setting Automatic solver parameterselection diagnostic to none in the Diagnostics page of
20、 theconfiguration parameters dialog 有几层 Bus Creator 信号,就有几层嵌套。4.2 与常数模块的比较与常数比较节省空间的一种模块104.3 限幅模块数值限制模块限制输出数据的大小,不得低于下限,不得高于上限。范围之外,取上下限值。4.4 模型注释和标注注意事项1.模型的注释在模型窗口中,书写注释的目的是帮助用户更好的理解模型,如图所示。11(1 ) 注释文本的创建在将用作注释区的中心位置,双击鼠标左键,出现编辑框,在框中输入所需的文本后,单击编辑框以外的区域,完成注释。(2 ) 注释的移动点击左键拖动即可。(3 ) 注释文字的控制Format-f
21、ront122.文本标注用户可以在 Simulink 模型窗口中为模型添加文本标注,文本标注可以添加在模型窗口中的任一空白位置,作为模型功能的简短说明。1. 编辑标注为了穿件标注,在模型窗口中任一位置单击鼠标左键,此时出现一个文本编辑框光标也会变成长如状态,这是就可以在文本框中插入标注的内容。2. 在标注中使用 TeX 格式命令用户也可以利用 TeX 格式命令编辑方框图中的标签,并在标签中编辑数学符号、希腊字母和其他符号,从而更明确的说明方块图的作用。若要早标注中使用 TeX 命令,可在模型中任一位置处单击鼠标左键以建立标注文本框,然后选择模型窗口中的 Format 菜单下的 Enable T
22、ex commends 命令,用 TeX 命令输入或编辑文本标注,然后在标注文本框外的任一位置处单击鼠标,或者按下 Esc 键,Simulink 便会显示定义了格式的文本。13143.在注释中定义参数1.在仿真前一定要设置模型的仿真参数,如仿真时间和仿真步长等。以 M 文件定义变量。如下所示2.以 Annotation 方式定义变量15通过 simulink 中定义 Annotation,可以直接在模型编辑窗口中完成对参数的赋值,而不必从 MATLAB 中读取.mat 和 M 文件,省去了不少麻烦。在模型的任一空白处双击会出现一个可编辑的文本框,写入相关文字,如 Parameters Conf
23、iguration。如图所示。163.Model Explorer174.建模技巧1. 创建子系统便与组织模型。2. 使用回调历程18195.大师级提出的建模时的考虑因素1. 内存因素一般而言,内存越大,Simulink 运行的越好。2. 使用分层模型比较复杂时,分层机制会使模型大大简化,用户可以加个主要精力放在模型走向上,而忽略各个模块的细节,同事方便模型的理解和阅读。3. 使用注释详细的注释可以使模型更容易理解和阅读。4. 建模策略模块重复比较多,而且模型的保存也比较容易,可以将反复用到的模块放在新建立的模块库中。20模型注释的相关问题5.1simulink 仿真模型中中文注释为何乱码?点
24、这个注释的时候,又能显示中文。可能原因:a.版本问题,有些不支持中文bMATLAB 很多无法使用中文的,比如说名称用中文标识则无法运行,所以应采用英文。c simulink 不能使用中文的。5.2 关于中文注释这是涉及有版本问题,我的版本是 R2010a 不能使用中文注释必须在工作空间内输入下面的内容才可以:bdclose all set_param(0, CharacterEncoding, ISO-8859-1)4.3 模型注释Simulink Library 里面有个 Doc Block 一般用来写注释或者直接在模型里面写5.4matlab 注释 自动换行请教大家一个问题,在网上没搜索到
25、,很多人是希望去掉 editor 中间的分割线,而我是希望,在输入注释时超过分割线的能够自动换行,可是无论怎么设置都不行。我记得以前是可以的。是现在的版本不行吗?如果不能自动换行,留着那条竖线还有什么用呢?我的 2011b 和 2012a 都不能实现自动换行!求解!答:空格一下 就自动下来了。您的意思是,空格一下就到了下一行是吧?我是想要写的注释超出竖线时,一回车,多余的那部分就会自动到下一行去,并且行首加%Preferences - Editor/Dubugger - Language。然后在右侧 Comment formatting 中,把Autowrap comments 前的勾给去掉就
26、可以了。5.5matlab 多行注释在 matlab 里面有多行连在一起的注释,有没有什么符号能一次搞定?如果每行都加一个%号的话很麻烦,而且删掉注释符号时不好删。答:全部选中 ctrl+r/t21注意格式如下:%fddddddddddfdfddfffffffffffffffffffffffffffffdffffffffff%5.6MATLAB 中的注释行在 MATLAB 中,%表示注释,那么% 表示什么呢?% 表示把代码分成一块一块的,就是所说的 cell 模块你可以只对一个 cell 单元进行运算,而其余的单元不执行也可以步进,一个单元一个单元的执行,有点类似断点执行但又不尽相同,又名 c
27、ell break。为避免混淆,说明一下,这里的 cell 模块不是 matlab 中的 cell 数组指的是一段段的代码,也就是前一个%和后一个% 之间要执行的代码比较好理解。cell 模块其实就是把你的脚本 m 文件按照各部分的功能进行划分,每个模块有输入和输出,当前模块的输出就是下一个模块的输入。matlab 中引入 cell 模块,是为了方便用户对大型程序的调试。在 matlab 的 editor 的菜单栏里有个 cell 的菜单项,包括在代码中插入 cell 分隔符、对每个 cell 进行调试等等内容,楼主可以打开个 m 文件,然后自己操作试试。可以看看 help 里面的:“Usin
28、g Cells for Rapid Code Iteration and Publishing Results”部分。22模型化开发过程中要基本掌握的 Matlab/Simulink 的功能 5. 基于模型设计其实是一种设计方法,当然建模的软件以及代码生成工具也不是只有Matlab/Simulink 这一种,比如还有 Labview、以及 ETAS 公司的 ASCET 等等。当然前者由于需要特定板卡支持,而且系统移植性不好,在基于模型的设计中用的较少,更多的被用于测试领域;后者一般用于汽车行业,其实更多的用于博世集团的研发体系中。同时由于 matlabsimulink 在各个工程领域以及数学领
29、域的广泛应用,以及比较开放灵活的软件构架更多的赢得了或者说是引领的基于模型的设计这片市场。6. 7. 现在越来越多的工程师使用 Matlab/Simulink 或者基于 matlab 平台的软件(比如dSPACE)进行模型化嵌入式开发。8. 9. 在基于模型开发的工作过程中一般要掌握如下工具或者知识:10. 11. 1、基础的 M 语言:用来初始化变量、定义信号、使用命令行调用模型进行仿真,编写测试脚本等等。12. 13. 2、SImulink、Stateflow:基本的图形化建模工具,逻辑系统的建模放在Stateflow 更为合适。14. 15. 3、Simulink 的数据类型和数据接口的
30、管理:这里比较有用的两个工具ModelExplorer、DataObjectWizard。前者可以方便查看模型各个层次中包含的数据和信号,以及他们的定义,相当于一个数据字典;后者可以批量的进行数据和信号的类型的变更;16. 17. 4、模型的层次化管理:这里一般有几种方法主要是对模型进行封装和划分:Subsystem、Autosubsystem、Modellibrary、Modelreference 等几种形式,其中可以对生成代码有影响的是后三种,第一种为虚拟化的层次结构。Autosubsystem 通过配置可以影响到子模块是否生成的函数;Modellibrary 一般是不经常修改的、通用的模
31、块做成自定义库,有点类似标准件,可以随用随调;Modelreference 一般是在多人协作时,最后集成模型调用各个工程师的模块时使用,可以方便的进行模块的修改,然后再主模型中刷新即可,而且可以将子模块生成单独的 c 文件和头文件。18. 19. 5、EmbedCoder 的配置:老的版本中也叫 RTW 模型的配置选项中诸多选项对模型的生成的代码的风格,注释,文件的多少都有直接的影响,这里不细说。20. 21. 6、外部代码的使用和集成方法。22. 2323. 掌握到上面的内容就可以进行简单的模型设计仿真及代码生成工作了。如果要生成高质量的产品级代码可能还要掌握更多的工具,比如:Fixed-P
32、iont(定点工具)、Model Advisor(模型规范化的工具)、ParameterEstimation(参数优化工具),如果要做测试工作还需要了解测试覆盖率的知识,以及怎么使用相关的工具箱进行覆盖率的检验和补充。247.脚本查询模型中的某类型模块通过 M 语言对 Simulink 模型操作是一项很实用很快捷的方法。版主会在后续时间中会慢慢整理一些小的方法技巧,跟大家分享。现在其实也可以不用自己写代码了,Matlab 自带一个函数,很好用,分享一下:sldiagnostics (gcs,CountBlocks) 得到结果demo Total blocks : 180Constant : 4
33、DataStoreMemory : 14Demux : 7Inport : 56Logic : 5MinMax : 2Mux : 2Outport : 62RelationalOperator : 1Scope : 1Stateflow : 7SubSystem : 3Terminator : 9TriggerPort : 6UnitDelay : 1你这是针对查找某种类型的模块,当然下面这种办法更好,但对我来说,我更在意找出我需要更改的模块的句柄,因此我还是比较喜欢第一种方式,其实也就这行代码block_handle = find_system(gcs,Findall,on,Type,blo
34、ck); %找到当前模型中所有的模块句柄有了这个,就可以很方便的完成其他的操作了。这个的确是万事开头第一句。但是要注意是否能够搜索到 Masked Subsystem 中去。Masked Subsystem 是没有问题的,这个我都实验过的,关于这部分知识貌似论坛里用的人不是很多,版主这帖子都快一年了,竟然没有回复的。汗。 。 。 最后,还是非常感谢版主的分享! 以后有问题还希望能和版主多多交流。:) 个人觉得 Simulink,stateflow 用代码来操作,排版,将会非常高效,特别是大型团队的模块化编程设计。模型属性的配置,数据词典的导入等,必须是用脚本自动执行的。很多半导体生产商还开发自
35、己的目标库和工具链,直接从代码生成到编译连接下载全部自动化。4.5 多路使能开关多路使能开关25Create an Action SubsystemWhat Are Action Subsystems?Action subsystems are subsystems that execute in response to a conditional output from an If block or a Switch Case block. In essence, they are subsystems with an Action port, which allow for block e
36、xecution based on conditional inputs from an If block or Switch Case block.Simulink has two types of action subsystems, based on the type of block they receive conditional input from.If Action SubsystemThe If Action Subsystem is preconfigured to serve as a starting point for creating a subsystem who
37、se execution is triggered by an If block. To implement an if-else condition, connect If action subsystem blocks to the outputs of anIf block.Switch Case Action SubsystemThe Switch Case Action Subsystem is preconfigured to serve as a starting point for creating a subsystem whose execution is triggere
38、d by a Switch Case block. To implement a switch condition, connect Switch Case Action Subsystem blocks to the outputs of a Switch Case block26Set States when an Action Subsystem ExecutesWhen an action subsystem is triggered to execute, you can choose whether to hold the subsystem states at their pre
39、vious values or reset them to their initial conditions.Open the Action Port block inside the action subsystem.Select one of the following for the States when execution is resumed parameterheld if you want the states to maintain their most recent valuesreset if you want the states to revert to their
40、initial conditions27选用说明:条件对立而且只有一路输出的时候,宜采用多路使能开关。5.statelow 中的上升沿和下降沿上升沿和下降沿必须产生过零信号才可以做事件。事件和放置顺序有关,和名字无关。放置顺序如下图所示:6.Matlab 数据显示格式数据显示效果控制 vpaa=1.23456789 b=vpa(a,7)b = 1.234568 vpa(a,12) ans = 1.23456789000format:设置输出格式 对浮点性变量,缺省为 format short.format 并不影响 matlab 如何计算和存储变量的值。28对浮点型变量的计算,即单精度或双精度
41、,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3 位数字显示显示 int8 范围 -128:127。format short, long 不影响整型变量的显示。format long 显示 15 位双精度, 7 为单精度(scaled fixed point)format short 显示 5 位(scaled fixed point format with 5 digits)format short eng 至少 5 位加 3 位指数format long eng 16 位加至少 3 位指数format
42、 hex 十六进制format bank 2 个十进制位format + 正、负或零format rat 有理数近似format short 缺省显示format long g 对双精度,显示 15 位定点或浮点格式,对单精度,显示 7 位定点或浮点格式。format short g 5 位定点或浮点格式 format short e 5 位浮点格式format long e 双精度为 15 位浮点格式,单精度为 7 为浮点格式format short g数据显示格式的永久改变:File - Preferences - Command Window - 右面设置 Text display -
43、Numeric format - 下拉菜单改为 long g - Apply + OK数据的显示风格举例:默认情况下,数据以科学计数法的形式显示29比如:定义矩阵,数据如下:1224 12153.0369248.03 36.90 4.50 4 52716 7521.8561252.85 13.80 1.70 4 42344 17235.4824503.10 3206.10 137.61 5 4matlab 会以科学计数法的形式显示。1.0e+004 *0.1224 1.2153 6.9248 0.0037 0.0004 0.0004 0.00050.2716 0.7522 6.1253 0.0
44、014 0.0002 0.0004 0.00040.2344 1.7235 2.4503 0.3206 0.0138 0.0005 0.0004如何不让 matlab 转换?采用 format 命令后: format short g显示格式改变。7.matlab 取整函数fix:向零取整floor:向小取整round:四舍五入ceil:向大取整4 个函数都可以,取整方法各有不同Simulink 中取整设置:simulink -math operations -Rounding Function有 4 中模式 :floor ceil round fix8.MATLAB 交互式命令 warning
45、Warning 程序继续执行,error 终止程序%测试 warning 和 errora=input(不要输入 0 哦 !: );if a=0warning(我说不要输入 0 的,呵呵);end运行 m 文件后: Untitled不要输入 0 哦 !: 输入 0 后显示如下所示8.1 MATLAB 交互式命令 erroreror 终止执行程序30b=input(不要输入 0 哦 ! );if b=0% error(你怎么又输入 0 了啊,哎呀);errordlg(你怎么又输入 0 了啊,哎呀,错误提示);end执行后,输入 0,回车弹出如下提示:8.2 MATLAB 交互式命令 try 和
46、catch如果 try 模块中的表达式没有错误,则 matlab 顺序执行 try 模块的所有表达式,并在完成后结束程序;如果 try 模块中的表达式有错误,则一旦碰到错误语句,matlab 立即跳到catch 模块,执行 catch 模块中相对应的表达式,对错误进行某种回应。function trycatcha=input(请输入矩阵 a:);b=input(请输入矩阵 b:);trydisp(a);disp(b);c=a*b;disp(c);catch% d=a+b; %如果 catch 中也有错误的话,那系统直接终止整个 try-catch 结构,退出程序errordlg(两个矩阵不满足相乘条件, 错误信息);endend执行后显示信息如下:8.3MATLAB 交互式命令 pausepause: 暂停程序的执行,等待用户按任意键继续pause(n): 暂停程序的执行,n 秒钟之后继续执行pause on:使后续的 pause 或 pause(n)指令予以执行pause off:使后续的 pause 或 pause(n)指令不予以执行