
MATLAB使用速成
文章平均质量分 93
Zevalin爱灰灰
如果能找到就好了
展开
-
MATLAB使用速成 第一章(MATLAB入门)
(1)变量名称以字母开头。(2)除第一个字符外,后面可以跟字母、数字和下划线。(3)变量名中的字母区分大小写。(1)clear命令(无操作数):清除工作空间中的所有变量。(2)clear命令(有操作数):清除工作空间中指定的变量。(1)系统预定义的变量:变量名值pi圆周率inf,Inf无穷大nan,NanNot-a-Number,一个不定值eps浮点运算相对精度(或者说相对误差)i,j虚部单位(2)注意事项:①应尽量避免给系统预定义变量重新赋值。原创 2024-04-18 12:28:28 · 5949 阅读 · 0 评论 -
MATLAB使用速成 第二章(MATLAB中的函数)
如果函数定义的参数本身就是矢量,而函数的输入是矩阵(此时矩阵可看作是元素类型为列矢量的行矢量),则函数将作用在矩阵的各列上。若x是矩阵,则返回两个行矢量,a表示x各列的最大值,b对应最大值元素的位置。若x是矩阵,则返回两个行矢量,a表示x各列的最小值,b对应最小值元素的位置。以矩阵x第n列数据为准,升序排序矩阵x的各行(若n为负数,则以第-n列数据为准按降序排列矩阵x的各行)函数f作用在标量x上,这与数学中的f(x)效果是一样的,而f(x)也是一个标量。当x为矩阵时,返回值是包含各列元素之和的行矢量。原创 2024-04-18 12:32:26 · 1872 阅读 · 0 评论 -
MATLAB使用速成 第三章(MATLAB绘图)
(3)双y轴图——将两个二维曲线输出到同一坐标图中,它们共用同一个x轴,但有各自的y轴,可使用命令plotyy(x1,y1,x2,y2,function)对其进行绘制,其中function是指定的绘图函数,可取plot(默认)、semilogx、semilogy、loglog等(function需要用单引号包含)。(1)指定点和线属性的命令——plot(x,y,str),这里的str是用单引号括起来的字符串,用来指定图形的点、线的形状和颜色(颜色、线型、点标记可以全部指定,也可以部分指定,顺序任意)。原创 2024-04-19 13:00:02 · 3686 阅读 · 0 评论 -
MATLAB使用速成 第四章(逻辑函数和控制结构)
(3)关系操作符可以比较两个同样大小的矩阵(或矢量),两个矩阵(或矢量)中的每一个元素相比较,返回一个由各元素比较结果(0和1)构成的矩阵(或矢量);关系操作符还可以用来比较一个矩阵(或矢量)和一个标量,标量和矩阵(或矢量)中的每一个元素相比较,返回一个由标量与矩阵(或矢量)各元素比较结果(0和1)构成的矩阵(或矢量)。②menu可以有若干个参数(一般参数类型都是字符串),第一个参数可认为是菜单的标题,第二个参数开始可认为是菜单的选项,从左至右分别为菜单的第一选项、第二选项……原创 2024-04-19 16:11:52 · 1783 阅读 · 0 评论 -
MATLAB使用速成 第五章(MATLAB编程基础)
(1)用MATLAB语言编写的程序称为M文件,由若干MATLAB命令组合在一起构成,可以完成某些操作,也可以实现某种算法。M文件以“.m”为扩展名,M文件的命名规则与变量相同。(2)根据调用方式不同,M文件可分为:①Script:脚本文件/命令文件(直接输入文件名即可运行)。②Function:函数文件(供其它M文件调用,通常带输入参数和输出参数)。(3)M文件中的百分号是注释符,其后跟着的是程序注释。(需要说明的是,format中的百分号是格式控制符而不是注释符)原创 2024-04-21 15:02:42 · 1736 阅读 · 0 评论 -
MATLAB使用速成 第六章(符号计算)
(1)符号运算以推理方式进行,不受计算误差累积所带来的困扰。(2)符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。(3)符号计算指令的调用比较简单,与教科书上的公式相近。(4)符号计算所需的运行时间相对较长。原创 2024-04-21 21:34:10 · 3787 阅读 · 0 评论 -
MATLAB使用速成 第七章(多项式运算与代数方程求解)
(1)多项式求值:语句“polyval(p,x)”可计算多项式p在x点的值,这里的x可以是向量或矩阵,如果是向量或矩阵则采用的是相应的数组运算,也就是每个元素分别代入p中进行求值,返回一个同等大小的向量或矩阵。②fzero先找出一个包含x0的区间,使得f在这个区间的两个端点上的函数值异号,然后再在这个区间内寻找方程f(x)=0 的解;(2)矩阵多项式求值:语句“polyvalm(p,A)”可计算多项式p作用在矩阵A上的值,这里的A必须是方阵,且采用的是普通矩阵运算,也就是线性代数中的矩阵运算。原创 2024-04-22 12:30:26 · 1949 阅读 · 0 评论 -
MATLAB使用速成 第八章(定积分的计算与微分方程求解)
(2)函数integral2可用于求解二重积分,具体使用方法为“integral2(f,a,b,c,d,'RelTol',tol)”,其中f为被积函数的函数句柄(函数涉及的运算必须采用数组运算),[a,b]为第一次积分区间,[c,d]为第二次积分区间,tol为计算精度(若不指定,缺省精度是10-6,不指定tol时'RelTol'需省略)。(2)对于语句“trapz(x, y)”,x为分割点(节点)组成的向量,y为被积函数在节点上的函数值组成的向量,它可计算x、y代表的区域的面积,也就是使用梯形法求定积分。原创 2024-04-22 14:03:10 · 2863 阅读 · 0 评论 -
Matlab simulink建模与仿真 第一章(simulink入门)
(1)MATLAB是一种以矩阵为来处理数据的的计算软件,其应用范围十分广泛,该产品由若干模块组成,simulink是其中一个,它可利用图形化的工具来进行建模与仿真。原创 2024-08-18 11:51:58 · 26246 阅读 · 1 评论 -
Matlab simulink建模与仿真 第二章(常用模块库)【上】
(1)在计算机中,一般存在控制总线、数据总线等(如下图所示的Bus Creator),总线上的设备可以共享总线,而总线分配器则是负责管理和分配这些通过总线的信号,确保数据和控制的正确传输。(总线模块不建议经常使用,这里仅做简单介绍)(2)示波器模块会显示输入端口的信号图象,如正弦波。原创 2024-08-20 23:48:12 · 3862 阅读 · 0 评论 -
Matlab simulink建模与仿真 第二章(常用模块库)【下】
(1)开关模块可实现选择功能,它有3个输入端口和1个输出端口,输入端口从上到下(或从左到右)编号,第一个和第三个输入端口为数据端口,第二个输入端口为控制端口,当控制端口2满足所选标准时,输出端口与输入端口1导通,否则输出端口与输入端口3导通。②对双目运算,有上表所示的六种,对关系运算模块的两个输入,由上至下(或由左至右)第一个输入为操作数1,第二个输入为操作数2,操作数1在关系运算符的左边,操作数2在关系运算符的右边,若关系表达式成立则输出逻辑1,否则输出逻辑0。原创 2024-08-24 12:46:37 · 6674 阅读 · 0 评论 -
Matlab simulink建模与仿真 第三章(连续模块库)
注:积分模块在第二章中有介绍,本章不再赘述;二阶积分模块相当于两个积分模块串联(可以设置两个初始条件),本章也不会对二阶积分模块进行详细介绍;带上下限的积分模块和带上下限的二阶积分模块默认激活“Limit output”选项,本章也不会对它们进行详细介绍。原创 2024-08-24 23:54:48 · 4517 阅读 · 0 评论 -
Matlab simulink建模与仿真 第四章(非线性模块库)
所有的摩擦力可以划分为两大类——库仑摩擦和粘滞摩擦,前者与运动速度无关(当然,静止与非静止还是需要关注的),后者与运动速度成正比关系。原创 2024-08-25 12:56:41 · 3247 阅读 · 0 评论 -
Matlab simulink建模与仿真 第五章(离散模块库)【上】
(5)tf函数、zpk函数和ss函数,它们的参数还可以是一般形式、状态空间形式(含四个矩阵的结构体表示)或者零极点增益形式的离散传递函数,执行的功能是将离散传递函数转化为另一种表现形式,比如将含四个矩阵的结构体作为tf函数的参数,tf函数会根据这个结构体构造出一般形式的离散传递函数。(下图中的传递函数g与上图相同)(2)下例中的正弦信号发生器需要更改为基于采样的离散形式(默认是基于时间的连续形式),采样时间(Sample time)为0.1秒,信号每个周期的采样次数为50次。原创 2024-08-31 12:08:20 · 5361 阅读 · 0 评论 -
Matlab simulink建模与仿真 第五章(离散模块库)【下】
c2d函数返回离散时间系统的传输函数(或状态空间模型)。使用d2c函数可以将离散域的传递函数转换为连续域的传递函数,其中第一个参数为离散时间系统的传输函数,或前三个参数为状态空间模型的A、B矩阵及采样时间间隔,如果参数采用离散时间系统的传输函数(即不采用状态空间模型),下一个参数为用于指定变换方法的可选参数,如果参数采用状态空间模型,下一个参数为采样时间间隔;(3)对上述关系式做一定的调整,可得到如下传递函数,为简单起见,假设电阻的阻值为1Ω,电容的容值为1F,传递函数将得到简化。原创 2024-08-31 12:14:30 · 3697 阅读 · 0 评论 -
Matlab simulink建模与仿真 第六章(逻辑运算、位运算库)
(1)在参与位运算时,输入信号的值都会转换为二进制的表示形式,该模块的作用是将二进制表示形式输入信号的指定的某个位设置为1,其它位不变,然后转换回输入信号原本的形式,输出之。(1)在参与位运算时,输入信号的值都会转换为二进制的表示形式,该模块的作用是将二进制表示形式输入信号的指定的某个位设置为0,其它位不变,然后转换回输入信号原本的形式,输出之。(2)对于二进制数本身的移动,需要先将输入值转换为二进制形式,然后再进行数的移位,移位后产生的空位用0补上,而被移出的位则直接丢弃,其实际的数学意义是对数值进行。原创 2024-09-01 01:46:52 · 2864 阅读 · 0 评论 -
Matlab simulink建模与仿真 第七章(表查询库)
(2)以一维查表为例,预查询表模块f1输入的取值范围为[0,1),k1输入需要是一个整数,该模块会以k1的值作为下标(第一个元素的下标为0)找到因变量列表中相应的元素,f1的值可以理解为“下标偏差”(非专业名词),因变量列表相邻元素的下标相差为1,f1=0代表需要求解的因变量正好为k1值索引到的因变量,f1>0时该模块会根据插值算法求解出因变量。输入值在x集范围外的,直接以x集中距离输入值最近的自变量取值对应的因变量作为输出,简单地说,模块中的一维表在x集范围以外,因变量既不递增也不递减。原创 2024-09-01 22:58:49 · 3227 阅读 · 0 评论 -
Matlab simulink建模与仿真 第八章(数学运算库)【上】
(3)以Subtract模块为例,双击Subtract模块,属性“List of signs”表示输入端口的符号排列,比如下图的Subtract模块有两个输入端口,那么就有两个符号,其中每个符号各自代表其对应输入端口的量是作为加数还是减数,“+”对应加法,“-”对应减法,至于“|”符号,它起到一个占位的作用(可认为把它也当成一个输入端口,不过这个输入端口是被堵死的)。②如果其中有部分输入是标量,其它输入是向量或者矩阵(需要有相同的维度),那么这个标量将会自动进行拓展,与其它输入的向量或者矩阵进行匹配。原创 2024-09-07 10:22:04 · 4134 阅读 · 0 评论 -
Matlab simulink建模与仿真 第八章(数学运算库)【下】
(1)矩阵拼接模块的作用已在其名称中体现,该模块有向量模式(Vector)和多维数组模式(Multidimensional array)两种模式,在向量模式中,输入端口输入的数据只能是一维数据,输出的数据要么是单行要么是单列,而多维数组模式输出的数据不局限于单行/单列,而且可以指定输入矩阵的拼接方式,以二维矩阵为例,Concatenate dimension = 1时输入的矩阵在竖直方向上进行拼接,Concatenate dimension = 2时输入的矩阵在水平方向上进行拼接。原创 2024-09-07 10:44:03 · 2565 阅读 · 0 评论 -
Matlab simulink建模与仿真 第九章(模型校验库)
②如果勾选了“Enable assertion”,模块的校验功能将会被激活,在此基础上如果勾选了“Stop simulation when assertion fails”,仿真将会终止并输出错误信息,错误信息可在模块配置框中进行配置。②如果勾选了“Enable assertion”,模块的校验功能将会被激活,在此基础上如果勾选了“Stop simulation when assertion fails”,仿真将会终止并输出错误信息,错误信息可在模块配置框中进行配置。原创 2024-09-08 01:52:33 · 1489 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十章(模型扩展功能库)
(1)每次当模块受到触发时,都会调用linmod或者dlinmod函数,求出当前控制系统的线性状态空间模型(A、B、C、D四个矩阵以及其它的一些相关信息),相关信息会以结构体数组的形式存储在基本工作空间中(每触发一次,生成一个工作点,也就是求一次线性状态空间模型,这个工作点以结构体表示,若干个工作点便构成了结构体数组)。(1)在建立模型时,有时需要给模型添加一些属性,比如创建者、创建日期、修改者、修改日期、版本号等,这时可以在模型文件中添加模型信息模块,将需要添加的属性配置进该模块即可。原创 2024-09-08 01:52:59 · 1265 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十一章(端口及子系统库)【上】
子系统分为虚拟子系统和非虚拟子系统,前面提及的普通子系统属于虚拟子系统,而这里的微型子系统则是非虚拟子系统,它可以看作独立的系统,有独立参与运算的能力,而普通的子系统则不行,不过在实际应用中,二者的差别并不大,一般使用普通的子系统足矣。代码重用子系统也属于非虚拟子系统,其用法和微型子系统十分相似。该模块通常和用户自定义的库文件配合使用,可用来表示库文件中包含的各个功能相对独立模块所构成的集合。原创 2024-09-09 05:00:00 · 1946 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十一章(端口及子系统库)【下】
触发使能子系统其实是触发子系统和使能子系统二者的结合,当触发端口传来触发信号时,使能端口的输入需要大于1,触发使能子系统才能够工作。(1)相比于普通的子系统,for循环子系统中多出一个for循环迭代器(For Iterator)。(2)迭代器有一个迭代界限(Iteration limit),这个界限可以从外部输入,也可在模块内部配置,该界限决定一共执行几次循环(循环变量值超过迭代界限,循环结束);原创 2024-09-09 05:45:00 · 1566 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十二章(信号属性库)
(1)数据比例剥离模块的作用是将定点输入信号的缩放比例去掉,它将输入数据类型映射到有足够位数保存输入的最小内置数据类型(简单地说,如果输入的数据类型是浮点数,该模块将其转换为二进制表示形式,并将小数点去掉,得到所谓的“实际值”,这个“实际值”就是不考虑存储单元对应数据的数据类型,存储单元中的内容是什么,实际值就是什么),所存储的实际值就是该模块的输出值。如果该模块的采样时间不是“-1”(继承输入信号的采样时间),那么输入信号和输出信号的采样时间都要与该模块的采样时间相同。(可能会存在溢出和量化误差的情况)原创 2024-09-11 00:19:50 · 2631 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十三章(信号通路库)
(2)Tapped Delay模块仅用于将1个信号变成4个信号,然后拼成一维向量输出,在本例中其主要作用并不是延迟;(2)当编号输入端口输入的编号无法选择任一数据端口时(即编号输入端口输入的编号不在数据端口的编号集中),该模块需要选择一个默认数据端口连通至输出端口,具体有两种选择方式,第一种是默认选择最下面的一个数据端口(Last data port),第二种是另开一个默认数据端口(Additional data port),如果发生数据端口编号集中没有输入端口输入编号的情况,那么就将该端口连通至输出。原创 2024-09-15 01:23:18 · 1928 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十四章(信号输出库)
①若选择生成的形式为时间序列,输入信号的形式可以多种多样(可用于任何数据类型、复杂程度或维度),该模块将simulink中的仿真采用时间点序列作为一个列向量(成员名为Time),每个仿真采用时间点的输入信号作为也作为一个列向量(成员名为Data),二者组成一个结构体,该结构体存储在FIle name指定的MAT文件中,并将结构体赋给其中指定的变量(如果输入信号为标量或者向量,那么两个成员直接合并成矩阵,而不是存储为结构体)。(1)该模块在前面介绍其它模块时经常使用,它的作用是将输入端口的信号值显示出来。原创 2024-09-16 01:20:55 · 1787 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十五章(信号源库)
(1)白噪声具有常量功率谱,这意味着白噪声在所有频率上出现的强度相同,不随着频率的增加而衰减,白噪声的这一特性使其在功率谱上趋近为常值,即在整个频谱上都有成分,从低频到高频都有分布。(2)白噪声的理想状态是具有无限带宽,因此其能量是无限大的。然而,在实际应用中,白噪声通常是在一定频率范围内具有均匀功率谱密度的噪声。原创 2024-09-16 16:29:04 · 3015 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十六章(用户定义函数库)
注:MATLAB版本不同,可能有些模块也会有差异,但大体上区别是不大的。(1)S函数的全称为system-functions(系统函数),它主要用于扩展simulink环境(扩展simulink模块的用法)。(2)S函数可使用多种语言进行编写,如C语言、C++、Python、MATLAB、Fortran等,使用C语言、C++和Fortran这些编译型语言需要借助mex文件。原创 2024-09-17 01:02:17 · 2650 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十七章(补充离散库和补充数学库)
在离散系统中,状态空间可用如下表达式表达,m为状态变量的个数,k为输入信号的个数,r为输出信号的个数,x代表状态变量,u代表输入,y表示输出,A是个m×m的状态矩阵,B是个m×k的输入矩阵,C是个r×m的输出矩阵,D是个r×k的直接馈入矩阵。原创 2024-09-17 01:06:32 · 1480 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十八章(Stateflow状态机)
Stateflow是集成于Simulink中的图形化设计与开发工具,主要用于针对控制系统中的复杂控制逻辑进行建模与仿真,或者说,Stateflow适用于针对事件响应系统进行建模与仿真。原创 2024-09-18 00:25:24 · 10286 阅读 · 0 评论 -
Matlab simulink建模与仿真 第十九章(生成C代码)
(1)MIL测试是模型在环测试(Model in the Loop),通过纯软件仿真的形式,主要验证模型功能的正确性,是否满足设计的功能需求,旨在尽早发现问题。(2)MIL测试通过指定输入和期望结果,将仿真结果与期望结果进行比对,根据判定标准验证模型是否正确。此外,还需要进行模型覆盖率度量,确保满足一定的覆盖率标准,如语句覆盖、分支覆盖等。这种测试方法在嵌入式系统开发的初期阶段及建模阶段中进行,是一种设计验证方法,不同于硬件在环测试(HIL),后者主要用于代码验证。原创 2024-09-22 00:58:48 · 3224 阅读 · 0 评论