搜档网
当前位置:搜档网 › MATLAB Function

MATLAB Function

MATLAB Function
MATLAB Function

MATLAB Function

https://www.sodocs.net/doc/6910988929.html,/cn/help/simulink/slref/matlabfunction.html

https://www.sodocs.net/doc/6910988929.html,/p/3085723700

包括生成可嵌入C代码模型的MATLAB代码

User-Defined Functions

描述

用MATLAB Function块,你可以写一个MATLAB?函数在Simulink?的模型中使用。您创建的MATLAB函数进行仿真执行和生成代码的Simulink编码器?的目标。如果你是首次使用Simulink和MATLAB产品,见What Is a MATLAB Function Block?和Create Model That Uses MATLAB Function Block。

双击MATLAB Function块打开它的编辑器,你写的MATLAB函数,如下例所示:

要了解更多关于这个编辑器,见MATLAB Function Block Editor.

指定MATLAB Function块的输入和输出数据在参数和返回值的函数头中。前面的模型例子中函数的参数和返回值对应于该块中的输入和输出:

您也可以定义数据,输入触发器和使用的端口和数据管理函数调用输出,您从访问MATLAB Function块编辑器通过选择Edit Data.见Ports and Data Manager.

MATLAB Function块生成分析的基础上,确定每个变量的大小,类别和复杂高效的嵌入代码。

这种分析施加以下限制:

?第一个赋值给一个变量定义了,大小,类别和复数性。

见Best Practices for Defining Variables for C/C++ Code Generation.

?您不能使用可变大小的数据或重用的代码变量用于不同的目的时,除了初始分配后重新分配变量属性。

见Reassignment of Variable Properties.

除了语言的限制,MATLAB Function模块支持在MATLAB中提供的一个子函数。支持的函数的列表给出在Functions and Objects Supported for C and C++ Code Generation —Alphabetical List.

这些函数包括在共同分类的函数,例如:

?算术运算符像plus, minus, 和power.见Array vs. Matrix Operations.

?矩阵运算像size, 和length

?高级矩阵运算像lu, inv, svd, 和chol

?三角函数像sin, cos, sinh, 和cosh

见Functions and Objects Supported for C and C++ Code Generation — Categorical List

MATLAB Function块接受Simulink支持的,包括定点和枚举类型中的任何类型的输入。见Data Types Supported by Simulink. 通过MATLAB的支持,但不支持Simulink的数据类型不能在Simulink模型,和函数之间传递。这些类型可以在MATLAB Function块内使用。

关于该块定点支持的详细信息,见Fixed-Point Data Types with MATLAB Function Block和MATLAB Function Block with Data Type Override.

MATLAB Function块支持Simulink的帧。欲了解更多信息,见Sample- and Frame-Based Concepts .

对于一个MATLAB Function块的块对话框是相同的一个子系统块对话框。见Subsystem, Atomic Subsystem, Nonvirtual Subsystem, CodeReuse Subsystem

下面的模型显示了如何使用MATLAB Function块:

?sldemo_radar_eml

?sldemo_eml_galaxy

通信系统建模与仿真课程设计

通信系统建模与仿真课程设计2011 级通信工程专业1113071 班级 题目基于SIMULINK的基带传输系统的仿真姓名学号 指导教师胡娟 2014年6月27日

1任务书 试建立一个基带传输模型,采用曼彻斯特码作为基带信号,发送滤波器为平方根升余弦滤波器,滚降系数为0.5,信道为加性高斯信道,接收滤波器与发送滤波器相匹配。发送数据率为1000bps,要求观察接收信号眼图,并设计接收机采样判决部分,对比发送数据与恢复数据波形,并统计误码率。另外,对发送信号和接收信号的功率谱进行估计。假设接收定时恢复是理想的。 2基带系统的理论分析 1.基带系统传输模型和工作原理 数字基带传输系统的基本组成框图如图1 所示,它通常由脉冲形成器、发送滤波器、信道、接收滤波器、抽样判决器与码元再生器组成。系统工作过程及各部分作用如下。 g T(t) n 定时信号 图 1 :数字基带传输系统方框图 发送滤波器进一步将输入的矩形脉冲序列变换成适合信道传输的波形g T(t)。这是因为矩形波含有丰富的高频成分,若直接送入信道传输,容易产生失真。 基带传输系统的信道通常采用电缆、架空明线等。信道既传送信号,同时又因存在噪声n(t)和频率特性不理想而对数字信号造成损害,使得接收端得到的波形g R(t)与发送的波形g T(t)具有较大差异。 接收滤波器是收端为了减小信道特性不理想和噪声对信号传输的影响而设置的。其主要作用是滤除带外噪声并对已接收的波形均衡,以便抽样判决器正确判决。 抽样判决器首先对接收滤波器输出的信号y(t)在规定的时刻(由定时脉冲cp控制)进行抽样,获得抽样信号{r n},然后对抽样值进行判决,以确定各码元是“1”码还是“0”码。 2.基带系统设计中的码间干扰和噪声干扰以及解决方案

matlab中的自定义函数与调用

Matlab自定义函数 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、Syms+subs:无需M文件,直接定义; 5、字符串+subs:无需M文件,直接定义. 6、匿名函数 7、直接通过@符号定义. 1、函数文件+调用函数文件:定义多个M文件: %调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t);%调用函数时要注意实参与形参的匹配! fprintf(‘%4d^(1/3)=%6.4f\n’,t,y); end %自定义函数文件:mylfg.m function y=mylfg(x)%注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M文件 %函数文件:funtry2.m function[]=funtry2()%可以无自变量()或无因变量[] for t=1:10 y=lfg2(t); fprintf('%4d^(1/3)=%6.4f\n',t,y); end function y=lfg2(x)%%子函数 y=x^(1/3);

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’,‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表)%注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7 注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。 内联函数定义方式是将f作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于Matlab的数值计算内核的,所以它的运算速度较快,程序更有效率。 这种定义方式的缺点: 定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。 该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。 例:通过命令clear清除工作空间的所有变量后,执行如下指令 Clear Clc f=’x^2’; Syms x g; g=x^2; h=inline(‘x^2’,’x’); whos 4、Syms+subs:无需M文件,直接定义; 用syms定义一个符号表达式,用subs调用: Syms f x%定义符号 f=1/(1+x^2);%定义符号表达式也是符号

系统建模与仿真

一、基本概念 1、数字正弦载波调制 在通信中不少信道不能直接传送基带信号,必须用基带信号对载波波形的某些参量进行控制,使得载波的这些参量随基带信号的变化而变化,即所谓数字正弦载波调制。 2、数字正弦载波调制的分类。 在二进制时, 数字正弦载波调制可以分为振幅键控(ASK)、移频键控(FSK)和移相键控(PSK)三种基本信号形式。如黑板所示。 2、高斯白噪声信道 二、实验原理 1、实验系统组成 2、实验系统结构框图

图 1 2FSK信号在高斯白噪声信道中传输模拟框图 各个模块介绍p12 3、仿真程序 x=0:15;% x表示信噪比 y=x;% y表示信号的误比特率,它的长度与x相同FrequencySeparation=24000;% BFSK调制的频率间隔等于24KHz BitRate=10000;% 信源产生信号的bit率等于10kbit/s SimulationTime=10;% 仿真时间设置为10秒SamplesPerSymbol=2;% BFSK调制信号每个符号的抽样数等于2 for i=1:length(x)% 循环执行仿真程序 SNR=x(i);% 信道的信噪比依次取中的元素 sim('project_1');% 运行仿真程序得到的误比特率保存在工作区变量BitErrorRate中 y(i)=mean(BitErrorRate); end hold off% 准备一个空白的图 semilogy(x,y);%绘制的关系曲线图,纵坐标采用对数坐标 三、实验结论

图 4 2FSK信号误比特率与信噪比的关系曲线图 系统建模与仿真(二) ——BFSK在多径瑞利衰落信道中的传输性能 一、基本概念 多径瑞利衰落信道 二、实验原理 1、实验系统组成

matlab中的矩阵的基本运算命令

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

系统建模与仿真项目驱动设计报告

系统建模与仿真项目驱动设计报告 学院:电气工程与自动化学院 专业班级:自动化143班 学号:2420142928 学生姓名:李荣 指导老师:杨国亮 时间:2016年6月10号

仿真技术是一门利用物理模型或数学模型模拟实际环境进行科学实验的技术,具有经济、可靠、实用、安全、灵活和可多次重复使用的优点。 本文中将使用Matlab软件实现一个简单的控制系统仿真演示,可实现对一些连续系统的数字仿真、连续系统按环节离散化的数字仿真、采样控制系统的数字仿真以及系统的根轨迹、伯德图、尼克尔斯图和奈氏图绘制。 本设计完成基本功能的实现,基于Matlab的虚拟实验仿真的建立和应用,培养了我们的兴趣,提高了我们的实践能力。 关键字:Matlab;系统数字仿真;根轨迹;伯德图。

第一章概述 (4) 1.1 设计目的 (4) 1.2 设计要求 (4) 1.3设计内容 (4) 第二章 Matlab简介 (6) 2.1 Matlab的功能特点 (6) 2.2 Matlab的基本操作 (6) 第三章控制系统仿真设计 (8) 3.1 控制系统的界面设计 (8) 3.2 控制系统的输入模型设计 (9) 3.3 欧拉法的Matlab实现 (12) 3.4 梯形法的Matlab实现 (14) 3.5 龙格-库塔法的Matlab实现 (15) 3.6 双线性变换法的Matlab实现 (16) 3.7 零阶保持器法的Matlab实现 (17) 3.8 一阶保持器法的Matlab实现 (18) 3.9 系统PID控制的Matlab实现 (19) 3.10 系统根轨迹的绘制 (21) 3.11系统伯德图的绘制 (22) 3.12系统尼克尔斯图的绘制 (23)

MATLAB_M文件与M函数

M文件与M函数 Matlab输入命令的常用方式有两种:一种是直接在Matlab的命令窗门中逐条输入Matlab 命令;二是m文件工作方式。当命令行很简单时,使用逐条输入方式还是比较方便的。但当命令行很多时(比如说几十行乃至全成百上千行命令),显然再使用这种方式输入MATLAB 命令,就会显得杂乱无章,不易于把握程序的具体走向,并且给程序的修改和维护带来了很大的麻烦。这时,建议采用Matlab命令的第二种输入形式m文件工作方式。 m文件工作方式,指的是将要执行的命令全部写在一个文本文件中,这样既能使程序显得简洁明了,又便于对程序的修改与维护。m文件直接采用Matlab命令编写,就像在Matlab 的命令窗口直接输入命令一样,因此调试起来也十分方便,并且增强了程序的交互性。 m文件与其他文本文件一样,可以在任何文本编辑器中进打编辑、存储、修改和读取。利用m文件还可以根据白己的需要编写一些函数,这些函数也可以橡Matlab提供的函数一样进行调用。从某种意义上说,这也是对MATLAB的二次开发。 m文件有两种形式:一种是命令方式或称脚本方式;另一种就是函数文件形式。两种形式的文件扩展名均是.m。 1、M文件 当遇到输入命令较多以及要重复输入命令的情况时,利用命令文件就显得很方便了。将所有要执行的命令按顺序放到一个扩展名为.m的文本文件中,每次运行时只需在MATLAB 的命令窗口输入m文件的文件名就可以了。需要注意的是,m文件最好直接放在Matlab 的默认搜索路径下(一般是Matlab安装目录的子目录work中),这样就不用设置m文件的路径了,否则应当用路径操作指令path重新设置路径。另外,m文件名不应该与Matlab的内置函数名以及工具箱中的函数重名,以免发生执行错误命令的现象。Matlab对命令文件的执行等价于从命令窗口中顺序执行文件中的所有指令。命令文件可以访问Matlab工作空间里的任何变量及数据。命令文件运行过程中产生的所有变量都等价于从Matlab工作空间中创建这些变量。因此,任何其他命令文件和函数都可以自由地访问这些变量。这些变量一旦产生就一直保存在内存中,只有对它们重新赋值,它们的原有值才会变化。关机后,这里变量也就全部消失了。另外,在命令窗口中运行clear命令,也可以把这些变量从工作空间中删去。当然,在Matlab的工作空间窗口中也可以用鼠标选择想要删除的变量,从而将这些变量从工作空间中删除。 接下来,编写一个名为test.m的命令文件,用来计算矩阵1到100的和,并把它放到变量s中。 第一步创建新的M-文件。在Matlab主菜单上选择菜单命令File→New→M-File

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

电力系统建模及仿真课程设计

某某大学 《电力系统建模及仿真课程设计》总结报告 题目:基于MATLAB的电力系统短路故障仿真于分析 姓名 学号 院系 班级 指导教师

摘要:本次课程设计是结合《电力系统分析》的理论教学进行的一个实践课程。 电力系统短路故障,故障电流中必定有零序分量存在,零序分量可以用来判断故障的类型,故障的地点等,零序分量作为电力系统继电保护的一个重要分析量。运用Matlab电力系统仿真程序SimPowerSystems工具箱构建设计要求所给的电力系统模型,并在此基础上对电力系统多中故障进行仿真,仿真波形与理论分析结果相符,说明用Matlab对电力系统故障分析的有效性。实际中无法对故障进行实验,所以进行仿真实验可达到效果。 关键词:电力系统;仿真;短路故障;Matlab;SimPowerSystems Abstract: The course design is a combination of power system analysis of the theoretical teaching, practical courses. Power system short-circuit fault, the fault current must be zero sequence component exists, and zero-sequence component can be used to determine the fault type, fault location, the zero-sequence component as a critical analysis of power system protection. SimPowerSystems Toolbox building design requirements to the power system model using Matlab power system simulation program, and on this basis, the power system fault simulation, the simulation waveforms with the theoretical analysis results match, indicating that the power system fault analysis using Matlab effectiveness. Practice can not fault the experiment, the simulation can achieve the desired effect. Keywords: power system; simulation; failure; Matlab; SimPowerSystems - 1 - 目录 一、引言 ............................................ - 3 -

《生产物流系统建模和仿真》课程设计报告

《生产物流系统建模与仿真》课程设计 2012-2013学年度第一学期 姓名孙会芳 学号 099094090 班级工093 指导老师暴伟霍颖

目录 一、课程任务书 (3) 1.题 目............................................................... (3) 2.课程设计内容 (3) 3.课程设计要求 (4) 4.进度安排 (4) 5.参考文献 (4) 二、课程设计正文 (5) 1、题目 (5) 2、仿真模型建立 (5) (1)实体元素定义 (5) (2)元素可视化的设置 (6) (3)元素细节设计 (8) (4 ) 模型运行和数据.................................................................. . (10) (5)模型代码 (12) (6)模型改进 (16) 3.实验感想 (17)

三、参考文献 (18) 《生产物流系统建模与仿真》课程设计任务书 1. 题目 离散型流水作业线系统仿真 2. 课程设计内容 系统描述与系统参数: (1)一个流水加工生产线,不考虑其流程间的空间运输。 (2)两种工件A,B分别以正态分布和均匀分布的时间间隔进入系统,A进入队列Q1, B进入队列Q2,等待检验。(学号最后位数对应的仿真参数设置按照下表进行) (3)操作工人labor1对A进行检验,每件检验用时2分钟,操作工人labor2对B进行检验,每件检验用时2分钟。 (4)不合格的工件废弃,离开系统;合格的工件送往后续加工工序,A的合格率为65%,B的合格率为95%。 (5)工件A送往机器M1加工,如需等待,则在Q3队列中等待;B送往机器M2加工,如需等待,则在Q4队列中等待。 (6)A在机器M1上的加工时间为正态分布(5,1)分钟;B在机器M2上的加工时间为正态分布(8,1)分钟。

matalb矩阵计算(MATLAB矩阵计算)

matalb矩阵计算(MATLAB矩阵计算)matalb矩阵计算(MATLAB矩阵计算) 4.1 array operations and matrix operations From the appearance of the shape and structure of the data matrix, two-dimensional array and no difference in mathematics. However, as the embodiment of a matrix transformation or mapping operator matrix with mathematical rules, clear and strict. And array operation is defined by the software of MATLAB rules, its purpose is for data management, simple operation. The instruction form nature and perform calculations effectively. Therefore, when using MATLAB, in particular to a clear distinction between clear array operations and matrix operations. Table 4.1.1 lists the similarities and differences between the essence and connotation of two kinds of operation instruction. 4.1.1 array operations and matrix operations, instruction forms and substantive meaning Array operation Matrix operation instructions Meaning instructions Meaning A.' Non conjugate transpose

系统建模与仿真设计报告一

设计一产生十种不同分布的独立的随机数 一、设计内容及要求 任务:产生十种不同分布的独立的随机数,并进行检验。 要求:对随机数进行的统计性检验包括频率检验、参数检验、独立性检验。 二、设计环境及工具 Windows7、MatlabR2010b 三、设计思想及方法 (1) 在对雷达系统进行仿真时,首当其冲的问题就是对电磁环境 的仿、真。其中无用的电磁信号包括三大类,即杂波、噪声和干扰,在模拟仿真时相比于有用的电磁信号也是不可或缺的。其所谓的仿真就是在已知随机变量的统计特性及其参数的情况下,研究如何在计算机上产生服从给定统计特性和参数的随机变量。 (2) 在雷达、导航、声呐、通信和电子对抗等系统中,应用最多 的概率统计模型还是正态分布或高斯分布、指数分布、瑞利分布、莱斯分布或广义瑞利分布、韦尔分布、对数-正态分布、m分布、拉普拉斯分布、复合k分布等。 (3) 在这些随机总体中畸形随机抽样,实际上都是以[0,1]区间上 的均匀分布随机总体为基础的。原则上讲,只要已知[0,1]区间上的均匀分布随机数序列,总可以通过某种方法(数学方法)来获得某已知分布的简单子样。只要给定的均匀分布随机数列满足均匀

且相互独立打的要求,经过严格的数学变换或者严格的数学方法,所产生的任何分布的简单子样都会满足具有相同总体分布和相互独立的要求。 四、设计过程及结果 本次设计的十种随机数包括均匀分布、高斯分布、指数分布、广 义指数分布、瑞利分布、广义瑞利分布、韦尔分布、拉普拉斯分布、柯西分布和2χ分布,使用Matlab 完成设计并给出具体的参数,代码附在最后。 1.均匀分布 已知随机变量ε在[0,1]区间上服从均匀分布,则有概率密度函数 1,01 ()0,x f x ≤≤?=?? 其他 其分布函数为 0,0F(),01 x x x x x

生产系统建模与仿真课程设计

1. 设计分析 1.1问题描述 系统由四台加工中心、五个托盘和装夹工具、一套搬运轨道和小车、一个 工件装夹区组成,其布局如图1所示。系统所包含的主要时间类别及大致时间 如下: (1) 工件安装时间。是指待加工工件装夹并固定在托盘上的时间,由于模具工 件均为长方体,因此,该时间比较稳定,大约 2mi ns 左右。 (2) 小车等待时间。工件安装完成后,如机床都在工作状态,则小车需等待有 机床完成 工作后,开始运出待加工工件。该等待时间不是固定的值,需要计算 得出。 (3) 机床等待时间。当有多个机床处于空置状态时,由于运输容量的限制,有 的机床就 处于空置等待状态,该状态所经历的时间,就是该机床的等待时间。 (4) 工件运出时间。将已安装好工件的托盘,从安装区运出至数控设备。大约 2mi ns 。 (5) 更换托盘时间。将设备上装载已加工好的零件的托盘与小车上装载待加工 工件的托 盘进行更换。大约需要1min 。 (6) 工件运回时间。更换托盘后,将载有已加工好的工件的托盘运回安装区, 并卸载。 大约需要3mins 。 图1系统布局图 1.2设计内容 1任务队列如表1所示,计算该队列条件下的任务总完成时间、四台设备各自 的设备等待 搬运 轨道 小车

时间,绘制四台设备的工序图。 2对任务队列进行排序优化,阐述优化的思路和方法,计算优化后的任务总完成时间、四台设备各自的设备等待时间,绘制四台设备的工序图。 表1设计案例参数表(单位:分钟) 1.3设计中的主要因素及系统分析 在本次的设计条件中,系统中共有20个任务,每个任务的加工时间是不相等的,而且只有一套运输设备,各个设备的功能完全一致。所以制约的加工的最大因素便是运输的制约。按照原始的顺序,进行加工,画出原始工序图。 再对原始任务工序图进行分析,并数据计算。计算出20个任务的总加工时间, 各个设备的等待时间,小车的等待时间。分析我们所得的数据结果,找出制约整个工序的主要问题所在,并进行改善。 在这个系统中共有20个加工时间各不相同的任务,按照顺序移动的方式来进行加工。在分析之前我们需先进行以下假设: (1)加工开始前,五个托盘分别位于四台加工中心及装夹区; (2)小车运出至每台加工中心的时间相等,运回至每台加工中心的时间也 相等。 (3)系统运行中不会出现故障等影响加工时间的意外 (4)小车一次只能进行一次托盘更换,最多只能运回一个工件,也最多只能运出

Matlab自定义函数的五种方法

Matlab自定义函数的五种方法 [转] n 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; n 3、Inline:无需M文件,直接定义; n 4、Syms+subs: 无需M文件,直接定义; n 5、字符串+subs:无需M文件,直接定义. 1、函数文件+调用函数文件:定义多个M文件: % 调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘%4d^(1/3)=%6.4f\n’,t,y); end %自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M 文件

%命令文件:funtry2.m function []=funtry2() for t=1:10 y=lfg2(t) fprintf(‘%4d^(1/3)=%6.4f\n’); End function y=lfg2(x) Y= x^(1/3); %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7 注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab 的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。 例: Clear Clc

MatLab在函数的求解方法

MatLab & 数学建模第四讲数值计算

一、方程求解 求解单个代数方程 MATLAB具有求解符号表达式的工具,如果表达式不是一个方程式(不含等号),则在求解之前函数solve将表达式置成等于0。 >> solve( ' a*x^2+b*x+c ' ) % solve for the roots of the eqution ans= [1/2/a*(-b+(b^2-4*a*c)^1/2)] [1/2/a*(-b-(b^2-4*a*c)^1/2)] 结果是符号向量,其元素是方程的2个解。如果想对非缺省x变量求解,solve 必须指定变量。 >> solve( ' a*x^2+b*x+c ' , ' b ' ) % solve for b ans= -(a*x^2+c)/x 带有等号的符号方程也可以求解。 >> f=solve( ' cos(x)=sin(x) ' ) % solve for x f= 1/4*pi >> t=solve( ' tan(2*x)=sin(x) ' ) t= [ 0] [acos(1/2+1/2*3^(1/2))] [acos(1/2=1/2*3^(1/2))] 并得到数值解。 >> numeric(f) ans=

0.7854 >> numeric(t) ans= 0 + 0.8314i 1.9455 注意在求解周期函数方程时,有无穷多的解。在这种情况下,solve对解的搜索范围限制在接近于零的有限范围,并返回非唯一的解的子集。 如果不能求得符号解,就计算可变精度解。 >> x=solve( ' exp(x)=tan(x) ' ) x= 1.306326940423079 代数方程组求解 可以同时求解若干代数方程,语句solve(s1,s2,.....,sn)对缺省变量求解n个方程,语句solve(s1,s2,...,sn,' v1,v2,...,vn ')对n个' v1,v2,...vn '的未知数求解n个方程。 solve(f) 解符号方程式f。 solve(f1,…,fn) 解由f1,…,fn组成的联立方程式。 我们先定义以下的方程式: >>eq1 = 'x-3=4'; % 注意也可写成'eq1=x-7' >>eq2 = 'x*2-x-6=0'; % 注意也可写成'eq2=x*2-x-6' >>eq3 = 'x2+2*x+4=0'; >>eq4 = '3*x+2*y-z=10'; >>eq5 = '-x+3*y+2*z=5'; >>eq6 = 'x-y-z=-1'; >>solve(eq1) ans=

系统建模与仿真

系统建模仿真技术的历史现状和发展趋势分析 工程133 胡浩3130212026 【摘要】:经过半个多世纪的发展,仿真技术已经成为对人类社会发展进步具有重要影响的一门综合性技术学科。本文对建模与仿真技术发展趋势作了较全面分析。仿真建模方法更加丰富,更加需要仿真模型具有互操作性和可重用性,仿真建模VVA与可信度评估成为仿真建模发展的重要支柱;仿真体系结构逐渐形成标准,仿真系统层次化、网络化已成为现实,仿真网格将是下一个重要发展方向;仿真应用领域 更加丰富,向复杂系统科学领域发展,并将更加贴近人们的生活。 工程系统的仿真,起源于自动控制技术领域。从最初的简单电子、机械系统,逐步发展到今天涵盖机、电、液、热、气、电、磁等各个专业领域,并且在控制器和执行机构两个方向上飞速发展。 控制器的仿真软件,在研究控制策略、控制算法、控制系统的品质方面提供了强大的支持。随着执行机构技术的发展,机、电、液、热、气、磁等驱动技术的进步,以高可靠性、高精度、高反应速度和稳定性为代表的先进特征,将工程系统的执行品质提升到了前所未有的水平。相对控制器本身的发展,凭借新的加工制造技术的支持,执行机构技术的发展更加富于创新和挑战,而对于设计、制造和维护高性能执行机构,以及构建一个包括控制器和执行机构的完整的自动化系统也提出了更高的要求。 AMESIM软件正是能够提供平台级仿真技术的工具。从根据用户需求,提供液压、机械、气动等设计分析到复杂系统的全系统分析,

到引领协同仿真技术的发展方向,AMESIM的发展轨迹和方向代表了工程系统仿真技术的发展历程和趋势。 一、系统仿真技术发展的现状 工程系统仿真作为虚拟设计技术的一部分,与控制仿真、视景仿真、结构和流体计算仿真、多物理场以及虚拟布置和装配维修等技术一起,在贯穿产品的设计、制造和运行维护改进乃至退役的全寿命周期技术活动中,发挥着重要的作用,同时也在满足越来越高和越来越复杂的要求。因此,工程系统仿真技术也就迅速地发展到了协同仿真阶段。其主要特征表现为: 1、控制器和被控对象的联合仿真:MATLAB+AMESIM,可以覆盖整个自动控制系统的全部要求。 2、被控对象的多学科、跨专业的联合仿真:AMESIM+机构动力学+CFD+THERMAL+电磁分析 3、实时仿真技术 实时仿真技术是由仿真软件与仿真机等半实物仿真系统联合实现的,通过物理系统的实时模型来测试成型或者硬件控制器。 4、集成进设计平台 现代研发制造单位,尤其是设计研发和制造一体化的大型单位,引进PDM/PLM系统已经成为信息化建设的潮流。在复杂的数据管理流程中,系统仿真作为CAE工作的一部分,被要求嵌入流程,与上下游工具配合。

Matlab矩阵的简单操作

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素

生产系统建模与仿真课程设计

1.1问题描述 系统由四台加工中心、五个托盘和装夹工具、一套搬运轨道和小车、一个工件装夹区组成,其布局如图1所示。系统所包含的主要时间类别及大致时间如下: (1) 工件安装时间。是指待加工工件装夹并固定在托盘上的时间,由于模具工件均为长方体,因此,该时间比较稳定,大约2mins 左右。 (2) 小车等待时间。工件安装完成后,如机床都在工作状态,则小车需等待有机床完成工作后,开始运出待加工工件。该等待时间不是固定的值,需要计算得出。 (3) 机床等待时间。当有多个机床处于空置状态时,由于运输容量的限制,有的机床就处于空置等待状态,该状态所经历的时间,就是该机床的等待时间。 (4) 工件运出时间。将已安装好工件的托盘,从安装区运出至数控设备。大约2mins 。 (5) 更换托盘时间。将设备上装载已加工好的零件的托盘与小车上装载待加工工件的托盘进行更换。大约需要1min 。 (6) 工件运回时间。更换托盘后,将载有已加工好的工件的托盘运回安装区,并卸载。大约需要3mins 。 图1 系统布局图 CNC CNC CNC CNC 搬运轨道 小车 工件装夹区

1 任务队列如表1所示,计算该队列条件下的任务总完成时间、四台设备各自的设备等待时间,绘制四台设备的工序图。 2 对任务队列进行排序优化,阐述优化的思路和方法,计算优化后的任务总完成时间、四台设备各自的设备等待时间,绘制四台设备的工序图。 表1 设计案例参数表(单位:分钟) 安装运出运回更换 2 2 3 1 任务1 任务2 任务3 任务4 7 15 21 5 任务5 任务6 任务7 任务8 12 33 17 38 任务9 任务10 任务11 任务12 8 19 22 25 任务13 任务14 任务15 任务16 16 27 31 6 任务17 任务18 任务19 任务20 245118 11 1.3设计中的主要因素及系统分析 在本次的设计条件中,系统中共有20个任务,每个任务的加工时间是不相等的,而且只有一套运输设备,各个设备的功能完全一致。所以制约的加工的最大因素便是运输的制约。按照原始的顺序,进行加工,画出原始工序图。再对原始任务工序图进行分析,并数据计算。计算出20个任务的总加工时间,各个设备的等待时间,小车的等待时间。分析我们所得的数据结果,找出制约整个工序的主要问题所在,并进行改善。 在这个系统中共有20个加工时间各不相同的任务,按照顺序移动的方式来进行加工。在分析之前我们需先进行以下假设: (1)加工开始前,五个托盘分别位于四台加工中心及装夹区; (2)小车运出至每台加工中心的时间相等,运回至每台加工中心的时间也相等。

matlab自定义函数与极值求法

实验5 matlab 自定义函数与导数应用 实验目的 1.学习matlab 自定义函数. 2.加深理解罗必塔法则、极值、最值、单调性. 实验内容 1.学习matlab 自定义函数及求函数最小值命令. 函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab 软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab 允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab 函数库中,显然这为matlab 提供了扩展的功能,无庸置疑,这也正是matlab 的精髓所在.因为matlab 的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab 自定义函数是一个指令集合,第一行必须以单词function 作为引导词,存为具有扩展名“.m ”的文件,故称之为函数M -文件. 函数M -文件的定义格式为: function 输出参数=函数名(输入参数) 函数体 …… 函数体 一旦函数被定义,就必须将其存为M -文件,以便今后可随时调用.比如我们希望建立函数12)(2++=x x x f ,在matlab 工作区中输入命令: syms x ;y=x^2+2*x+1; 不能建立函数关系,只建立了一个变量名为y 的符号表达式,当我们调用y 时,将返回这一表达式. y ? y=x^2+2*x+1 当给出x 的值时,matlab 不能给出相应的函数值来. x=3;y ? y=x^2+2*x+1 如果我们先给x 赋值. x=3;y=x^2+2*x+1 得结果:y=16 若希望得出2|=x y 的值,输入: x=2;y ? 得结果:y=16,不是2=x 时的值.读者从这里已经领悟到在matlab 工作区中输入命令:y=x^2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单Fill\New\M-fill 打开matlab 文本编辑器,输入: function y=f1(x) y=x^2+2*x+1; 存为f1.m .调用该函数时,输入: syms x ;y=f1(x)?

MATLAB部分函数使用方法

读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG 等。比如 >> f = imread('chestxray.jpg'); 读进来的图像数据被保存在变量f中。尾部的分号用来抑制输出。如果图片是彩色的,可以用rgb2gray转换成灰度图: >> f = rgb2gray(f); 然后可以用size函数看图像的大小 >> size(f) 如果f是灰度图像,则可以用下面的命令把这个图像的大小赋给变量M和N >> [M, N] = size(f); 用whos命令查看变量的属性 >> whos f 显示图像:用imshow显示图像 imshow(f, G) 其中f是图像矩阵,G是像素的灰度级,G可以省略。比如 >> imshow(f, [100 200]) 图像上所有小于等于100的数值都会显示成黑色,所有大于等于200的数值都会显示成白色。pixval命令可以用来查看图像上光标所指位置的像素值。 pixval 例如 >> f = imread('rose_512.tif'); >> whos f >> imshow(f) 如果要同时显示两幅图像,可以用figure命令,比如 >> figure, imshow(g) 用逗号可以分割一行中的多个命令。imshow的第二个参数用一个空的中括号: >> imshow(h, []) 可以使动态范围比较窄的图像显示更清楚。 写图像。用imwrite写图像 imwrite(f, 'filename') 文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式。比如

>> imwrite(f, 'patient10_run1.tif', 'tif') 也可以写成 >> imwrite(f, 'patient10_run1.tif') 还可以有其他参数,比如jepg图像还有质量参数: >> imwrite(f, 'filename.jpg', 'quality', q) q是0到100之间的一个整数。对比不同质量的图像效果。用imfinfo命令可以查看一个图像的格式信息,比如 >> imfinfo bubbles25.jpg 可以把图像信息保存到变量中 >> K = imfinfo('bubbles25.jpg'); >> image_bytes = K.Width * K.Height * K.BitDepth / 8; >> compressed_btyes = K.FileSize; >> compression_ratio = image_bytes / compressed_bytes 数据类型。MA TLAB的数据类型包括: double 双精度浮点 uint8 无符号8位整数 uint16 无符号16位整数 uint32 无符号32位整数 int8 有符号8位整数 int16 有符号16位整数 int32 有符号32位整数 single 单精度 char 字符 logical 逻辑型(二值) 数据类型转换 B = data_class_name(A) 比如 >> C = [1.4 1.5] >> D = uint8(C) 图像类型分为: Intensity image 灰度图 Binary image 二值图 Indexed image 索引图 RGB image 彩色图 在灰度图中每个像素可以是整型、浮点型或者逻辑型。图像类型的像素类型可以转换

相关主题