搜档网
当前位置:搜档网 › MATLAB仿真技术与应用

MATLAB仿真技术与应用

MATLAB仿真技术与应用
MATLAB仿真技术与应用

例2-1 已知一个系统的微分方程为:

???????-==12215x

u d t

d x x

d t

d x

其中,状态变量初始条件0)0()0(21==x x ,输入u 为阶跃函数,要求利用SIMULINK 对系统建立仿真模型,并绘制时域响应曲线。

在利用SIMULINK 创建模型之前,先把微分方程进行拉普拉斯变换,得到每个微分方程

的传递函数,即用传递函数的形式表示系统。

Gain

连接信号之后的系统模型图 exam2_1

系统时域响应曲线

例7-9 一个控制系统由5个子系统组成,组成结构如下图

各子系统的传递函数分别为:

6

1521

5)(2

21++++=s s s s s G ,)20)(2()

6(4)(2+++=

s s s s G ,1010)(3+=s s G ,6

31)(4+++=s s s s G ,1.0)(=s H

试在MATLAB 中分别用仿真模块建模和仿真命令编程两种方法进行仿真,并绘制系统的

阶跃响应曲线图。

首先在Simulink 环境下将所需要的仿真模块连接起来,并将各模块的参数设置好。

系统的仿真模型图 exam7_9

系统的阶跃响应

MATLAB 程序如下: %control system simulation

clear all; clc;

num1=[1 5 1]; den1=[2 15 6];

G1=tf(num1,den1);

z=-6;

p=[-2;-20];

k=4;

G2=zpk(z,p,k);

G3=tf(10,[1 10]);

num4=[1 1];

den4=[1 3 6];

G4=tf(num4,den4);

H=0.1;

Gf=(G1*G2+G3)*G4;

G=feedback(Gf,H);

GG=tf(G);

step(G);

%axis([0 10 0 0.35])

grid on

程序运行后得到的阶跃响应曲线如图所示。

系统的阶跃响应

程序运行结果为:

Zero/pole/gain:

12 (s+0.3845) (s+1) (s+2.199) (s+7.054) (s+18.45)

----------------------------------------------------------------------------------------- (s+19.99) (s+9.88) (s+7.077) (s+1.993) (s+0.4234) (s^2 + 3.137s + 6.217) Transfer function:

12 s^5 + 349 s^4 + 2699 s^3 + 6654 s^2 + 5612 s + 1320

--------------------------------------------------------------------------------------------------------------- s^7 + 42.5 s^6 + 628.7 s^5 + 4227 s^4 + 1.441e004 s^3 + 2.788e004 s^2 + 2.684e004 s + 7332

从结果可以看出,采用仿真模块建模实现仿真的方法与采用仿真命令实现仿真的方法得到的仿真结果是完全相同的。采用哪一种方法进行仿真,可以根据实际情况而定。一般说来,采用仿真模块建模实现仿真的方法更简单、方便,但采用仿真命令实现仿真的方法更灵活。

2.4.1 利用输出模块分析

利用SIMULINK输出模块进行仿真结果分析输出有以下几种方法:

观察输出轨迹;

以文件形式输出;

直接显示数据输出;

用表盘和量计显示输出;

进行数字信号处理、分析输出。

1.观察输出轨迹

⑴信号输入到Scope模块或XY Graph(相轨迹示波器)模块观察输出轨迹。

sin(2t)

图exam2_21

⑵将输出信号写入返回变量,并利用MATLAB命令绘图

在仿真结束后,在MATLAB工作空间自动生成两个变量tout和yout,分别返回时间矢量和各个输出端子的仿真结果。执行plot(tout,yout)得图示结果。

Gain

图exam2_23

⑶使用ToWorkspace模块把输出写入到MATLAB工作空间,然后通过MATLAB的绘图命令绘制输出轨迹。

Gain

图exam2_25

2. 以文件形式输出仿真结果

Step

Gain

利用输出模块中的To file模块可以将仿真结果以Mat文件的格式直接保存到数据文件

中。

3. 直接显示数据输出

4. 表盘和量计显示输出

Dials & Gauges

5. 信号处理、分析输出

DSP模块、SIMULINK Extra模块

图exam2_29

2.5 子系统

随着研究的系统越来越大,越来越复杂,直接使用基本的SIMULINK模块创建的系统模型会十分庞大,而且信号的传输方向也会变得十分不明显。为了简化模型以及增加它的可读性,可以将一些独立功能的模块化分成一组,构成子系统。

2.5.1 子系统的创建

使用子系统不仅可以使仿真模型中显示的模块数量减少,便于读图,而且还建立了层次化的仿真模型框图,子系统模块在一个层次,组成各个子系统的模块在另外一个层次。

创建子系统的方法有两种:一种是利用模型中已经存在的模块创建子系统;另一种是通过向子系统模块加入新的模块创建子系统。

1. 通过已有模块创建子系统

图exam2_33

通过比例、微分、积分模块创建PID控制器子系统的具体步骤:

⑴选中组成PID控制器的所有模块;

⑵执行Edit/Create subsystem命令,则会把已经选中的模块装入一个名为subsystem的模块中。

2. 通过子系统模块创建子系统

Simulink\Common Used Blocks\Subsystem

复制一个Subsystem模块到仿真模型窗口,然后双击该模块,产生一个模型窗口,最后利用创建SIMULINK仿真模型的方法把子系统包含的所有模块复制到其中,对其进行信号连接。

创建PID控制器子系统的具体过程:

2.5.2 子系统的封装

利用前面介绍的方法创建子系统,到达了简化模型、提高模型可读性的目的。但是这样建立的子系统要从MATLAB工作空间直接获取变量,与SIMULINK模块库中的基本模块还有很大差别,存在着不少缺陷。因此,需要对所创建的子系统进行封装,进一步完善子系统。所谓子系统的封装技术就是将对应的子系统的内部结构隐藏起来。这样在访问此子系统模块

时就只出现一个参数设置对话框,只要将所需要的变量参数输入到对话框中即可。实际上,SIMULINK的基本模块也是子系统封装后得到的,所以子系统封装之后与基本模块是一致的。

子系统的封装过程如下:

⑴选中已创建的子系统,在仿真模型窗口的菜单栏执行Edit/Mask subsystem命令,将会打开Mask Editor对话框。

⑵利用封装编辑器可以实现子系统对话框的设计。需要设计的内容主要包括子系统的图形标示、变量参数以及模块描述和帮助信息。

⑶关闭封装编辑器,则得到了新建的封装之后的子系统模块。

1. 封装编辑器

⑴Icon选项卡

①Mask type文本框:可以任意填写,它接受中、英文输入。

②Drawing commands(图形标示命令)文本框:对封装后的子系统进行图形标识。可以使用plot命令绘制图形,可以使用disp命令在子系统的图标上写入字符串名称,可以使用image 函数进行图像显示。

③Icon frame(标识边框):设置模块图标是否有边框,Visible or Invisible。

④Icon transparency(标识透明):Opaque or Transparent。默认值Opaque:图标上的图形会将子系统模块的端口信息覆盖。

⑤Icon rotation:Fixed or Rotates. 默认值Fixed,表示在旋转或反转子系统模块时,图标

不会随之旋转或翻转。Rotates,则表示在旋转或反转子系统模块时,图标会随之旋转或翻转。

⑥Drawing coordinates(units): Autoscal\ Pixels e \Normalized. 默认的格式Autoscale

⑵Initialization选项卡

在进行子系统模块封装时,最重要的一步就是设计子系统模块变量参数设置对话框,这需要在Initialization选项卡中完成,可以对封装子系统模块的参数设置对话框进行变量参数的提示与设置的设计。

Initialization commands,用于定义生成封装子系统模块过程中所需要的变量。例如,封装系统模块过程中如果使用MATLAB的plot绘制模块图标,在此可以定义所需要的变量。

⑶Documentation选项卡

Documentation选项卡提供给用户编写封装子系统模块的性质说明和帮助信息。

Mask type\Block description\Block help

2. 封装实例:PID控制器子系统模块封装

⑴模块显示“PID Controller”:在Drawing commands中输入disp(‘PID Controller’) 。

⑵在Parameters(以前版本在Initialization中)选项卡中设计封装后子系统参数设置对话框,PID控制器需要传递的变量参数有3个,单击Add按钮3次,即生成3个需要传递变量的位置。

⑶在Documentation选项卡中,为PID控制器子系统模块添加文字说明。

2.5.3 条件执行子系统

在simulink 模块库中,Enable 模块和Trigger 模块是比较特殊的模块,如果把这样的模块放到某个子系统中,该子系统会在给定的控制信号的控制下执行,这样的子系统称为条件执行子系统(conditionally executed subsystem)。

1. Enabled subsystem

Enabled subsystem 只有控制信号为正时,才执行子系统,否则禁止执行。实际上,它就是数字电路中的电平触发。当它处于禁止状态时,为了保持系统输出的连续性,它也有信号输出。用户可以选择继续保持禁止前的信号输出,也可以将子系统强制复位再指定输出值。

⑴Simulink\Ports & Subsystems\Enabled Subsystem

Triggered Subsystem

Subsystem

⑵设置Enable 模块参数的方法:首先双击Enable 模块,然后进行设置held or reset 。

⑶通过选通show output port 复选框以设置是否允许系统输出使能控制信号。

⑷Enabled subsystem 的Out1模块,设置Enabled subsystem在禁止状态下的输出信号。

在Output when disabled中,如果选择held,则在禁止状态下的输出将保持禁止前的状态值;如果选择reset,则子系统被强制复位,并且此时的输出需要在Initial Output中设置。

⑸使用Enable subsystem 模块实现半波整流系统的仿真。

半波整流系统在输入信号为正时,输出原信号,否则输出为零。

Subsystem

图exam2_45

2. Triggered subsystem

Triggered subsystem 是在触发信号发生的瞬间执行子系统,然后保持子系统的输出状态,

直到下一个触发信号到来。

⑴Simulink\Ports & Subsystems\Triggered Subsystem

Subsystem

Enabled Subsystem

g e r

⑵用户可以对触发信号进行如下设置:

①上升沿触发: ②下降沿触发:

③边沿触发:当输入信号发生变化时,即出现上升沿或下降沿时,均执行Triggered subsystem 。

④另外,还有一种使Triggered subsystem 执行的情况,就是函数调用触发,此时Triggered subsystem 的执行取决于S 函数内部的逻辑,而与触发信号无关。

⑶仿真系统的仿真模型如图所示,这里使用下降沿触发。

图 exam2_48

3. Enable and Triggered subsystem

Triggered Subsystem

e r

l e

2.5.4 定义自己的模块库

如果用户建立了很多封装子系统模块,常常需要建立自己的模块库,用于分门别类地存储这些模块。另外,在进行仿真建模时,为了减少打开模块库的次数和方便系统仿真建模,用户通常也需要将实现某种功能的一组常用模块统一放置在同一模块库中。

创建模块库方法:在Simulink Library Browser窗口的菜单栏中执行File/New/Library命令,将需要存放在同一个模块库中的模块复制到模块库窗口即可。

MATLAB-仿真技术

MATLAB-仿真技术 作 业 合 集

第1章习题 5.利用直接输入法和矩阵编辑器创建矩阵A=? ? ? ? ??642531。 解:⑴利用直接输入法输入程序 A=[1 3 5;2 4 6] 按Enter 键后,屏幕显示 A = 1 3 5 2 4 6 ⑵用矩阵编辑器创建矩阵,如图1.1所示。 图1.1 MATLAB 编辑器 7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。 a=??????642531?a=??????????654321?a=??????????987654321?a=???? ??????098706540321?a=????? ???????00 00 09870654 0321 解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。 图1.2 图1.3 图1.4图1.5

图1.6 9.已知矩阵B=????? ?? ?????????922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。 解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序 B1=B([1,2],[2,4,5]) 按Enter 键后,屏幕显示 B1 = 0 0 15 5 14 16 ②输入程序 B2=B([1,3],:) 按Enter 键后,屏幕显示 B2 = 17 0 1 0 15 4 0 13 0 22 ③第一行和第三行的第2;4个元素原本就为0。 ④输入程序如下 C=B(1,:)<5; %将B 矩阵第一行中小于5 的值标记为1 D=B(1,C) %去B 矩阵第一行中标为1的元素 按Enter 键后,屏幕显示 D= 0 1 0 11.已知矩阵a 为4阶魔方阵,令a+3赋值给b ,a+b 赋值给c ,求b 和c 。 解:程序如下。 >> a=magic(4) %建立4阶魔方矩阵 a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 1 5 1 >> b=a+3 %将a 中各元素加3 b = 19 5 6 16 8 14 13 11 12 10 9 15 7 17 18 4

matlab基础与指导应用部分习题问题详解

作业一 4、写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。>> M=[0:1:48]; >> A=reshape(M,7,7) A = 0 7 14 21 28 35 42 1 8 15 2 2 29 36 43 2 9 16 2 3 30 37 44 3 10 17 2 4 31 38 45 4 11 18 2 5 32 39 46 5 12 19 2 6 33 40 47 6 13 20 2 7 34 41 48 >> B=A(2:5,1:2:5) B = 1 15 29 2 16 30 3 17 31 4 18 32 (2)删除矩阵A的第七行元素。 >> A(7,:)=[] A = 0 7 14 21 28 35 42 1 8 15 2 2 29 36 43 2 9 16 2 3 30 37 44 3 10 17 2 4 31 38 45 4 11 18 2 5 32 39 46 5 12 19 2 6 33 40 4 7 (3)将矩阵A的每个元素值加30。 >> A=A+30 A = 30 37 44 51 58 65 72 31 38 45 52 59 66 73 32 39 46 53 60 67 74

33 40 47 54 61 68 75 34 41 48 55 62 69 76 35 42 49 56 63 70 77 (4求矩阵A的大小和维素。 sizeA = size(A) dA = ndims(A) sizeA = 6 7 dA = 2 (5)将向量t的0元素用机器零来代替。 >> t=[1 2 3 4 0 5]; t = 1 2 3 4 0 5 >> find(t==0) ans = 5 >> t(5)=eps t = 1.0000 2.0000 3.0000 4.0000 0.0000 5.0000 (6)将含有12个元素的向量x转换成3*4矩阵。 >> x=[0:11] x = 0 1 2 3 4 5 6 7 8 9 10 11 >> y=reshape(x,3,4) y =

电力电子技术MatLab仿真

本文前言 MA TLAB的简介 MATLAB是一种适用于工程应用的各领域分析设计与复杂计算的科学计算软件,由美国Mathworks公司于1984年正式推出,1988年退出3.X(DOS)版本,19992年推出4.X(Windows)版本;19997年腿5.1(Windows)版本,2000年下半年,Mathworks公司推出了他们的最新产品MATLAB6.0(R12)试用版,并于2001年初推出了正式版。随着版本的升级,内容不断扩充,功能更加强大。近几年来,Mathworks公司将推出MATLAB语言运用于系统仿真和实时运行等方面,取得了很多成绩,更扩大了它的应用前景。MATLAB已成为美国和其他发达国家大学教学和科学研究中最常见而且必不可少的工具。 MATLAB是“矩阵实验室”(Matrix Laboratory)的缩写,它是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需要。在MATLAB中,每个变量代表一个矩阵,可以有n*m个元素,每个元素都被看做复数摸索有的运算都对矩阵和复数有效,输入算式立即可得结果,无需编译。MATLAB强大而简易的做图功能,能根据输入数据自动确定坐标绘图,能自定义多种坐标系(极坐标系、对数坐标系等),讷讷感绘制三维坐标中的曲线和曲面,可设置不同的颜色、线形、视角等。如果数据齐全,MATLAB通常只需要一条命令即可做图,功能丰富,可扩展性强。MATLAB软件包括基本部分和专业扩展部分,基本部分包括矩阵的运算和各种变换、代数和超越方程的求解、数据处理和傅立叶变换及数值积分风,可以满足大学理工科学生的计算需要,扩展部分称为工具箱,它实际上使用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的问题,或实现某一类的新算法。现在已经有控制系统、信号处理、图象处理、系统辨识、模糊集合、神经元网络及小波分析等多种工具箱,并且向公式推倒、系统仿真和实时运行等领域发展。MATLAB语言的难点是函数较多,仅基本部分就有七百多个,其中常用的有二三百个。 MATLAB在国内外的大学中,特别是数值计算应用最广的电气信息类学科中,已成为每个学生都应该掌握的工具。MATLAB大大提高了课程教学、解题作业、分析研究的效率。

《MATLAB程序设计与应用(刘卫国)》(第二版) 答案

《MATLAB程序设计与应用(刘卫国)》(第二版)实验一MATLAB运算基础 1.(1) z1=2*sin(pi*85/180)/(1+exp(2)) (2)x=[2,1+2i;-0.45,5]; z2=log(x+sqrt(1+x.^2))/2 (3)a=-3.0:0.1:3.0; z3=0.5*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+log((0.3+a)/2) (4)t=0:0.5:2.5; z4=(t>=0&t<1).*t.^2+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1) 2. A=[12,34,-4;34,7,87;3,65,7]; B=[1,3,-1;2,0,3;3,-2,7]; (1)a=A+6*B b=A-B+eye(size(A)) %I=eye(size(A)) (2)c=A*B d=A.*B (3)e=A^3 f=A.^3 (4)g=A/B h=B\A (5)m=[A,B] n=[A([1,3],:);B^2] 3. A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25]; B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; (1)C=A*B (2)D=C(3:end,2:end) 4.(1) a=100:999; b=rem(a,21)==0; c=find(b); d=length(c) (2)ch='Just as Bianhaiman said,Xiehong is ...'; e=find(ch>='A'&ch<='Z'); ch(e)=[] 实验二 MATLAB矩阵分析与处理 1.E=eye(3);

MATLAB基础及应用实验指导书

MATLAB基础及应用实验指导书

MATLAB基础及应用课程实验指导书 实验一软件环境和基本操作熟悉 一、实验目的 ①熟悉MATLAB 主界面,并学会简单的菜单操作。 ②学会简单的矩阵输入与信号输入。 ③掌握部分绘图函数。 二、实验内容 熟悉MATLAB操作环境,通过简单操作熟悉MATLAB的基本使用方法。 三、实验要求与步骤 1、用户第一次使用MATLAB 时,建议首先在屏幕上键入demo 命令,它将启动MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。也可以键入help 进行进一步了解。 MATLAB 启动界面如图所示: MATLAB 语言最基本的赋值语句结构为:变量名列表= 表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“= ”省略,则ans 变量将自动建立,例如键入:1900/81 ,得到输出结果:ans =23.4568 。 MATLAB 中变量命名的原则要求必须以英文字母开头,文件夹名字中可以

还包括、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的。这种规则包括将来为自己编写的脚本文件、函数文件命名以及为使用的变量命名也应遵循这个规则。 2、用户工作目录和当前目录的建立和设置 1)为管理方便,每个用户在使用MATLAB 前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建应用文件。例如首先打开资源管理器,在E 驱动器下可以根据自己喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的,这与MATLAB 中为变量和文件名命名原则是一致的。尽管MATLAB\work 允许用户存放用户文件,但最好把它仅作为临时工作目录来使用。 2)为了用户运行方便,在开始工作前可把用户定义的目录设置为当前目录,方法是可直接在MATLAB 命令窗口桌面上方通过目录设置栏来实现。 3)把自己的工作目录加到MATLAB 搜索路径上,这样可以在任何情况下方便地调用自己的编写文件。MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在MATLAB 定义的搜索路径其他目录中,检查是否有该M 文件存在。设置方法是通过File 菜单下设置路径对话框进行。 3、熟悉简单的矩阵输入 1)从屏幕上输入矩阵A=[1 2 3 ;4 5 6;7 8 9] 回车 A=[1,2,3;4,5,6;7,8,9] 回车 观察输出结果。 2)试用回车代替分号,观察输出结果。 3)输入size(A) ,观察结果。 4)输入矩阵B=[9,8,7;6,5,4;3,2,1];回车 输入矩阵C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。 5)选择File | new 菜单中的M-file ,输入B=[9,8,7;6,5,4;3,2,1] ;保存为

简单码分复用技术及其Matlab仿真

简单码分复用技术及其Matlab仿真 作者姓名:肖杨 专业名称:通信工程 指导老师:梁维海讲师 2012年5月20日

摘要 关键词:多址技术频分复用相干解调非相干解调

Abstact With the emergence of a variety of high - speed communication services and increase in the number of access users,With a lot of pressure on the existing communication network,Alleviate the problem of network bandwidth multiplexing the emergence of. Which code-division multiplexing is a kind of rely on different codes to distinguish the brightest of the original signal a multiplexing, And a variety of multiple access technologies combine to produce a variety of access technologies, Including wireless and wireline access. For example , multiple access cellular system based on the channel to distinguish between the communication object,One channel only to accommodate a user calls, Many users call at the same time, Each other to distinguish the channel, This is the multiple access. Multiple access technology is divided into frequency division multiple access (FDMA) , time division multiple access (TDMA) , Code Division Multiple Access (CDMA ), Space Division Multiple Access (SDMA). Keywords: Multiple Access Technology Frequency Division Multiplexing Coherent demodulation Non-coherent demodulation

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

刘卫国版MATLAB程序设计与应用课后实验六八九

实验六 高层绘图操作 %第一题: 程序代码如下: x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)).*cos(x); plot(x,y) 01234567 -1 -0.5 0.5 1 1.5 %第二题: %(1) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\leftarrow y1=x^2'); text(6*pi/4,-1,'\downarrow y2=cos(2*x)'); text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2');

-8 -6 -4 -2 2 4 6 8 -30-20 -10 10 20 30 40 %(2) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1);%分区 plot(x,y1); title('y1=x^2');%设置标题 subplot(1,3,2); plot(x,y2); title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3); title('y3=x^2*cos(2*x)');

-10 10 0510 15202530 35 40y1=x 2 -10 10 -1-0.8 -0.6 -0.4-0.200.20.4 0.6 0.8 1y2=cos(2*x) -10 10 -30-20 -10 10 20 30 40 y3=x 2*cos(2*x) %(3) 程序代码如下: x=linspace(-2*pi,2*pi,20); y1=x.^2; subplot(2,2,1);%分区 bar(x,y1); title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1); title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1); title('y1=x^2的杆图'); subplot(2,2,4); fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

MATLAB仿真技术

MATLAB仿真技术 作 业 合 集

第1章 习题 5.利用直接输入法和矩阵编辑器创建矩阵A=? ? ? ? ??642531。 解:⑴利用直接输入法输入程序 A=[1 3 5;2 4 6] 按Enter 键后,屏幕显示 A = 1 3 5 2 4 6 ⑵用矩阵编辑器创建矩阵,如图1.1所示。 图1.1 MATLAB 编辑器 7.用矩阵编辑器创建矩阵a,使a 具有如下矩阵形式。 a=??????642531?a=??????????654321?a=??????????987654321?a=???? ??????098706540321?a=????? ???????00 00 09870654 0321 解:用矩阵编辑器创建矩阵a 的过程如图1.2、1.3、1.4、1.5、1.6所示。 图1.2 图1.3 图1.4 图1.5

图1.6 9.已知矩阵B=????? ?? ?????????922518113211912102201304161475231501017,试:①提取矩阵B 的第一行和第二行的第2、4、5个元素组成新矩阵1B ;②提取矩阵B 的第三行和第一行的全部元素组成新矩阵2B ;③使矩阵B 的第一行和第三行的第2;4个元素为0;④标出矩阵B 的第一行中小于5的元素。 解:①如上题,用矩阵编辑器生成矩阵B ,再输入程序 B1=B([1,2],[2,4,5]) 按Enter 键后,屏幕显示 B1 = 0 0 15 5 14 16 ②输入程序 B2=B([1,3],:) 按Enter 键后,屏幕显示 B2 = 17 0 1 0 15 4 0 13 0 22 ③第一行和第三行的第2;4个元素原本就为0。 ④输入程序如下 C=B(1,:)<5; %将B 矩阵第一行中小于5 的值标记为1 D=B(1,C) %去B 矩阵第一行中标为1的元素 按Enter 键后,屏幕显示 D= 0 1 0 11.已知矩阵a 为4阶魔方阵,令a+3赋值给b ,a+b 赋值给c ,求b 和c 。 解:程序如下。 >> a=magic(4) %建立4阶魔方矩阵 a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> b=a+3 %将a 中各元素加3 b = 19 5 6 16 8 14 13 11 12 10 9 15 7 17 18 4

matlab仿真技术报告

专业课程报告 题目:仿真技术与应用课程报告 学院电气工程学院 专业班级 学生姓名 指导教师 提交日期 2013年11月 5日

评语 课程总评成绩: 指导老师: 2013年 12 月20 日

目录 一、负荷预测技术发展情况 (2) 1.1.神经网络理论 (2) 1.2.灰色数学理论 (2) 1.3.组合预测法 (3) 1.4. 线性回归负荷预测方法 (3) 二、算法实现 (4) 三、编程代码 (6) 四、算例测试 (6) 五、心得体会 (9) 六、参考文献 (9)

一、负荷预测技术发展情况 负荷预测技术包括神经网络技术、灰色数学理论、组合预测法、线性回归负荷预测方法 1.1.神经网络理论 神经网络理论是利用神经网络的学习功能,让计算机学习包含在历史负荷数据中的映射关系,再利用这种映射关系预测未来负荷。由于该方法具有很强的鲁棒性、记忆能力、非线性映射能力以及强大的自学习能力,因此有很大的应用市场,但其缺点是学习收敛速度慢,可能收敛到局部最小点;并且知识表达困难,难以充分利用调度人员经验中存在的模糊知识。 神经网络技术进行电力负荷预测,其优点是可以模仿人脑的智能化处理,对大量非结构性、非精确性规律具有自适应功能,具有信息记忆、自主学习、知识推理和优化计算的特点,特别的,其自学习和自适应功能是常规算法和专家系统技术所不具备的。因此,预测被当作人工神经网络(简记为ANN)最有潜力的应用领域之一,许多人都试图应用反传学习算法训练ANN。以用作时间序列预测。误差反向传播算法又称为BP法,提出一个简单的三层人工神经网络模型,就能实现从输入到输出间非线性映射任何复杂函数关系。因此,我们可以将对电力负荷影响最大的几种因素作为输入,即当天的天气温度、天气晴朗度(又称为能见度)、风向风力、峰谷负荷及相关负荷等,争取获得较好的预测结果。 1.2.灰色数学理论 灰色系统理论是中国学者邓聚龙教授1982年3月在国际上首先提出来的,在国际期刊《SYSTEMS AND CONTROL LETTER》刊物上发表,题为“Control Problems of Grey Systems”,引起了国际上的充分重视。 灰色数学理论是把负荷序列看作一真实的系统输出,它是众多影响因子的综合作用结果。这些众多因子的未知性和不确定性,成为系统的灰色特性。灰色系统理论把负荷序列通过生成变换,使其变化为有规律的生成数列再建模,用于负荷预测。 灰色系统理论的形成是有过程的。早年邓教授从事控制理论和模糊系统的研究,取得了许多成果。后来,他接受了全国粮食预测的课题,为了搞好预测工作,他研究了概率统计追求大样本量,必须先知道分布规律、发展趋势,而时间序列法只致力于数据的拟合,不注重规律的发展。邓教授希望在可利用数据不多的情况下,找到了较长时期起

matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案【篇一:matlab程序设计与应用(第二版)实验答案】 %实验一 matlab运算基础 %第1题 %(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t=0t1)+(t.^2-1).*(t=1t2)+(t.^2-2*t+1).*(t=2t3) %第2题 a=[12 34 -4;34 7 87;3 65 7]; b=[1 3 -1;2 0 3;3 -2 7]; a+6*b a-b+eye(size(a)) a*b a.*b a^3 a.^3 a/b b\a [a,b] [a([1,3],:);b^2] %第3题 a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] b=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] c=a*b f=size(c) d=c(f(1)-2:f(1),f(2)-1:f(2)) whos %第4题 %(1):

a=100:999; b=rem(a,21); c=length(find(b==0)) %(2): a=lsdhksdlkklsdkl; k=find(a=aa=z); a(k)=[] %实验二 matlab矩阵分析与处理 %第1题 e=eye(3); r=rand(3,2); o=zeros(2,3); s=diag([2,3]); a=[e,r;o,s]; a^2 b=[e,(r+r*s);o,s^2] %第2题 h=hilb(5) p=pascal(5) hh=det(h) hp=det(p) th=cond(h) tp=cond(p) %第3题 a=fix(10*rand(5)) h=det(a) trace=trace(a) rank=rank(a) norm=norm(a) %第4题 a=[-29,6,18;20,5,12;-8,8,5] [v,d]=eig(a) %数学意义略 %第5题方法一 %(1): a=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52]; x=inv(a)*b %(2):

MATLAB仿真技术与应用

例2-1 已知一个系统的微分方程为: ???????-==1221 5x u dt dx x dt dx 其中,状态变量初始条件0)0()0(21==x x ,输入u 为阶跃函数,要求利用SIMULINK 对系统建立仿真模型,并绘制时域响应曲线。 在利用SIMULINK 创建模型之前,先把微分方程进行拉普拉斯变换,得到每个微分方程的传递函数,即用传递函数的形式表示系统。 x1 x2 Step Scope 1s Integrator1 1 s Integrator 5Gain 连接信号之后的系统模型图 exam2_1 系统时域响应曲线

例7-9 一个控制系统由5个子系统组成,组成结构如下图 G 1(s) G 2(s) G 3(s)G 4(s) H(s) R(s) Y(s) 各子系统的传递函数分别为: 6 15215)(2 21++++=s s s s s G ,)20)(2() 6(4)(2+++=s s s s G ,1010)(3+=s s G ,631)(24+++=s s s s G ,1.0)(=s H 试在MATLAB 中分别用仿真模块建模和仿真命令编程两种方法进行仿真,并绘制系统的阶跃响应曲线图。 首先在Simulink 环境下将所需要的仿真模块连接起来,并将各模块的参数设置好。 s+1 s +3s+62Transfer Fcn3 4s+24s +22s+402Transfer Fcn2 10s+10Transfer Fcn1 s+52s +15s+62Transfer Fcn Step Scope 0.1Add 系统的仿真模型图 exam7_9

MATLAB基础及应用论文

题目 : MATLAB 语言多项式计算的分析与概述 摘要 :数值计算在科学研究与工程应用中有着十分广泛的应用,MATLAB 向我们提供 了标准的多项式的常用函数,包括求根、相乘、相除等。这些功能在进行现代数字信号处理与分析时非常有用。本文主要通过示例的形式分析与概述MATLAB 多项式计算的基本内容。 关键词 : 多项式 ;运算 ; 函数 ; 拟合 ; MATLAB 。 一、 引言 : MATLAB 是由MATH WORKS 公司推出的一种面向科学与工程的计算软件。 如今MATLAB 语言发展速度非常快,涉及十分广阔,本文主要讨论MATLAB 多项式的计 算,可谓MATLAB 的冰山一角。读者若要了解MATLAB 语言的更多知识还应多读多看他人著作。 二、 多项式计算 : 1,多项式的创建方法 : 在MATLAB 里:多项式由一个行向量表示,它的系数是按降序排列。 例如: 由1×N 的向量 表示 多项式,如用poly2sym()可以查看这个多项式。 (1)直接输入法 在MATLAB 命令窗口中直接输入多项式的系数矢量,然后利用转换函数poly2sym 将多项式由系数矢量形式转换为符号新式。 (2)指令P=poly(AR)法 若AR 是方阵,多项式P 是该方阵的特征多项式 若AR=[a 1, a 2,…,a n-1,a n ],则AR 的元素认为是多项式P 的根 如果A 为二维矩阵, poly(A)给出A 的特征多项式。如果A 为一维矩阵, poly(A)表示由A 的元素为多项式的根所确定的多项式。 【例1】产生多项式的方法。 clear %方法一(由多项式的系数确定的多项式) p=[1 -2 3]%直接给出多项式p poly2sym(p)%给出p 多项式的表达式 %方法二(由矩阵所确定的多项式) a=[1 2;-2 4] ] ..[210n a a a a p =n n n n n a x a x a x a P ++++=-- (22110)

MATLAB基础及其应用教程周开利邓春晖课后答案

第三章习题及参考答案 解答: >> p=[1 -1 -1]; >> roots(p) ans = -0.6180 1.6180 解答: 取n=5,m=61 >> x=linspace(0,2*pi,5); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on

分段线性和三次样条插值方法与精确值之差取n=11,m=61 >> x=linspace(0,2*pi,11); y=sin(x); >> xi=linspace(0,2*pi,61); >> y0=sin(xi); >> y1=interp1(x,y,xi); >> y2=interp1(x,y,xi,'spline'); >> plot(xi,y0,'o',xi,y1,xi,y2,'-.'); >> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on 分段线性和三次样条插值方法与精确值之差

解答: >> x=[0,300,600,1000,1500,2000]; >> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000; >> y0=1.0332*exp(-(xi+500)/7756); >> y1=interp1(x,y,xi,'spline'); >> p3=polyfit(x,y,3); >> y3=polyval(p3,xi); >> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.'); >> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on 插值和拟合方法相比较,都合理,误差也相近。 解答: 梯形法积分 >> x=-3:0.01:3;

MATLAB汽车仿真技术复习答案

汽车仿真技术复习题 一、术语解释: 1.计算机仿真:是利用计算机对一个实际系统的结构和行为进行动态演示,以评价或预测该系统的行为效果。是解决复杂问题的一条有效途径。 2. 矩阵的秩:矩阵线性无关的行数与列数称为矩阵的秩。 3.传递函数: 在线性定常系统中,当初始条件为零时,系统输出量的拉普拉斯变换与输入量的拉普拉斯变换之比。 4.伯德图:幅频特性曲线图和相频特性曲线图两张图合起来称为伯德图。 5.根轨迹法: 用作图的方法表示特征方程的根与系统某一参数的全部数值关系,当这一参数取特定值时,对应的特征根可在上述关系图中找到。这种方法叫根轨迹法 二、填空题 1.58.135 .0+=-e a =( 4.29 ); 程序为: >> format bank; >> a= exp(-0.5)+sqrt(13.58) a = 4.29 2.建立M 文件求取表达式?2009998321=++++++Λ的值。 sum=0; for i=1:1:200 sum=sum+i; end 在命令平台上键入sum 后回车(键入Enter 键),记录计算结果。 3. 方程的求解:0312512.5657.1069.3212345 =-+-+-x x x x x , >> d=[1 -21 3.69 -10.57 56.12 -3125]; >> roots(d) ans = 20.8577 2.4747 + 2.6023i 2.4747 - 2.6023i -2.4035 + 2.4168i -2.4035 - 2.4168i 4.一圆柱形金属构件,直径为20cm,长为110cm,质量为362kg,求此金属的密度(3 g/cm )。试补充划线部分的程序。 >> d=20; >> L=110; >> v=pi*(d/2)*(d/2)*L; >> m=362000; >> rou=m/v

MATLAB仿真技术与应用

例2-1 已知一个系统的微分方程为: ? ??????-==1221 5x u dt dx x dt dx 其中,状态变量初始条件0)0()0(21==x x ,输入u 为阶跃函数,要求利用SIMULINK 对系统建立仿真模型,并绘制时域响应曲线。 在利用SIMULINK 创建模型之前,先把微分方程进行拉普拉斯变换,得到每个微分方程的传递函数,即用传递函数的形式表示系统。 x1 x2 Step Scope 1s Integrator1 1 s Integrator 5Gain 连接信号之后的系统模型图 exam2_1 系统时域响应曲线

例7-9 一个控制系统由5个子系统组成,组成结构如下图 G 1(s) G 2(s) G 3(s)G 4(s) H(s) R(s) Y(s) 各子系统的传递函数分别为: 6 15215)(2 21++++=s s s s s G ,)20)(2() 6(4)(2+++=s s s s G ,1010)(3+=s s G ,631)(24+++=s s s s G ,1.0)(=s H 试在MATLAB 中分别用仿真模块建模和仿真命令编程两种方法进行仿真,并绘制系统的阶跃响应曲线图。 首先在Simulink 环境下将所需要的仿真模块连接起来,并将各模块的参数设置好。 s+1 s +3s+62Transfer Fcn3 4s+24s +22s+402Transfer Fcn2 10s+10Transfer Fcn1 s+52s +15s+62Transfer Fcn Step Scope 0.1Add 系统的仿真模型图 exam7_9

matlab基础与应用教程答案

8-1建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键之后显示出Left Button Pressed 字样。 本体程序: clc; hf=figure('color','r','windowbuttondownfcn','axis off;text(0.1,0.5,''Left Button Pressed'',''fontsize'',30)') 运行结果: hf = 1 8-3利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。 (1)2)cos(2.0+=-x e y x clc; x=0:5*pi; y=exp(-0.2*x).*cos(x)+2; h=plot(x,y); set(h,'Color',[1,0,0],'LineStyle',':','LineWidth',2);

(2)?????==325t y t x 程序: t=0:2:100; x=t.*t; y=5*t.^3; hf=plot(x,y); set(hf,'color','b','linestyle',':','marker','p','linewidth',0.3);

8-4利用图形对象绘制下列三维图形,要求与上题相同。 (1)?? ???===t z t y t x sin cos 程序: t=0:0.1:2*pi; x=cos(t); y=sin(t); z=t; hf=plot3(x,y,z); 运行结果:

8-5以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线。clc; x=-2*pi:0.01:2*pi; y1=sin(x); y2=cos(x); axes('Position',[0.1,0.6,0.2,0.2]) plot(x,y1); ht=get(gca,'Title');set(ht,'Color','r');title('y=sin(x)') hc=get(gca,'Children'),set(hc,'Color','b','LineWidth',1.5) axes('Position',[0.6,0.6,0.2,0.2]) plot(x,y2,'r'); ht=get(gca,'Title');set(ht,'Color','r');title('y=cos(x)') axes('Position',[0.1,0.1,0.2,0.2]) fplot('tan(x)',[-1.5,1.5]); ht=get(gca,'Title');set(ht,'Color','r');title('y=tan(x)') axes('Position',[0.6,0.1,0.2,0.2]) fplot('cot(x)',[0,1,3]); ht=get(gca,'Title');set(ht,'Color','r');title('y=cot(x)')

MATLAB程序设计与应用(第二版)

阅阅读读时时::请请选选择择““视视图图||文文档档结结构构图图””,,弹弹出出文文档档中中的的标标题题链链接接。。数学软件 MATLAB 程序设计与应用

第1章MATLAB系统环境 1.1 MATLAB概貌 1.2 MATLAB环境的准备 1.3 MATLAB操作界面 1.4 MATLAB帮助系统 自上世纪80年代以来,出现了科学计算语言,亦称数学软件。 MATLAB Mathematica Mathcad Maple LINDO LINGO 1.1 MATLAB概貌p3 MATLAB 是MATrix LABoratory(矩阵实验室)的缩写。 1984年由Math Works 公司推出,现已成为国际公认的优秀的工程应用开发环境,是影响最大,流行最广的科学计算语言。 1.1.1 MATLAB的发展

1. 从MATLAB 4.2c开始,每个版本增加了一个建造编号; 2. 例如MATLAB7.6的建造编号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的; 3. 对于建造编号,正规化以后,每年出两个版本。一般来说。a是测试版,b是正式版。a是前半 年出,b是后半年出。 教材采用MATLAB7.0(R14,2004) 实验室采用MATLAB 7.8(R2009a,2009.3,汉化) 1.1.2 MATLAB的主要功能p4 ◆数值计算和符号计算功能 ◆绘图功能 ◆语言体系 ◆MATLAB工具箱 (1) 数值计算和符号计算功能 MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。 MATLAB先后和著名的符号计算语言Maple与MuPAD(从MATLAB 2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。 (2) 绘图功能 可以绘制二维和三维图形。 MATLAB提供了两个层次的绘图操作: ●对图形句柄进行的低层绘图操作; ●建立在低层绘图操作之上的高层绘图操作。 (3) 语言体系 MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。 MATLAB是解释性语言,不能脱离MATLAB环境而独立运行。 (4) MATLAB工具箱 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。 基本部分 构成MATLAB的核心内容,也是使用和构造工具箱的基础。 功能性工具箱 主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。 学科性工具箱 Control System Toolbox 控制系统工具箱 Signal Processing Toolbox 信号处理工具箱 Neural Network Toolbox 神经网络工具箱 Optimization Toolbox 最优化工具箱 Financial Toolbox 金融工具箱 Statistics Toolbox 统计学工具箱 开始→工具箱 MATLAB具备很强的开放性 除内部函数外,所有MATLAB基本文件和各工具箱文件都是可读、可改的源文件,用户可通过对源文件的修改或加入自己编写的文件去构成新的专用工具箱。

相关主题