当前位置:文档之家› 基于MATLAB多变量DMC算法的仿真技术研究

基于MATLAB多变量DMC算法的仿真技术研究

基于MATLAB多变量DMC算法的仿真技术研究
基于MATLAB多变量DMC算法的仿真技术研究

基于MATLAB多变量DMC算法的仿真技术研究摘要:利用MATLAB开发系统的仿真程序,以试验室的CSTR模型为研究对象,用动态矩阵控制算法建立仿真模型,实现多输入多输出系统的控制,绘制出调节曲线,分析各个参数对系统性能的影响。结果表明,该控制算法得到较好的控制效果。

关键词:机理建模动态矩阵控制(DMC) CSTR系统过程控制

在工业生产中广泛应用着各种反应器,连续搅拌反应是非常重要的反应过程,能代表许多反应系统的特性。同时,连续搅拌反应器(CSTR)模型比其他连续反应器类型简单。控制系统大多为多变量控制,各被控量与输出量之间有紧密的联系,而且被动对象有较大的时间滞后,PID算法不能达到控制要求。

1 连续搅拌反应器及其数学模型

1.1 CSTR过程分析

用连续搅拌反应器实现冷热水混合,Q1、Q2、T1、T2分别为热水和冷水的流量及温度。温度、液位具有较强的耦合性,冷水、热水分别流入冷热水的水槽,进入混和器进行混合。控制进水电磁阀的开度,调节温度和液位。

1.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 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程序实现

2. Matlab程序 2.1 一次聚类法 X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900]; T=clusterdata(X,0.9) 2.2 分步聚类 Step1 寻找变量之间的相似性 用pdist函数计算相似矩阵,有多种方法可以计算距离,进行计算之前最好先将数据用zscore 函数进行标准化。 X2=zscore(X); %标准化数据 Y2=pdist(X2); %计算距离 Step2 定义变量之间的连接 Z2=linkage(Y2); Step3 评价聚类信息 C2=cophenet(Z2,Y2); //0.94698 Step4 创建聚类,并作出谱系图 T=cluster(Z2,6); H=dendrogram(Z2); Matlab提供了两种方法进行聚类分析。 一种是利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离;(2)用 linkage函数定义变量之间的连接;(3)用 cophenetic函数评价聚类信息;(4)用cluster函数创建聚类。 1.Matlab中相关函数介绍 1.1 pdist函数 调用格式:Y=pdist(X,’metric’) 说明:用‘metric’指定的方法计算 X 数据矩阵中对象之间的距离。’ X:一个m×n的矩阵,它是由m个对象组成的数据集,每个对象的大小为n。 metric’取值如下: ‘euclidean’:欧氏距离(默认);‘seuclidean’:标准化欧氏距离; ‘mahalanobis’:马氏距离;‘cityblock’:布洛克距离; ‘minkowski’:明可夫斯基距离;‘cosine’: ‘correlation’:‘hamming’: ‘jaccard’:‘chebychev’:Chebychev距离。 1.2 squareform函数 调用格式:Z=squareform(Y,..) 说明:强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式转化为上三角形式。 1.3 linkage函数 调用格式:Z=linkage(Y,’method’) 说明:用‘method’参数指定的算法计算系统聚类树。 Y:pdist函数返回的距离向量;

PID算法Matlab仿真程序和C程序

增量式PID控制算法Matlab仿真程序设一被控对象G(s)=50/(0.125s^2+7s),用增量式PID控制算法编写仿真程序(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5],仿真曲线包括系统输出及误差曲线,并加上注释、图例)。程序如下clear all; close all; ts=0.001; sys=tf(50,[0.125,7, 0]); dsys=c2d(sys,ts,'z'); [num,den]=tfdata(dsys,'v'); u_1=0.0;u_2=0.0; y_1=0.0;y_2=0.0; x=[0,0,0]'; error_1=0; error_2=0; for k=1:1:1000 time(k)=k*ts; S=2; if S==1 kp=10;ki=0.1;kd=15; rin(k)=1; % Step Signal elseif S==2 kp=10;ki=0.1;kd=15; %Sin e Signal rin(k)=0.5*sin(2*pi*k*ts); end du(k)=kp*x(1)+kd*x(2)+ki*x(3); % PID Controller u(k)=u_1+du(k); %Restricting the output of controller if u(k)>=5 u(k)=5; end if u(k)<=-5 u(k)=-5; end %Linear model yout(k)=-den(2)*y_1-den(3)*y_2+nu m(2)*u_1+num(3)*u_2; error(k)=rin(k)-yout(k); %Return of parameters u_2=u_1;u_1=u(k); y_2=y_1;y_1=yout(k); x(1)=error(k)-error_1; %C alculating P x(2)=error(k)-2*error_1+error_2; %Calculating D x(3)=error(k); %Calculating I error_2=error_1; error_1=error(k); end figure(1); plot(time,rin,'b',time,yout,'r'); xlabel('time(s)'),ylabel('rin,yout'); figure(2); plot(time,error,'r') xlabel('time(s)');ylabel('error'); 微分先行PID算法Matlab仿真程序%PID Controler with differential in advance clear all; close all; ts=20; sys=tf([1],[60,1],'inputdelay',80); dsys=c2d(sys,ts,'zoh'); [num,den]=tfdata(dsys,'v'); u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;

春MATLAB仿真期末大作业

MATLAB仿真 期末大作业 姓名:班级:学号:指导教师:

2012春期末大作业 题目:设单位负反馈控制系统前向通道传递函数由)()(21s G s G 和串联,其中: ) 1(1)()(21++==s A s G s K s G A 表示自己学号最后一位数(可以是零),K 为开环增益。要求: (1)设K=1时,建立控制系统模型,并绘制阶跃响应曲线(用红色虚线,并标注坐标和标题);求取时域性能指标,包括上升时间、超调量、调节时间、峰值时间; (2)在第(1)问中,如果是在命令窗口绘制阶跃响应曲线,用in1或者from workspace 模块将命令窗口的阶跃响应数据导入Simulink 模型窗口,用示波器显示阶跃响应曲线;如果是在Simulink 模型窗口绘制阶跃响应曲线,用out1或者to workspace 模块将Simulink 模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线。 (3)用编程法或者rltool 法设计串联超前校正网络,要求系统在单位斜坡输入信号作用时,速度误差系数小于等于0.1rad ,开环系统截止频率s rad c /4.4''≥ω,相角裕度大于等于45度,幅值裕度大于等于10dB 。

仿真结果及分析: (1)、(2)、将Simulink模型窗口的阶跃响应数据导入命令窗口并绘制阶跃响应曲线 通过在Matlab中输入命令: >> plot(tout,yout,'r*-') >> title('阶跃响应曲线') 即可得出系统阶跃响应曲线,如下: 求取该控制系统的常用性能指标:超调量、上升时间、调节时间、峰值时间的程序如下: G=zpk([],[0,-1],5)。 S=feedback(G,1)。

电力电子技术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实现FCM 聚类算法

本文在阐述聚类分析方法的基础上重点研究FCM 聚类算法。FCM 算法是一种基于划分的聚类算法,它的思想是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。最后基于MATLAB实现了对图像信息的聚类。 第 1 章概述 聚类分析是数据挖掘的一项重要功能,而聚类算法是目前研究的核心,聚类分析就是使用聚类算法来发现有意义的聚类,即“物以类聚” 。虽然聚类也可起到分类的作用,但和大多数分类或预测不同。大多数分类方法都是演绎的,即人们事先确定某种事物分类的准则或各类别的标准,分类的过程就是比较分类的要素与各类别标准,然后将各要素划归于各类别中。确定事物的分类准则或各类别的标准或多或少带有主观色彩。 为获得基于划分聚类分析的全局最优结果,则需要穷举所有可能的对象划分,为此大多数应用采用的常用启发方法包括:k-均值算法,算法中的每一个聚类均用相应聚类中对象的均值来表示;k-medoid 算法,算法中的每一个聚类均用相应聚类中离聚类中心最近的对象来表示。这些启发聚类方法在分析中小规模数据集以发现圆形或球状聚类时工作得很好,但当分析处理大规模数据集或复杂数据类型时效果较差,需要对其进行扩展。 而模糊C均值(Fuzzy C-means, FCM)聚类方法,属于基于目标函数的模糊聚类算法的范畴。模糊C均值聚类方法是基于目标函数的模糊聚类算法理论中最为完善、应用最为广泛的一种算法。模糊c均值算法最早从硬聚类目标函数的优化中导出的。为了借助目标函数法求解聚类问题,人们利用均方逼近理论构造了带约束的非线性规划函数,以此来求解聚类问题,从此类内平方误差和WGSS(Within-Groups Sum of Squared Error)成为聚类目标函数的普遍形式。随着模糊划分概念的提出,Dunn [10] 首先将其推广到加权WGSS 函数,后来由Bezdek 扩展到加权WGSS 的无限族,形成了FCM 聚类算法的通用聚类准则。从此这类模糊聚类蓬勃发展起来,目前已经形成庞大的体系。 第 2 章聚类分析方法 2-1 聚类分析 聚类分析就是根据对象的相似性将其分群,聚类是一种无监督学习方法,它不需要先验的分类知识就能发现数据下的隐藏结构。它的目标是要对一个给定的数据集进行划分,这种划分应满足以下两个特性:①类内相似性:属于同一类的数据应尽可能相似。②类间相异性:属于不同类的数据应尽可能相异。图2.1是一个简单聚类分析的例子。

最短路径算法_matlab程序[1]

算法描述: 输入图G,源点v0,输出源点到各点的最短距离D 中间变量v0保存当前已经处理到的顶点集合,v1保存剩余的集合 1.初始化v1,D 2.计算v0到v1各点的最短距离,保存到D for each i in v0;D(j)=min[D(j),G(v0(1),i)+G(i,j)] ,where j in v1 3.将D中最小的那一项加入到v0,并且从v1删除这一项。 4.转到2,直到v0包含所有顶点。 %dijsk最短路径算法 clear,clc G=[ inf inf 10 inf 30 100; inf inf 5 inf inf inf; inf 5 inf 50 inf inf; inf inf inf inf inf 10; inf inf inf 20 inf 60; inf inf inf inf inf inf; ]; %邻接矩阵 N=size(G,1); %顶点数 v0=1; %源点 v1=ones(1,N); %除去原点后的集合 v1(v0)=0; %计算和源点最近的点 D=G(v0,:); while 1 D2=D; for i=1:N if v1(i)==0 D2(i)=inf; end end D2 [Dmin id]=min(D2); if isinf(Dmin),error,end v0=[v0 id] %将最近的点加入v0集合,并从v1集合中删除 v1(id)=0; if size(v0,2)==N,break;end %计算v0(1)到v1各点的最近距离 fprintf('计算v0(1)到v1各点的最近距离\n');v0,v1 id=0; for j=1:N %计算到j的最近距离 if v1(j)

电机学matlab仿真大作业报告

. 基于MATLAB的电机学计算机辅助分析与仿真 实验报告

一、实验内容及目的 1.1 单相变压器的效率和外特性曲线 1.1.1 实验内容 一台单相变压器,N S =2000kVA, kV kV U U N N 11/127/21=,50Hz ,变压器的参数 和损耗为008.0* ) 75(=C k o R ,0725.0*=k X ,kW P 470=,kW P C KN o 160)75(=。 (1)求此变压器带上额定负载、)(8.0cos 2滞后=?时的额定电压调整率和额定效率。 (2)分别求出当0.1,8.0,6.0,4.0,2.0cos 2=?时变压器的效率曲线,并确定最大效率和达到负载效率时的负载电流。 (3)分析不同性质的负载(),(8.0cos 0.1cos ),(8.0cos 222超前,滞后===???)对变压器输出特性的影响。 1.1.2 实验目的 (1)计算此变压器在已知负载下的额定电压调整率和额定效率 (2)了解变压器效率曲线的变化规律 (3)了解负载功率因数对效率曲线的影响 (4)了解变压器电压变化率的变化规律 (5)了解负载性质对电压变化率特性的影响 1.1.3 实验用到的基本知识和理论 (1)标幺值、效率区间、空载损耗、短路损耗等概念 (2)效率和效率特性的知识 (3)电压调整率的相关知识 1.2串励直流电动机的运行特性 1.2.1实验内容 一台16kw 、220V 的串励直流电动机,串励绕组电阻为0.12Ω,电枢总电阻为0.2Ω。电动势常数为.电机的磁化曲线近似的为直线。其中为比例常数。假设电枢电流85A 时,磁路饱和(为比较不同饱和电流对应的效果,饱和电流可以自己改变)。

简单码分复用技术及其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实现Kmeans聚类算法

题目:matlab实现Kmeans聚类算法 姓名吴隆煌 学号41158007

背景知识 1.简介: Kmeans算法是一种经典的聚类算法,在模式识别中得到了广泛的应用,基于Kmeans的变种算法也有很多,模糊Kmeans、分层Kmeans 等。 Kmeans和应用于混合高斯模型的受限EM算法是一致的。高斯混合模型广泛用于数据挖掘、模式识别、机器学习、统计分析。Kmeans 的迭代步骤可以看成E步和M步,E:固定参数类别中心向量重新标记样本,M:固定标记样本调整类别中心向量。K均值只考虑(估计)了均值,而没有估计类别的方差,所以聚类的结构比较适合于特征协方差相等的类别。 Kmeans在某种程度也可以看成Meanshitf的特殊版本,Meanshift 是一种概率密度梯度估计方法(优点:无需求解出具体的概率密度,直接求解概率密度梯度。),所以Meanshift可以用于寻找数据的多个模态(类别),利用的是梯度上升法。在06年的一篇CVPR文章上,证明了Meanshift方法是牛顿拉夫逊算法的变种。Kmeans 和EM算法相似是指混合密度的形式已知(参数形式已知)情况下,利用迭代方法,在参数空间中搜索解。而Kmeans和Meanshift相似是指都是一种概率密度梯度估计的方法,不过是Kmean选用的是特殊的核函数(uniform kernel),而与混合概率密度形式是否已知无关,是一种梯度求解方式。 k-means是一种聚类算法,这种算法是依赖于点的邻域来决定哪些

点应该分在一个组中。当一堆点都靠的比较近,那这堆点应该是分到同一组。使用k-means,可以找到每一组的中心点。 当然,聚类算法并不局限于2维的点,也可以对高维的空间(3维,4维,等等)的点进行聚类,任意高维的空间都可以。 上图中的彩色部分是一些二维空间点。上图中已经把这些点分组了,并使用了不同的颜色对各组进行了标记。这就是聚类算法要做的事情。 这个算法的输入是: 1:点的数据(这里并不一定指的是坐标,其实可以说是向量) 2:K,聚类中心的个数(即要把这一堆数据分成几组) 所以,在处理之前,你先要决定将要把这一堆数据分成几组,即聚成几类。但并不是在所有情况下,你都事先就能知道需要把数据聚成几类的。但这也并不意味着使用k-means就不能处理这种情况,下文中会有讲解。 把相应的输入数据,传入k-means算法后,当k-means算法运行完后,该算法的输出是: 1:标签(每一个点都有一个标签,因为最终任何一个点,总会被分到某个类,类的id号就是标签) 2:每个类的中心点。 标签,是表示某个点是被分到哪个类了。例如,在上图中,实际上

matlab 大作业

上海电力学院 通信原理Matlab仿真 实验报告 实验名称: 8QAM误码率仿真 试验日期: 2014年 6月3日 专业:通信工程 姓名:罗侃鸣 班级: 2011112班 学号: 20112272

一、实验要求 写MATLAB程序,对图示的信号星座图完成M=8的QAM通信系统Monte Carlo仿真,在不同SNRindB=0:15时,对N=10000(3比特)个符号进行仿真。画出该QAM系统的符号误码率。 二、实验原理 1 QAM调制原理 QAM(Quadrature Amplitude Modulation)正交幅度调制技术,是用两路独立的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有8QAM,16QAM,64QAM。 QAM调制实际上就是幅度调制和相位调制的组合,相位+ 幅度状态定义了一个数字或数字的组合。QAM的优点是具有更大的符号率,从而可获得更高的系统效率。通常由符号率确定占用带宽。因此每个符号的比特(基本信息单位)越多,频带效率就越高。 调制时,将输入信息分成两部分:一部分进行幅度调制;另一部分进行相位调制。对于星型8QAM信号,每个码元由3个比特组成,可将它分成第一个比特和后两个个比特两部分。前者用于改变信号矢量的振幅,后者用于差分相位调制,通过格雷编码来改变当前码元信号矢量相位与前一码元信号矢量相位之间的相位差。 QAM是一种高效的线性调制方式,常用的是8QAM,16QAM,64QAM等。当随着M 的增大,相应的误码率增高,抗干扰性能下降。 2 QAM星座图 QAM调制技术对应的空间信号矢量端点分布图称为星座图。QAM的星座图呈现星状分

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实现-1(含聚类图-含距离计算)

最短距离聚类的matlab实现-1 【2013-5-21更新】 说明:正文中命令部分可以直接在Matlab中运行, 作者(Yangfd09)于2013-5-21 19:15:50在MATLAB R2009a(7.8.0.347)中运行通过 %最短距离聚类(含距离计算,含聚类图) %说明:此程序的优点在于每一步都是自己编写的,很少用matlab现成的指令, %所以更适合于初学者,有助于理解各种标准化方法和距离计算方法。 %程序包含了极差标准化(两种方法)、中心化、标准差标准化、总和标准化和极大值标准化等标准化方法, %以及绝对值距离、欧氏距离、明科夫斯基距离和切比雪夫距离等距离计算方法。 %==========================>>导入数据<<============================== %变量名为test(新建一个以test变量,双击进入Variable Editor界面,将数据复制进去即可)%数据要求:m行n列,m为要素个数,n为区域个数(待聚类变量)。 % 具体参见末页测试数据。 testdata=test; %============================>>标准化<<=============================== %变量初始化,m用来寻找每行的最大值,n找最小值,s记录每行数据的和 [M,N]=size(testdata);m=zeros(1,M);n=9999*ones(1,M);s=zeros(1,M);eq=zeros(1,M); %为m、n和s赋值 for i=1:M for j=1:N if testdata(i,j)>=m(i) m(i)=testdata(i,j); end if testdata(i,j)<=n(i) n(i)=testdata(i,j); end s(i)=s(i)+testdata(i,j); end eq(i)=s(i)/N; end %sigma0是离差平方和,sigma是标准差 sigma0=zeros(M); for i=1:M for j=1:N sigma0(i)=sigma0(i)+(testdata(i,j)-eq(i))^2; end end sigma=sqrt(sigma0/N);

matlab机电系统仿真大作业

一曲柄滑块机构运动学仿真 1、设计任务描述 通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink 模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。 2、系统结构简图与矢量模型 下图所示是只有一个自由度的曲柄滑块机构,连杆与长度已知。 图2-1 曲柄滑块机构简图 设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系 图2-2 曲柄滑块机构的矢量环

3.匀角速度输入时系统仿真 3.1 系统动力学方程 系统为匀角速度输入的时候,其输入为输出为;。 (1) 曲柄滑块机构闭环位移矢量方程为: (2)曲柄滑块机构的位置方程 (3)曲柄滑块机构的运动学方程 通过对位置方程进行求导,可得 由于系统的输出是与,为了便于建立A*x=B形式的矩阵,使x=[], 将运动学方程两边进行整理,得到 将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式 3.2 M函数编写与Simulink仿真模型建立 3.2.1 滑块速度与时间的变化情况以及滑块位移与时间的变化情况 仿真的基本思路:已知输入w2与,由运动学方程求出w3和v1,再通过积分,即可求出与r1。 (1)编写Matlab函数求解运动学方程 将该机构的运动学方程的矩阵形式用M函数compv(u)来表示。 设r2=15mm,r3=55mm,r1(0)=70mm,。 其中各个零时刻的初始值可以在Simulink模型的积分器初始值里设置

M函数如下: function[x]=compv(u) %u(1)=w2 %u(2)=sita2 %u(3)=sita3 r2=15; r3=55; a=[r3*sin(u(3)) 1;-r3*cos(u(3)) 0]; b=[-r2*u(1)*sin(u(2));r2*u(1)*cos(u(2))]; x=inv(a)*b; (2)建立Simulink模型 M函数创建完毕后,根据之前的运动学方程建立Simulink模型,如下图: 图3-1 Simulink模型 同时不要忘记设置r1初始值70,如下图: 图3-2 r1初始值设置

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”,引起了国际上的充分重视。 灰色数学理论是把负荷序列看作一真实的系统输出,它是众多影响因子的综合作用结果。这些众多因子的未知性和不确定性,成为系统的灰色特性。灰色系统理论把负荷序列通过生成变换,使其变化为有规律的生成数列再建模,用于负荷预测。 灰色系统理论的形成是有过程的。早年邓教授从事控制理论和模糊系统的研究,取得了许多成果。后来,他接受了全国粮食预测的课题,为了搞好预测工作,他研究了概率统计追求大样本量,必须先知道分布规律、发展趋势,而时间序列法只致力于数据的拟合,不注重规律的发展。邓教授希望在可利用数据不多的情况下,找到了较长时期起

数学实验05聚类分析---用matlab做聚类分析

用matlab做聚类分析 Matlab提供了两种方法进行聚类分析。 一种是利用clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法; 另一种是分步聚类:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离;(2)用linkage函数定义变量之间的连接;(3)用cophenetic函数评价聚类信息;(4)用cluster函数创建聚类。1.Matlab中相关函数介绍 1.1pdist函数 调用格式:Y=pdist(X,’metric’) 说明:用‘metric’指定的方法计算X数据矩阵中对象之间的距离。’X:一个m×n的矩阵,它是由m个对象组成的数据集,每个对象的大小为n。 metric’取值如下: ‘euclidean’:欧氏距离(默认);‘seuclidean’:标准化欧氏距离; ‘mahalanobis’:马氏距离;‘cityblock’:布洛克距离; ‘minkowski’:明可夫斯基距离;‘cosine’: ‘correlation’:‘hamming’: ‘jaccard’:‘chebychev’:Chebychev距离。 1.2squareform函数 调用格式:Z=squareform(Y,..)

说明:强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式转化为上三角形式。 1.3linkage函数 调用格式:Z=linkage(Y,’method’) 说明:用‘method’参数指定的算法计算系统聚类树。 Y:pdist函数返回的距离向量; method:可取值如下: ‘single’:最短距离法(默认);‘complete’:最长距离法; ‘average’:未加权平均距离法;‘weighted’:加权平均法; ‘centroid’:质心距离法;‘median’:加权质心距离法; ‘ward’:内平方距离法(最小方差算法) 返回:Z为一个包含聚类树信息的(m-1)×3的矩阵。 1.4dendrogram函数 调用格式:[H,T,…]=dendrogram(Z,p,…) 说明:生成只有顶部p个节点的冰柱图(谱系图)。 1.5cophenet函数 调用格式:c=cophenetic(Z,Y) 说明:利用pdist函数生成的Y和linkage函数生成的Z计算cophenet相关系数。 1.6cluster函数 调用格式:T=cluster(Z,…) 说明:根据linkage函数的输出Z创建分类。

最优化算法-Matlab程序

CG程序代码 function [x,y] = cg(A,b,x0) %%%%%%%%%%%%%%%%%CG算法%%%%%%%%%%%% r0 = A*x0-b; p0 = -r0; k = 0; r = r0; p = p0; x = x0; while r~=0 alpha = -r'*p/(p'*A*p); x = x+alpha*p; rold = r; r = rold+alpha*A*p; beta = r'*r/(rold'*rold); p = -r+beta*p; plot(k,norm(p),'.--'); hold on k = k+1; end y.funcount = k; y.fval = x'*A*x/2-b'*x;

function [x,y] = cg_FR(fun,dfun,x0) %%%%%%%%%%%%%%%CG_FR算法%%%%%%%%%%%%%%% error = 10^-5; f0 = feval(fun,x0); df0 = feval(dfun,x0); p0 = -df0; f = f0; df = df0; p = p0; x = x0; k = 0; while ((norm(df)>error)&&(k<1000)) f = feval(fun,x); [alpha,funcNk,exitflag] = lines(fun,0.01,0.15,0.85,6,f,df'*p,x,p);%%用线搜索找下降距离%% if exitflag == -1 disp('Break!!!'); break; end x = x+alpha*p; dfold = df; df = feval(dfun,x); beta = df'*df/(dfold'*dfold); p = -df+beta*p; plot(k,norm(df),'.--'); hold on k = k+1; end y.funcount = k; y.fval = feval(fun,x); y.error = norm(df);

电机大作业(MATLAB仿真-电机特性曲线)

电机大作业 专业班级:电气XXXX 姓名:XXX 学号:XXX 指导老师:张威

一、研究课题(来源:教材习题 4-18 ) 1. 74 、R 2 0.416 、X 2 3.03 、R m 6. 2 X m 75 。电动机的机械损耗p 139W,额定负载时杂散损耗p 320W, 试求额定负载时的转差率、定子电流、定子功率因数、电磁转矩、输出转矩和效 率。 二、编程仿真 根据T 形等效电路: 3D - R Q 运用MATLAB 进行绘图。MATLAB 文本中,P N PN ,U N UN ,尺 R 1, X 1 X1 , R 2 R 2,X 2 X 2,R m Rm, X m Xm ,p pjixiesunh ao , p pzasansunhao 。定子电流I11,定子功率因数 Cosangle1,电磁转矩Te , 效率 Xiaolv 。 1.工作特性曲线绘制 MATLA 文本: R1=0.715;X 仁1.74;Rm=6.2;Xm=75;R2=0.416;X2=3.03;pjixiesu nhao=139; pzasa nsu nhao=320;p=2;m 仁 3; ns=1500;PN=17000;UN=380;fN=50; Z1=R1+j*X1; Zm=Rm+j*Xm; for i=1:2500 s=i/2500; nO=n s*(1-s); Z2=R2/s+j*X2; Z=Z1+Zm*Z2/(Zm+Z2); 有一台三相四极的笼形感应电动机, 参数为P N 17kW 、U N 380V (△联 Rm 结)、尺 0. 715 、X j lcr S

U1=UN; I1=U1/Z; l110=abs(l1); An gle 仁an gle(ll); Cosa ngle10=cos(A ngle1); P仁3*U1*l110*Cosa ngle10; l2=l1*Zm/(Zm+Z2); Pjixie=m1*(abs(I2))A2*(1-s)/s*R2; V=(1-s)*pi*fN; Te0=Pjixie/V; P20=Pjixie-pjixies un hao-pzasa nsun hao; Xiaolv0=P20/P1; P2(i)=P20; n (i)=n0; l11(i)=l110; Cosa ngle1(i)=Cosa ngle10; Te(i)=Te0; Xiaolv(i)=Xiaolv0; hold on; end figure(1) plot(P2, n); xlabel('P2[W]');ylabel(' n[rpm]'); figure(2) plot(P2,l11); xlabel('P2[W]');ylabel('l1[A]'); figure(3) plot(P2,Cosa nglel); xlabel('P2[W]');ylabel('go nglvyi nshu'); figure(4) plot(P2,Te); xlabel('P2[W]');ylabel('Te[Nm]'); figure(5) plot(P2,Xiaolv); xlabel('P2[W]');ylabel('xiaolv');

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