当前位置:文档之家› 基于MATLAB的智能控制系统的介绍与设计实例10104045

基于MATLAB的智能控制系统的介绍与设计实例10104045

基于MATLAB的智能控制系统的介绍与设计实例10104045
基于MATLAB的智能控制系统的介绍与设计实例10104045

武汉科技大学智能控制系统

学院:信息科学与工程学院

专业:控制理论与控制工程

学号:10104045

姓名:李倩

基于MATLAB的智能控制系统的介绍与设计实例

摘要

现代控制系统,规模越来越大,系统越来越复杂,用传统的控制理论方法己不能满控制的要求。智能控制是在经典控制理论和现代控制理论的基础上发展起来的,是控制理论、人工智能和计算机科学相结合的产物。MATLAB是现今流行的一种高性能数值计算和图形显示的科学和工程计算软件。本文首先介绍了智能控制的一些基本理论知识,在这些理论知识的基础之上通过列举倒立摆控制的具体实例,结合matlab对智能控制技术进行了深入的研究。

第一章引言

自动控制就是在没有人直接参与的条件下,利用控制器使被控对象(如机器、设备和生产过程)的某些物理量能自动地按照预定的规律变化。它是介于许多学科之间的综合应用学科,物理学、数学、力学、电子学、生物学等是该学科的重要基础。自动控制系统的实例最早出现于美国,用于工厂的生产过程控制。美国数学家维纳在20世纪40年代创立了“控制论”。伴随着计算机出现,自动控制系统的研究和使用获得了很快的发展。在控制技术发展的过程中,待求解的控制问题变得越来越复杂,控制品质要求越来越高。这就要求必须分析和设计相应越来越复杂的控制系统。智能控制系统(ICS)是复杂性急剧增加了的控制系统。它是由控制问题的复杂性急剧增加而带来的结果,其采用了当今其他学科的一些先进研究成果,其根本目的在于求解复杂的控制问题。近年来,ICS引起了人们广泛的兴趣,它体现了众多学科前沿研究的高度交叉和综合。

作为一个复杂的智能计算机控制系统,在其建立投入使用前,必要首先进行仿真实验和分析。计算机仿真(Compeer Simulation)又称计算机模拟(Computer Analogy)或计算机实验。所谓计算机仿真就是建立系统模型的仿真模型进而在计算机上对该仿真模型进行模拟实验(仿真实验)研究的过程。计算机仿真方法即以计算机仿真为手段,通过仿

真模型模拟实际系统的运动来认识其规律的一种研究方法。计算机仿真方法有时也称计算机仿真技术,这二者有时又简称计算机仿真。当今,针对不同应用领域,不同的软件公司开发了不同的设计仿真软件,如在电子电路设计中应用的PSPICE软件,用于电力系统仿真的SABER软件等很多,而作为通用的单机运行的工程计算仿真软件,当首推MATLAB。MATLAB提供了一个高性能的数值计算和图形显示的科学和工程计算软件环境。这种易于使用的MATLAB环境,是由数值分析、矩阵计算、信号处理和图形绘制等组成。在这种环境下,问题的解答的表达形式几乎和它们的数学表达式完全一样,而不像传统的编程那样繁杂。MATLAB是一种交互系统,它的基本数据单元是无须指定维数的矩阵,所以在解决数值计算问题时,使用MATLAB要比使用诸如BASIC、FORTRAN、和C等语言简便得多,大大提高了编程效率。

第二章智能控制系统的理论知识

1.智能控制系统的基本功能特点

①容错性

对复杂系统(如非线性、快时变、复杂多变量和环境扰动等)能进行有效的全局控制,并具有较强的容错能力。

⑵多模态性

定性决策和定量控制相结合的多模态组合控制。

③全局性

从系统的功能和整体优化的角度来分析和综合系统。

④混合模型和混合计算

对象是以知识表示的非数学广义模型和以数学模型表示的混合控制过程,人的智能在控制中起着协调作用,系统在信息处理上既有数学运算,又有逻辑和知识推理。

⑤学习和联想记忆能力

对一个过程或未知环境所提供的信息,系统具有进行识别记忆、学习,并利用积累的经验进一步改善系统的性能和能力。

⑥动态自适应性

对外界环境变化及不确定性的出现,系统具有修正或重构自身结构和参数的能力。

⑦组织协调能力

对于复杂任务和分散的传感信息,系统具有自组织和协调能力,体现出系统的主动性和灵活性。尽管最初人们认为智能控制是自动控制理论与人工智能与运筹学的结合,但事实上,智能控制是一门仍在不断丰富和发展中的具有众多学科集成特点的科学与技术。它不仅包含了AC、AI、OR、系统理论的内容,而且还从生物学、生理学、心理学、协同学及人类知识理论等学科中吸取了丰富的营养。目前,在世界范周内,智能控制和智能自动化科学与技术正在成为自动化领域中最兴旺和发展最迅速的一个分支学科,并被许多发达国家确认为面向21世纪和提高国家竞争力的核心技术。

智能控制系统(Imelligent Control System):智能控制系统是具有某种程度自治性的控制系统。

智能控制方法(Intelligent Control Methodology):利用旨在模拟人、动物或生物系统功能的技术或过程来为动态系统构造或实现控制、以达到预定要求的控制方法的集合。

2.智能控制系统的特征

①处理各种不确定性、定性信息和数据结构的能力。

②处理非结构化信息和数据的能力。

③对具有高度抽象性的离散符号指令作出响应的能力。

④辩识主控系统结构或构成、变化的能力。

⑤处理和利用各种不同性质的知识的能力。

⑥根据主控系统或环境变化,对自身参数或结构进行修正或重构的能力。

⑦在运行过程中学习和获取关于对象和环境新知识并利用新知识改进控制行为的能力。

⑧基于对象行为预测的控制的多目标性。

任何具备上述一种或多种能力的控制系统均被认为是智能控制系统。从这个意义上讲,经典的反馈控制、变结构控制、自校正控制及自适应控制均被认为属于智能控制的范畴,它们与通常所说的智能控制的区别在于它们仅具有较低层次的智能。而智能控制理论及应用研究的目的就是利用包括传统控制及系统理论在内的已有各种理论及技术来构造在某种程度上具备上述特征的控制系统,并最终实现具有完全自治力的系统。

3.智能控制的主要分类

①模糊逻辑控制

传统的控制问题一般是基于系统的数学模型来设计控制器,而大多数工业被控对象

是具有时变、非线性等特性的复杂系统,对这样的系统进行控制,不能仅仅建立在平衡点附近的局部线性模型,需要加入一些与工业状况有关的人的控制经验。这种经验通常是定性的或定量的,模糊推理控制正是这种控制经验的表示方法。这种方法的优点是不需要被控过程的数学模型,因而可省去传统控制方法的建模过程,但却过多地依赖控制经验。此外由于没有被控对象的模型,在投入运行之前就很难进行稳定性、鲁棒性等系统分析。近年来,一些研究者们在模糊控制模式中引入模糊模型的概念,出现了模糊模型。模糊模型易于表达结构性知识,成为模糊控制系统研究的关键问题。最近,模糊控制理论成功地应用于飞行器的优化跟踪设计和产品加工过程。

②神经网络控制

神经网络控制NNC是研究和利用人脑的菜些结构机理以及人的知识和经验对系统的控制。一般地,神经网络控制系统的智能性、鲁棒性均较好,它能处理高维、非线性、强耦合和不定性的复杂工业生产过程的控制问题。显示了神经网络在解决高度非线性和严重不确定性系统的控制方面具有很大潜力。虽然神经网络在利用系统定量数据方面有较强的学习能力。但它将系统控制问题看成“黑箱”的映射问题,缺乏明确的物理意义,不易把控制经验的定性知识融入控制过程中。近来,在神经网络自适应控制、人工神经网络阀函数的数字设计、新的混合神经网络模型等方面都有一些重要进展,如应用于机器人操作过程神经控制、核反应堆的载重操作过程的神经控制。近年来,神经网络、模糊推理、各种特殊信号的有机结合,还导致了一些新的综合神经网络的出现。例如,小波神经网络、模糊神经网络和混沌神经网络的出现,为智能控制领域开辟了新的研究方向。

③实时专家系统

实时专家系统是基于广义模型化概念和系统仿真技术与人工智能技术的深度结合,构造出一种带模型库的控制系统。这种新型的专家系统能在工业生产系统的动态过程中,随时监视外界的环境,自动采集生产过程变量,并对生产过程实时在线的修改和补充。传统的专家系统是以交互方式操作,从外界获取的信息都是一次性和静止的,而信息的采集是主动的。实际工业生产系统中的多数信息都是连续时变的,且信息是大量的。因此,采用一般模糊辨识方法得到的模型在精度上往往不是十分理想。为适应现代工业的要求,实时专家系统应用模糊逻辑控制和神经元网络理论,将线模和模糊型结合在一起,融进专家系统,通过专家系统的启发性、透明性和灵活性以及线性模型良好的跟踪能力,对模糊模型进行动态的修改和补充,这样不再需要事先建立过程的数学模型。实时专家系统主要应用在咨询;自动化装置的设计、组态;诊断或诊断支持;复杂系统的

调节等领域。其主要特点是:具有更高的智能判断能力和推理速度;同时,对外界的预测能力和自适应能力也很强。

目前关于智能控制的研究和应用沿着几个主要的分支发展,主要为:自适应控制(fadaptivo Control)、模糊控制(Fuzzy Control)、神经网络控制(Neural Net-based Control)、基于知识的控制(Knowledge Based Control)、复合智能控制(Hybrid Intelligent Control)、学习控制(1earning Control)和基于进化机制的控制(Evolutionary Mechanism Based Control)。这些有的已在现代工业生产过程的智能控制与智能自动化投入实际应用。计算机仿真方法在各种工程领域和非工程领域中有许多成功应用的范例,其成效十分显著,影响也很大。在宇航工业中,有著名的阿波罗登月仿真系统。该系统包括混合计算机、运动仿真器、月球仿真器、驾驶舱、视景系统等,可实现在计算机上预先对登月计划进行分析、设计与检验,同时还可对宇航员进行仿真操作训练,从而大大降低了实际登月的风险系数。

第三章MATLAB平台及对应工具箱

MATALAB是集科学计算、结果可视化和编程于一身,能够方便地进行科学计算和大量工程计算的数学软件。目前,它已成为世界上应用最为广泛的工程计算软件之一。MATALAB的最初版本是由Cleve Moler博士用FORTRAN语言开发的矩阵分析软件,MATALAB是“矩阵实验室”(Matrix Laboratory)的缩写,它是一种以矩阵计算为基础的交互式程序语言,最早用来作为LINPACK(线性代数软件包)和EISPACK(基于特征值计算的软件包)矩阵软件包的接口。在80年代初期,由Cleve Moler和John Little采用C 改写了MATALAB的内核。不久,他们成立了MathWorks软件开发公司,并于1984年将MATALAB正式推向市场。1992年初推出了应用于Windows操作系统的MATALAB4.X版本,1998年推出5.2版本,1999年推出MATLAB5.3版本,2000年为MATLAB6.0版本,现在最新的为MATLAB6.5版本。

1.MATLAB的主要特点

①MATLAB的基本单位为矩阵,其表达式与数学、工程计算中常用的形式类似。并且矩阵的行和列无需定义,可随时添加和修改;

②MATLAB语言以解释方式工作,对每条语句进行解释后即运行,键入算式即得结果,无需编译,对错误可立即作出反映,大大减少了编程和调试的工作;

③MATLAB语言规则与人们长期以来使用的在演算纸上进行演算的书写习惯十分相似,易学易读适于交流;

④具有强大的作图和数据可视化功能。可以把数据以多种形式加以表现,非常简单、直观、方便;

⑤具有极强的可扩展性;

⑥具有非常友好的人机界面。

2.MATLAB软件包括MATLAB主程序和许多日益增多的工具箱,工具箱实际就是用MATLAB 基本语句编写的各种子程序集,用于解决某一方面的专门问题或实现某一类的新算法。MATLAB 还提供了与其他应用语言的接口,以实现数据的共享和传递。

3.MATLAB的基本组成.MATLAB主要由MATLAB主程序、SIMULINK动态系统仿真和MATLAB工具箱三大部分组成。

其中MATLAB主程序包括MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五个部分;SIMULINK是用于动态系统仿真的交互式系统,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统,目前的SIMULINK可以处理线性、非线性、连续、离散、多变量及多系统;工具箱实际就是用MATLAB的基本语句编写的各种子程序集和函数库,用于解决某一方面的特定问题或实现某一类的新算法,它是开放性的,可以应用也可以根据自己的需要进行扩展。MATLAB工具箱大体可分为功能性的工具箱和学科性的工具箱两类。功能性的工具箱主要用于扩展MATLAB的符号计算功能、图形建模功能、文字处理功能和与硬件的实时交互过程,如符号计算工具箱等;学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。

第四章Matlab程序设计实例——倒立摆控制

倒立摆系统是一个典型的非线性、强耦合、多变量和不稳定系统,作为控制系统的被控对象,许多抽象的控制概念都可以通过倒立摆直接的表现出来。对系统建立数学模型是系统分析、设计的前提,而一个准确又简练的数学模型将大大简化后期的工作。为了简化系统的分析,在实际建立模型的过程中,要忽略空气的流动阻力,以及各个次要的摩擦阻力。这样,可以将倒立摆系统抽象成小车和匀质刚性杆组成,如图1所示。

图1 倒立摆系统

假定倒立摆系统的参数如下。

摆杆的质量:m=0.1g

摆杆的长度:2l=1m

小车的质量:M=1kg

重力加速度:g=10/s2

摆杆惯量:I=0.003kg/m2(摆杆的质量在摆杆的中心)

设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量 %≤10%,调节时间ts≤4s,使摆返回至垂直位置,并使小车返回至参考位置(x=0)。要求:

①建立倒立摆系统的数学模型;

②分析系统的性能指标——能控性、能观性、稳定性;

③设计状态反馈阵,使闭环极点能够达到期望的极点,这里所说的期望的极点确定是把系统设计成具有两个主导极点,两个非主导极点,这样就可以用二阶系统的分析方法进行参数的确定;

④用MATLAB进行程序设计,得到设计后系统的脉冲响应、阶跃响应,绘出相应状态变量的时间响应图。

⑤根据自身的课题情况,任意选择一个被控对象,按照上题所示步骤进行分析和设计,并给出仿真程序及其执行结果。

控制系统设计步骤:

1.系统建模

图2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。Φ是摆杆与垂直向上方向的夹角;θ是摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)。

注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图所示,图示方向为矢量正方向。

N I θ

P F bx θ

Mg N

图2 小车及摆杆受力分析

分析小车水平方向所受的合力,可以得到以下方程:

N x b F x

M --= 由摆杆水平方向的受力进行分析可以得到下面等式:

)sin (22

θl x dt

d m N += 即:

θθθθsin cos 2 ml ml x

m N -+= 把这个等式代入式(3-1)中,就得到系统的第一个运动方程:

F ml ml x b x

m M =-+++θθθθsin cos )(2 为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:

)cos (22

θl dt

d m m g P =- θθθθ

cos sin 2 ml ml mg P --=- 力矩平衡方程如下:

θ

θθ I Nl Pl =--cos sin 注意:此方程中力矩的方向,由于θφθφφπθsin sin ,cos cos ,-=-=+=,故等式前面有负号。

合并这两个方程,约去P 和N ,得到第二个运动方程:

θθθcos sin )(2x

ml mgl ml I -=++ 设φπθ+=(φ是摆杆与垂直向上方向之间的夹角),假设φ与1(单位是弧度)相M

比很小,即1<<φ,则可以进行近似处理:0)(

,sin ,1cos 2=-=-=dt

d θφθθ。用u 来代表被控对象的输入力F ,线性化后两个运动方程如下: 2(+)()I ml mgl mlx M m x bx ml u ????-=?++-=?

对式(3-9)进行拉普拉斯变换,得到

?????=Φ-++=Φ-Φ+)

()()()()()()()()(22222s U s s m l s s bX s s X m M s s m lX s m gl s s m l I 注意:推导传递函数时假设初始条件为0。

由于输出为角度φ,求解方程组的第一个方程,可以得到:

)(])([)(22s s

g ml ml I s X Φ-+= 或 mgl

s ml I mls s X s -+=Φ222

)()()( 如果令x v

=,则有: mgl

s m l I m l s V s -+=Φ22)()()( 把上式代入方程组的第二个方程,得到:

)()()()()()(2222s U s s ml s s s g ml ml I b s g ml

ml I m M =Φ-Φ??????+++??????-++ 整理后得到传递函数:

s q

bm gl s q m gl m M s q m l I b s s q m l s U s -+-++=Φ23242)()()()( 其中 []

22)())((ml ml I m M q -++=

设系统状态空间方程为: Du

CX y Bu AX X +=+= 方程组 对φ

,x 解代数方程,得到解如下:

?????

??????+++++++++-==++++++++++-==u Mm l m M I m l Mm l m M I m M m gl x Mm l m M I m lb u Mm l m M I m l I Mm l m M I gl m x Mm l m M I b m l I x x x 2222222222)()()()()()()()()(φφφ

φφ 整理后得到系统状态空间方程:

u Mm l m M I m l Mm l m M I m l I x x Mm l m M I m M m gl Mm l m M I m lb Mm l m M I gl m Mm l m M I b m l I x x ???????

?????????++++++????????????????????????????+++++-+++++-=??????????????2222222222)(0)(00)()()(010000)()()(00010φφφφ u x x x y ??????+?????

?????????????=??????=0001000001φφφ 代入倒立摆系统的参数可得:

010

000010100010001101x x x x u ????????????????????????????'=+???????????????????????? u x x x y '??????+?????

?????????????=??????=0001000001φφφ 2.系统分析

①判断系统能控性和能观性

在MATLAB 中,可以利用ctrb()和obsv()函数直接求出能控性和能观性矩阵

A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0];

B=[0;1;0;1];

C=[1 0 0 0;0 0 1 0];

D=[0;0];

Uc=ctrb(A,B);rc=rank(Uc);

n=size(A);

if rc==n

disp('system is controlled.')

elseif rc

disp('system is uncontrolled.')

end

V o=obsv(A,C);

ro=rank(V o);

if ro==n

disp('system is observable.')

elseif ro~=n

disp('system is no observable.')

End

运行情况如下:

②系统稳定性

A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0];

B=[0;1;0;1];

C=[1 0 0 0;0 0 1 0];

D=[0;0];

P=poly(A),v=roots(P)

运行结果如下:

特征值为0(二重),3.3166,-3.3166,显然,其中一个极点在右半平面,该系统不稳

定。

3.系统设计:极点配置与控制器设计

极点配置的方法就是通过一个适当的状态反馈增益矩阵的状态反馈方法,将闭环系统的极点配置到任意期望的位置。

=Ax(t)+Bu(t),其中x是状态变量(n维),u是控制信号,这里选取控制信号为u=-Kx,=(A-BK)x(t)该方程的解为x(t)、、x(0),系统的稳态响应和瞬态响应特性由矩阵A-BK的特征决定。K=-(K1 K2 K3 K4)x,闭环系统的方程为

=Ax+Bf=(A-BK)x,选取所希望的极点值为p1、p2、p3、p4。设计状态反馈阵时,要使系统的极点设计成具有两个主导极点,两个非主导极点,这样就可以用二阶系统的分析方法进行参数的确定。

最大超调量小于等于10%,调节时间为4S,运用超调量的计算公式,,其中z为阻尼系数,有该公式可求得,阻尼系数z=0.59,小于1,是欠阻尼。

(-s为极点实部),可以求得Wn=1.27,则极点公式为Wn,得到两个共轭极点为:p1,2=-0.75±j1.025,配置非主导极点p3=-15、p4=-15。

在MATLAB的控制系统工具箱中提供了单变量系统极点配置acker(),其格式为

K=acker(A,B,p)

程序如下:

A=[0 1 0 0;0 0 -2 0;0 0 0 1;0 0 22 0];

B=[0;1;0;-1];

C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];

D=0;

rc=rank(ctrb(A,B));

p=[-0.75+1.025j,-0.75-1.025j,-15,-15];

K=acker(A,B,p)

运行结果如下:

4.仿真结果

该二阶系统的阶跃响应为下图所示:

脉冲响应:

第五章结束语

关于智能控制的研究,是自动控制领域的热点之一,仍然存在着许多争论,对于实际应用,大都停留在仿真或实验室阶段。本文是在学习MATLAB软件的基础上,通过对智能控制理论知识的学习,就智能控制研究中的一个经典对象——小车倒立摆控制问题,以MATLAB为平台,通过建立对象模型,通过系统分析,进行了matlab仿真。由仿真结果可见,由这种控制方法可以实现小车倒立摆的控制,并得到了较好的控制效果。MATLAB软件是功能强大的计算和仿真软件,它不仅提供了开放的编程环境,用户可在其基础上进行扩展编程,还提供了和其他程序的接口,方便用户开发实用的子程序,直接

在实际中使用。但是在解决实际应用问题中还存在许多问题,希望能在以后的学习中不断地进步。

附录

1.参考文献

[1]易继凯,侯媛摈.智能控制技术.北京工业大学出版社,2001,6

[2]师黎,陈铁军等.智能控制实验与综合设计指导.清华大学出版社,2008,7

[3]韩力群.人工神经网络理论设计及应用.化工工业出版社,2007,11

[4]李国勇.智能控制及其matlab实现.电子工业出版社,2006,12

[5]罗军等.智能控制工程及其应用实例.化学工业出版社,2005,3

[6]邹伯敏.自动控制理论.机械工业出版社,2001,2

[7]顾毅.智能控制发展综述.信息技术出版社,2000,6

[8]左力,熊有伦.智能控制是自动控制发展的高级阶段.中国机械工程出版社,1996,6

[9]冯明琴.自动控制的发展与现状.攀枝花大学学报,2000,3

[10]杨嘉墀.自动控制向智能控制发展.中国科技论坛,1995,2

[11]邹伯敏.自动控制理论.机械工业出版社,2001,7

[12]郑南宁.智能控制发展过程综述.工业控制出版社,1999,3

[13]贾新春,袁泽剑.控制科学与技术的发展及其思考.自动化学报,2002,1

[14]许晓鸣,杨煜普.智能控制理论的新进展.世界科学报,1995,07

[15]黄苏南,邵惠鹤,张钟俊.智能控制的理论和方法控制理论与应用.工业出版社,1999,04

2.程序代码

①能控能观性判定:

A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0];

B=[0;1;0;1];

C=[1 0 0 0;0 0 1 0];

D=[0;0];

Uc=ctrb(A,B);rc=rank(Uc);

n=size(A);

if rc==n

disp('system is controlled.')

elseif rc

disp('system is uncontrolled.')

end

V o=obsv(A,C);

ro=rank(V o);

if ro==n

disp('system is observable.')

elseif ro~=n

disp('system is no observable.') End

②稳定性判定:

A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0]; B=[0;1;0;1];

C=[1 0 0 0;0 0 1 0];

D=[0;0];

P=poly(A),v=roots(P)

③极点配置与控制器设计:

A=[0 1 0 0;0 0 -2 0;0 0 0 1;0 0 22 0]; B=[0;1;0;-1];

C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; D=0;

rc=rank(ctrb(A,B));

p=[-0.75+1.025j,-0.75-1.025j,-15,-15]; K=acker(A,B,p)

MATLAB课程设计报告

华东交通大学MATLAB程序设计报告书 课题名称:基于MATLAB的粒子群优化算法的实现 姓名: 学号:20160280800014 专业:控制科学与工程 2016年 11月 20日

基于MATLAB的粒子群优化算法的实现 一、课程选题目的 本次课程设计的课题为《基于MATLAB的粒子群优化算法的实现》,主要为学会运用MATLAB对实际算法编程,加深对粒子群优化算法的理解,并为今后熟练使用MA TLAB进行系统的分析仿真和设计奠定基础。数值计算分析可以帮助更深入地理解理论知识,并为将来使用MA TLAB进行各领域数值分析分析和实际应用打下基础。 此次课程主要是为了进一步熟悉对MATLAB软件的使用,以及学会利用MA TLAB对数值运算这种实际问题进行处理,将理论应用于实际,加深对它的理解。 二、粒子群优化算法原理 优化是科学研究、工程技术和经济管理等领域的重要研究工具。它所研究的问题是讨论在众多的方案中寻找最优方案。例如,工程设计中怎样选择设计参数,使设计方案既满足设计要求又能降低成本;资源分配中,怎样分配有限资源,使分配方案既能满足各方面的基本要求,又能获得好的经济效益。在人类活动的各个领域中,诸如此类,不胜枚举。优化这一技术,正是为这些问题的解决,提供理论基础和求解方法,它是一门应用广泛、实用性很强的科学。近十余年来,粒子群优化算法作为群体智能算法的一个重要分支得到了广泛深入的研究,在路径规划等许多领域都有应用。 2.1 粒子群优化算法的起源 粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的。 设想这样一个场景:一群鸟随机的分布在一个区域中,在这个区域里只有一块食物。所有的鸟都不知道食物在哪里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的方法就是追寻自己视野中目前离食物最近的鸟。如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作一个函数寻优的过程。鱼群和鸟群的社会行为一直引起科学家的兴趣。他们以特殊的方式移动、同步,不会相互碰撞,整体行为看上去非常优美。生物学家CargiReynolds提出了一个非常有影响的鸟群聚集模型。在他的模拟模型boids中,每一个个体遵循:避免与邻域个体相冲撞、匹配邻域个体的速度、试图飞向感知到的鸟群中心这三条规则形成简单的非集中控制算法驱动鸟群的聚集,在一系列模拟实验中突现出了非常接近现实鸟群聚集行为的现象。该结果显示了在空中回旋的鸟组成轮廓清晰的群体,以及遇到障碍物时鸟群的分裂和再度汇合过程。由此受到启发,经过简化提出了粒子群优化算法。 2.2粒子群优化算法的原理 在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。优化开始时先初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个极值就是整个种群目前找到的最优解。这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。第二个极值是粒子本身所找到的最优解,称为个体极值。这是因为粒子仅仅通过跟踪全局极值或者局部极值来更新位置,不可能总是获得较好的解。这样在优化过程中,粒子在追随全局极值或局部极值的同时追随个体极值则圆满的解决了这个问题。这就是粒子群优化

matlab中GUI设计

MATLAB的GUI 程序设计 Chapter 8: Design of MATLAB of GUI program GUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。 基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。 一. 控件对象及属性(Object and its attributes of controller)) 1. GUI控件对象类型(The mode of controller object) 控件对象是事件响应的图形界面对象。当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback). 控件对象及其功能:(表7—1) 2. 控件对象的描述(Description of controller object) MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。一种为静态控件,是一种不产生响应的控件,如文本框等。

每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。属性由两部分组成:属性名和属性值,它们必须是成对出现的。 (1)按钮(Push Buttons):执行某种预定的功能或操作; (2)开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容; (3)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项; (4)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项; (5)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作; (6)静态文本框(Static Texts):仅仅用于显示单行的说明文字; (7)滚动条(Slider):可输入指定范围的数量值;

MATLAB课设报告

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

matlab课程设计报告书

《计算机仿真及应用》课程设计报告书 学号:08057102,08057127 班级:自动化081 姓名陈婷,万嘉

目录 一、设计思想 二、设计步骤 三、调试过程 四、结果分析 五、心得体会 六、参考文献

选题一、 考虑如下图所示的电机拖动控制系统模型,该系统有双输入,给定输入)(t R 和负载输入)(t M 。 1、 编制MATLAB 程序推导出该系统的传递函数矩阵。 2、 若常系数增益为:C 1=Ka =Km =1,Kr =3,C2=0.8,Kb =1.5,时间常数T 1=5, T 2=0.5,绘制该系统的根轨迹、求出闭环零极点,分析系统的稳定性。若)(t R 和)(t M 分别为单位阶跃输入,绘制出该系统的阶跃响应图。(要求C 1,Ka ,Km ,Kr ,C2,Kb , T 1,T 2所有参数都是可调的) 一.设计思想 题目分析: 系统为双输入单输出系统,采用分开计算,再叠加。 要求参数均为可调,而matlb 中不能计算未赋值的函数,那么我们可以把参数设置为可输入变量,运行期间根据要求赋值。 设计思路: 使用append 命令连接系统框图。 选择‘参数=input('inputanumber:')’实现参数可调。 采用的方案: 将结构框图每条支路稍作简化,建立各条支路连接关系构造函数,运行得出相应的传递函数。 在得出传递函数的基础上,使用相应的指令求出系统闭环零极点、画出其根轨迹。 通过判断极点是否在左半平面来编程判断其系统是否稳定。 二.设计步骤 (1)将各模块的通路排序编号

(2)使用append命令实现各模块未连接的系统矩阵 (3)指定连接关系 (4)使用connect命令构造整个系统的模型 三.调试过程 出现问题分析及解决办法: 在调试过程出现很多平时不注意且不易寻找的问题,例如输入的逗号和分号在系统运行时不支持中文格式,这时需要将其全部换成英文格式,此类的程序错误需要细心。 在实现参数可调时初始是将其设为常量,再将其赋值进行系统运行,这样参数可调性差,后用‘参数=input('inputanumber:')’实现。 最后是在建立通路连接关系时需要细心。 四.结果分析 源代码: Syms C1 C2 Ka Kr Km Kb T1 T2 C1=input('inputanumber:') C2=input('inputanumber:') Ka=input('inputanumber:') Kr=input('inputanumber:') Km=input('inputanumber:') Kb=input('inputanumber:') T1=input('inputanumber:') T2=input('inputanumber:') G1=tf(C1,[0 1]); G2=tf(Ka*Kr,[0 1]); G3=tf(Km,[T1 1]); G4=tf(1,[T2 1]); G5=tf(1,[1 0]); G6=tf(-C2,1); G7=tf(-Kb,1); G8=tf(-1,1); Sys=append(G1,G2,G3,G4,G5,G6,G7,G8) Q=[1 0 0;2 1 6;3 2 7;4 3 8;5 4 0;6 5 0;7 4 0;8 0 0;]; INPUTS1=1; OUTPUTS=5; Ga=connect(Sys,Q,INPUTS1,OUTPUTS) INPUTS2=8; OUTPUTS=5; Gb=connect(Sys,Q,INPUTS2,OUTPUTS) rlocus(Ga)

通信工程学院matlab课程设计报告

南京工程学院 课程设计说明书(论文)题目模拟信号的数字化 课程名称Matlab通信仿真设计 院(系、部、中心)通信工程学院 专业电子信息工程(传感网) 班级 学生姓名X X X 学号 2 0 8 1 1 0 7 3 2 设计地点信息楼C 216 指导教师潘子宇

设计起止时间:2014年1月10日至2014年 1 月14日

目录 一、内容摘要 (1) 二、课程设计目的和要求 (2) 三、课程设计任务 (2) 四、课程设计软件介绍 (3) 五、课程设计原理 (4) 六、PCM编码及仿真参数设置 (9) 七、PCM解码及仿真参数设置 (11) 八、PCM串行传输模型及仿真参数设置 (13) 九、课程设计成品图 (14) 十、SCOPE端的最终波形图 (14) 十一、主要参考文献 (15)

十二、总结与体会 (15) 一、内容摘要 MATLAB软件是矩阵实验室的简称,是美国M a t h W or k s公司出品的商业数学软件, 可用于算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境, 广泛用于数字信号分析,系统识别,时序分析与建模, 神经网络、动态仿真等方面有着广泛的应用。主要包括MATLAB和Simulink两大部分。Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。 Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.

MATLAB程序设计及经典例题解析3

MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

基于matlab的AM调制仿真课程设计报告书

xx学院 课程设计报告 课程名称:通信原理 设计题目:基于matlab的AM调制仿真学生班级:13通信(1) 学生:xxxxxxx 指导教师:王小x 完成日期:2015-12-24 数学与计算机学院

课程设计项目研究报告 目录 第 1 章项目简介 (1) 1.1 项目名称 (1) 1.2 开发人员 (1) 1.3 指导教师 (1) 第 2 章项目研究意义 (1) 2.1 课程设计概述 (1) 2.2 研究意义 (2) 第 3 章采用的技术 (2) 3.1 课程设计的方案设计原理 (2) 第 4 章课程设计项目进度表 (4) 第 5 章课程设计任务分配表 (4) 第 6 章达到的效果 (4) 6.1 程序设计思想 (4) 6.2 程序最终实现结果 (5) 第 7 章源程序 (11) 7.1 当调制信号是单一频率时 (11) 7.2 当调制信号不是单一频率时 (13) 第 9 章设计心得 (15) 第 10 章参考文献 (16)

第 1 章项目简介 1.1 项目名称 基于matlab的AM调制仿真 1.2 开发人员 阮文添、清海 1.3 指导教师 王小文 第 2 章项目研究意义 2.1 课程设计概述 正弦载波幅度随调制信号而变化的调制,简称调幅(AM)。调幅的技术和设备比较简单,频谱较窄,但抗干扰性能差,广泛应用于长中短波广播、小型无线、电报等电子设备中。早期的无线电报机采用火花式放电器产生高频振荡。传号时火花式发报机发射高频振荡波,空号时发报机没有输出。这种电报信号的载波不是纯正弦波,它含有很多谐波分量,会对其他信号产生严重干扰。理想的模拟正弦波调幅是:载波幅度与调制信号瞬时值成线性关系。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境.MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境[1]。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

矩量法matlab程序设计实例

矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布

matlab课程设计报告书

课程设计 题目Matlab应用课程设计学院信息工程学院 专业电子信息工程 班级 姓名 指导教师桂林 2011 年12 月13 日

Matlab应用课程设计任务书 学生姓名: 专业班级: 指导教师: 桂林工作单位: 信息工程学院 题目:Matlab运算与应用设计2 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”、线性代 数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计时间:1.5周; 2.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设 计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单 颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:(1) 布置课程设计任务,查阅资料,确定方案三天; (2) 进行编程设计五天; (3) 完成课程设计报告书两天; 指导教师签名:年月日 系主任(或责任教师)签名:年月日

Matlab的gui界面设计实例练习

一个不错的Matlab的gui界面设计实例 %非常漂亮的日历, function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1;

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

基于Matlab的电力电子技术课程设计报告

《电力电子技术》 课程设计报告 题目:基于Matlab的电力电子技术 仿真分析 专业:电气工程及其自动化 班级:电气2班 学号:Z01114007 姓名:吴奇 指导教师:过希文 安徽大学电气工程与自动化学院 2015年 1 月7 日

中文题目基于Matlab的电力电子技术仿真分析一、设计目的 (1)加深理解《电力电子技术》课程的基本理论; (2)掌握电力电子电路的一般设计方法,具备初步的独立设计能力; (3)学习Matlab仿真软件及各模块参数的确定。 二、设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕: (1)根据设计题目要求的指标,通过查阅有关资料分析其工作原理,设计电路原理图; (2)利用MATLAB仿真软件绘制主电路结构模型图,设置相应的参数。 (3)用示波器模块观察和记录电源电压、控制信号、负载电压、电流的波形图。 三、设计内容 (1)设计一个降压变换器(Buck Chopper),其输入电压为200V,负载为阻感性带反电动势负载,电阻为2欧,电感为5mH,反电动势为80V。开关管采用IGBT,驱动信号频率为1000Hz,仿真时间设置为0.02s,观察不同占空比下(25%、50%、75%)的驱动信号、负载电流、负载电压波形,并计算相应的电压、电流平均值。 然后,将负载反电动势改变为160V,观察电流断续时的工作波形。(最大步长为5e-6,相对容忍率为1e-3,仿真解法器采用ode23tb) (2)设计一个采用双极性调制的三相桥式逆变电路,主电路直流电源200V,经由6只MOSFET组成的桥式逆变电路与三相阻感性负载相连接,负载电阻为1

matlab程序设计实例

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

Matlab课程设计报告模板

题目几、已知振荡曲线()e sin ,0,0at y bt a b -=>>及其包络线0e at y -=。t 的取值范围是[0,5π]。请完成以下工作: 1)使用题目自带的symd 函数将振荡曲线表达式y 及其包络线0y 显示出来。 2)给定参数13 a b ==;3c =,画出y 及其包络线0y 以及0y -。 %******************以下是Matlab 课程设计参考报告**************% 姓名:某某某 学号:xxxxxxxx 选题:题目几 1、Matlab 简介 MATLAB 是美国MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink 两大部分。。。。。。。。。。。。 “注:相关的简介不要写太长,只要稍微简单介绍,让读者有一个了解即可” 2、设计过程 2.1题目分析 第一小题提到了symd 函数,首先需要了解symd 函数的功能及用法。首先将symd 函数的(.m)文件放置在Matlab 当前工作目录,并做好相关工作: 在Matlab 命令窗口输入 help symd ,得到关于symd 函数的说明和用法:

容易知道,symd函数的基本功能是将一个符号表达式用常见的数学形式显示出来,函数中还有其他的相关说明。 y都是符号表达式。 很明显,振荡曲线表达式y及其包络线 y的曲线图,自然需要使用第二小题给定了具体参数值,要求画出y以及 subs函数来进行相关操作,以减小工作量,因为很多时候会得到一个很复杂的符号表达式。使用subs函数可以极大减小工作量。 2.2问题解答 定义相关变量,使用symd函数,完成第一小题的解答。得到以下结果: 使用subs函数,完成第二小题,得到如下结果:

Matlab界面设计的例子

1、很简单,在界面上放三个单选按钮控制颜色(R、G、B),四个pushbutton (功能分别为绘制正弦、余弦、grid off、退出程序),可作为一个小小的入门。 程序为: %simpleGUI2.m-a simple use of Radiobutton and Pushbutton clear all; FigWin=figure('Position',[100,100,600,300],'Name','Uicontrol:Push Button & RadioButton',... 'NumberTitle','off'); AxesHandle=axes('Position',[0.4,0.15,0.5,0.8],'Box','on'); RadioNum=3; for i=1:RadioNum Radio(i)=0;%initial value=0 end Radio(1)=uicontrol(FigWin,...%父对象FigWin(一figure对象),备注③ 'Style','Radio',... 'Position',[50 255 100 30],... 'String','Draw in Red',... 'CallBack',... ['n=1;'... 'if get(Radio(1),''Value'')==1;'...%要使各radio button之间具有互斥性,要用if...else语句 'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'...

'else;'...%要加上分号,一种规定?参备注① 'set(Radio(1),''Value'',1);'... 'end;'... 'ColorStr=''r'';'... 'set(FunHandle,''Color'',''red'')']);%曲线颜色根据radio button的选项实时变化,ColorStr是一个全局变量 Radio(2)=uicontrol(FigWin,... 'Style','Radio',... 'Position',[50 215 100 30],... 'String','Draw in Green',... 'CallBack',... ['n=2;'... 'if get(Radio(2),''Value'')==1;'... 'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'... 'else;'... 'set(Radio(2),''Value'',1);'... 'end;'... 'ColorStr=''g'';'... 'set(FunHandle,''Color'',''green'')']); Radio(3)=uicontrol(FigWin,... 'Style','Radio',... 'Position',[50 175 100 30],...

MATLAB课程设计报告模板

《MATLAB课程设计》报告 设计题目:可视化用户界面设计 学生姓名: 学生学号: 2010 专业班级: 10级光信息 答辩时间: 指导教师:冯明库 广东技术师范学院 电子与信息学院 一、设计目的及意义 学会综合地运用MATLAB工具箱设计出可以绘制一般常见图像的GUI程序。同时,加深对MATLAB的绘制图像功能的认识和设计GUI程序的一般方法的掌握。 二、设计任务及指标 设计一个GUI界面程序,可以根据不同参数的输入来绘制不同的螺旋线、内摆线以及圆环图像。 熟悉和掌握MATLAB 程序设计方法;掌握MATLAB GUI 程序设计;学习和熟悉MATLAB工具箱;学会运用MATLAB工具箱绘制常见图像。 三、设计过程 3.1、打开GUI设计窗口,添加有关控件对象。 首先,启动Matlab在命令窗口中输入“guide”,打开GUI设计窗口。然后在用户界面编辑窗口添加3个按钮、一个弹出框和一个静态文本框和一个坐标系

(Axes)。 3.2、利用属性编辑器,设置图形对象的属性。 利用属性编辑器把3个按钮的Position属性的第三和第四个分量设为相同的值,以使3个按钮的宽和高都相等。3个按钮的String属性分别是说明文字Mesh、Surf和Contour3,FontSize属性设为10。 弹出框的String属性中输入三个选项:peaks、membrane、sinc。 静态文本框的String属性设置为Choose Data of Graphics。 3.3、编写代码,实现控件功能。 右击任意图形对象,在弹出的快捷菜单中选择View CallBacks子菜单,再选择CallBack命令,将自动打开一个M文件,这时在各控件的回调函数区输入相应的程序代码。 % --- Executes just before ex8_5 is made visible. function ex8_5_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to ex8_5 (see VARARGIN) handles.peaks=peaks(35); handles.membrane=membrane(5); [x,y]=meshgrid(-8:0.5:8); r=sqrt(x.^2+y.^2); sinc=sin(r)./(r+eps); handles.sinc=sinc; handles.current_data=handles.peaks; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) mesh(handles.current_data) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) surf(handles.current_data)

基于-matlab的可视化界面制作

MATLAB可视化设界面计(上) 一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。这样用户不需要知道应用程序究竟是怎样执行各种命令的, 而只需要了解可见界面组件的使用方法用户也不需要知道命令是如何执行, 只要通过与界面交互就可以使指定行为得以正确执行。MATLAB可视化界面的设计, 一般有两种方法, 一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件), 二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development Environment)来形成相应文件。这里只讲述在GUIDE环境中利用控件实现可视化界面功能, 不探讨直接通过编辑脚本文件实现可视化界面的方法。 MATLAB软件GUIDE为用户提供了一个方便高效的集成环境, 所有GUI支持的用户控件都集成在这个环境中, 并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中, 同时自动生成包含GUI初始化和组件界面布局控制代码的M文件, 为实现回调函数提供了一个参考框架。 下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用, 我们以MATLAB7.0版本为调试环境, 如果版本的环境和版本略有不同,但基本思想和方法一致。为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。) 实例要完成的功能如下: 首先运行M文件后,出现一个主画面

相关主题
文本预览
相关文档 最新文档