搜档网
当前位置:搜档网 › 利用matlab实现H-infinity鲁棒控制

利用matlab实现H-infinity鲁棒控制

利用matlab实现H-infinity鲁棒控制
利用matlab实现H-infinity鲁棒控制

西安交通大学自动化系

利用Matlab实现H∞控制

Prof. Dr.-Ing.F.Allgwer

Institute for Systems Theory and Automatic Control

http://www.ist.uni-stuttgart.de/education/courses/robust

1 引言

H∞控制器设计原理容易理解,难点在于编程。这里简单介绍Matlab里面几个相关函数的用法,希望能帮助你设计第一个H∞控制器。

Matlab提供了很多H∞设计函数,与H∞设计相关的几个重要的工具箱有:Control System Toolbox,mu-Analysis and Synthesis Toolbox(mu-tools),Robust Control Toolbox(RCT)和LMI Control Toolbox。Matlab7.0之后的版本中,LMI 和mu-tools都包含在RCT v3.0.1中,Matlab 7.0之前的版本中这些工具箱是独立的。

本文中用到的函数都写在了一个m文件中(见附录),也可以从网站下载。

利用混合S/KS问题说明H∞相关函数的用法。首先回顾这个问题。

2 回路成形传递函数

混合S/KS问题可用图1来说明。

从w到z的闭环传递函数可以表示为

广义过程模型P(s)(见图2)可以表示为

假设上面几个状态空间变量具有如下的形式:

于是可以得到P(s)的一个可能的状态空间实现形式:

W S和W KS为调整参数。一种选择方法为:

其中A<1为允许的最大稳态误差,为期望带宽,M为灵敏度峰值(一般情况

下A=0.01,M=2)。从控制器设计的方面来说,的倒数为回路成形期望灵敏度的上限,影响控制器的输出u。

有些情况下希望对补灵敏度函数进行回路成形设计(在图1中增加一个输出)。一种选择方法为:

此函数与函数成轴对称,见图3所示。图中参数设置为A=0.01

(=-40dB),M=2(=6dB),。

3 子系统的实现

在Matlab中有几种方式得到G,W S和W KS。例如Control System Toolbox提供的ss,tf和zpk等函数。Mu-tools也提供了诸如pck,nd2sys,zp2sys等函数,也可以用mksys和tree等方法。需要注意的是,Mu-tools提供了一种与Control System Toolbox不一样的表达方式:系统矩阵(system matrix)。Control System

Toolbox里面可以写成,对mu-tools则不适用。

Mu-tools:

4 广义系统P的实现

广义系统P也有多种产生方式。下面我列举了五种:

(1)直接写出传递函数矩阵,见2节。我倾向于利用mu-tools。如果后面需要转化为状态空间模型,需要利用minreal之类的函数得到最小化实现。重要的函数有:sbs(side-by-side),abv(above),mmult(multiply),minv(inverse)。

(2)写出状态空间系数矩阵A,B,C,D,然后利用3节中的指令:P=pck (A,B,C,D)。

(3)利用sysic函数(system interconnect)。先在一个m文件中利用mu-tools 设置了子系统,然后利用该函数将子系统互连起来。

(4)利用sconnect函数,这是LMI-tools提供的函数。子系统、输入、输出以参数的形式传递,sconnect返回互连的系统。

(5)利用RCT v3.0.1提供的iconnect函数,该函数功能与sysic类似。

这些方法中,我倾向于sysic和iconnect函数,因为它们使用灵活,能够搭建方法1和方法2难于搭建的复杂系统。一般情况下,得到均衡实现形式以避免数值计算问题是一个很好的想法,均衡实现形式可以利用Control System Toolbox

提供的balreal实现。

5 控制器设计

设计问题是寻找一控制器K,使之稳定系统G,并使下列的H∞范数最小:

有很多种得到H∞控制器的方法,例如hinfsyn,hinfric,hinflmi,这些函数将P作为输入,并以系统矩阵(mu-tools)方式表达。RCT v3.0.1提供了mixsyn

函数,将作为输入(为补灵敏度函数权重),并不需要事

先得到广义系统模型P。这些方法的主要区别在于是否用到Riccati方程和γ迭代或者线性矩阵不等式来求解最优化问题。LMI方法不需要求解Riccati时设定的假设条件。

另外还有些指令:ncfsyn和loopsyn(对开环传递函数L=GK进行H∞回路成形设计),hinfmix和msfsyn(多目标)。具体请查阅手册。

6 结果分析

当控制器设计好后,需要对结果进行分析,这时可以利用Control System Toolbox提供的函数,例如利用lsim,step(阶跃响应),bode(伯德图),sigma (奇异值),freqresp(频域响应)等函数对传递函数S,KS,T,K,GK进行分析。Mu-tools提供的函数有:trsp(时域响应),frsp(频域响应),vsvd(奇异值),vplot。

7 结论

从前面可见,有很多种进行H∞控制器设计的方法。为了避免混淆,我建议尽可能使用mu-tools和RCT。如果你知道Control System Toolbox存在某个函数,那么mu-tools也很可能存在具有相同功能的函数,只不过名称稍有些不同。如果你清楚自己的目的,但不知道函数的名字,那么建议你浏览帮助手册中的函数索引。

希望此处简短的介绍能够帮助你进行H∞控制器的设计。好运!

附录

%下面的代码展示了如何在Matlab中进行H-infinity控制器的设计。此处举的例子与混合

%S/KS问题有些不同。此处用到的模型和权重函数见Skogestad和Postlethwaite,1996,

%ed.1,p.60.权重函数并不是“最优”的。

%

%大部分函数来自mu-tools,一些来自lmi-tools。mu-tools和lmi-tools均包含在RCT

%v3.0.1中。

%-Jorgen Johnsen 14.12.06

%-------------------------------------------------------------------------

%建立子系统

%------------------------------------------------------------------------- %Plant:G=200/((10s+1)(0.05s+1)^2)

%方法1:直接方法,利用mu-tools

G=nd2sys(1,conv([10,1],conv([0.05,1],[0.05 1])),200);

%方法2:control system toolbox

s=tf('s');

Gcst=200/((10*s+1)*(0.05*s+1)^2);

[a,b,c,d]=ssdata(balreal(Gcst));

G=pck(a,b,c,d);

%权重:Ws=(s/M+w0)/(s+w0*A),Wks=1

M=1.5;w0=10;A=1.e-4;

Ws=nd2sys([1/M w0],[1 w0*A]);

Wks=1;

%------------------------------------------------------------------------- %建立广义系统P

%------------------------------------------------------------------------- %方法0:直接方法

%/z1\ /Ws -Ws*G\ /r\

%|z2| =|0 Wks | | |

%\ v/ \I -G / \u/

%传递函数表达方法

Z1=sbs(Ws,mmult(-1,Ws,G));

Z2=sbs(0,Wks);

V=sbs(1,mmult(-1,G));

P0=abv(Z1,Z2,V);

%通常情况下P0并不是最小实现,所以需要降阶

[a,b,c,d]=unpck(P0);

[ab,bb,cb,db]=ssdata(balreal(minreal(ss(a,b,c,d))));

P0=pck(ab,bb,cb,db); %此时得到变量为System类型

%------------------------------------------------------------------------- %建立广义系统P

%------------------------------------------------------------------------- %方法1:直接方法

%/z1\ /W1 -W1*G\ /r\

%|z2| =|0 W2 | | |

%\ v/ \I -G / \u/

%子系统的ss实现

[A,B,C,D]=unpck(G);

[A1,B1,C1,D1]=unpck(Ws);

[A2,B2,C2,D2]=unpck(Wks);

%计算不同子系统的输入、输出变量的个数

n1=size(A1,1);[q1,p1]=size(D1);

n2=size(A2,1);[q2,p2]=size(D2);

n=size(A,1);[q,p]=size(D);%原文此处为[p,q]=size(D);

%全系统的ss实现

Ap=[A1 zeros(n1,n2) -B1*C;

zeros(n2,n1) A2 zeros(n2,n);

zeros(n,n1) zeros(n,n2) A];

Bp=[B1 -B1*D;

zeros(n2,p) B2;

zeros(n,p) B];

Cp=[C1 zeros(q1,n2) -D1*C;

zeros(q2,n1) C2 zeros(q2,n);

zeros(q,n1) zeros(q,n2) -C];

Dp=[D1 -D1*D;

zeros(q2,p) D2;

eye(p) -D];

%得到均衡实现形式,以减少可能产生的计算问题

[Apb,Bpb,Cpb,Dpb]=ssdata(balreal(ss(Ap,Bp,Cp,Dp)));

P1=pck(Apb,Bpb,Cpb,Dpb); %P1与P0数值相近,但符号有差别%-------------------------------------------------------------------------

%建立广义系统P

%-------------------------------------------------------------------------

%方法2:利用sysic函数

systemnames='G Ws Wks';

inputvar='[r(1);u(1)]';%所有输入均为标量,r(2)为两维信号outputvar='[Ws;Wks;r-G]';

input_to_G='[u]';

input_to_Ws='[r-G]';

input_to_Wks='[u]';

sysoutname='P2';

cleanupsysic='yes';

sysic

%-------------------------------------------------------------------------

%建立广义系统P

%-------------------------------------------------------------------------

%方法3:利用sconnect函数

inputs='r(1);u(1)';

outputs='Ws;Wks;e=r-G';

K_in=[];%无控制器

G_in='G:u';

Ws_in='Ws:e';

Wks_in='Wks:u';

[P3,r]=sconnect(inputs,outputs,K_in,G_in,G,Ws_in,Ws,Wks_in,Wks);

%-------------------------------------------------------------------------

%建立广义系统P

%-------------------------------------------------------------------------

%方法4:利用iconnect函数

%注意1:不再使用mu-tools System表达形式

%注意2:iconnet函数仅适用于Robust Control Toolbox v3.0.1及以上版本r=icsignal(1);

u=icsignal(1);

ws=icsignal(1);

wks=icsignal(1);

e=icsignal(1);

y=icsignal(1);

M=iconnect;

M.Input=[r;u];

M.Output=[ws;wks;e];

M.Equation{1}=equate(e,r-y);

M.Equation{2}=equate(y,ss(A,B,C,D)*u);

M.Equation{3}=equate(ws,ss(A1,B1,C1,D1)*e);

M.Equation{4}=equate(wks,ss(A2,B2,C2,D2)*u);

[ab,bb,cb,db]=ssdata(balreal(M.System));

P4=pck(ab,bb,cb,db);

%-------------------------------------------------------------------------

%控制器的设计

%-------------------------------------------------------------------------

%下面使用的方法均基于广义系统P的System矩阵表达形式

%选择你喜欢的控制器设计方法和广义系统P

%选择广义系统P

P=P1; %P=P0;P=P1;P=P2;P=P3;P=P4;

%然后设置一些参数(测量变量个数,输入变量个数,gamma限制)nmeas=1;nu=1;gmn=0.5;gmx=20;tol=0.001;

%控制器设计:选择你喜欢的设计方法,不需要的注释掉

[K,CL,gopt]=hinfsyn(P,nmeas,nu,gmn,gmx,tol);

[gopt,K]=hinflmi(P,[nmeas,nu],0,tol); CL=starp(P,K,nmeas,nu);

[gopt,K]=hinfric(P,[nmeas,nu],gmn,gmx);CL=starp(P,K,nmeas,nu);

%利用RCT v3.0.1进行控制器的设计

%通常不需要系统的传递函数表达式,但更需要ss类型

[a,b,c,d]=unpck(G); Gcst=ss(a,b,c,d);

[a,b,c,d]=unpck(Ws); Wscst=ss(a,b,c,d);

[a,b,c,d]=unpck(Wks); Wkscst=ss(a,b,c,d);

[K,CL,gopt]=mixsyn(Gcst,Wscst,Wkscst,[]);

[a,b,c,d]=ssdata(balreal(K)); K=pck(a,b,c,d);

[a,b,c,d]=ssdata(balreal(CL)); CL=pck(a,b,c,d);

%-------------------------------------------------------------------------

%分析结果

%-------------------------------------------------------------------------

%注意:此处使用mu-tools函数。也可以使用control toolbox指令,例如用series 和

%feedback进行子系统连接,sigma或freqresp,svd和bode画奇异值,step和lsim 分析

%时域响应

%画(Weighted)闭环系统的奇异值

w=logspace(-4,6,50);

CLw=vsvd(frsp(CL,w));

figure(1)

vplot('liv,m',CLw)

title('singular values of weighted closed loop system')

%得到传递函数矩阵

[type,out,in,n]=minfo(G);

I=eye(out);

S=minv(madd(I,mmult(G,K))); %灵敏度函数

T=msub(I,S); %补灵敏度函数

KS=mmult(K,S); %G的输入

GK=mmult(G,K); %回路传递函数

%频域的奇异值

Sw=vsvd(frsp(S,w));

Tw=vsvd(frsp(T,w));

Kw=vsvd(frsp(K,w));

KSw=vsvd(frsp(KS,w));

GKw=vsvd(frsp(GK,w));

%画奇异值

%注意:如果愿意的话,可以将vplot用plot代替,单位是dB。

figure(2)

vplot('liv,lm',Sw,'-',Tw,'--',GKw,'-.');

title('\sigma(S(jw))(solid),\sigma(T(jw))(dashed) and \sigma(GK(jw))(dashdot),') xlabel('Frequency [rad/sec]');ylabel('Amplitude')

figure(3)

vplot('liv,lm',Kw)

title('\sigma(K(jw))')

xlabel('Frequency [rad/sec]');ylabel('Amplitude')

%是否满足设计要求?

Sd=minv(Ws); Sdw=vsvd(frsp(Sd,w)); %期望的灵敏度

KSd=minv(Wks); KSdw=vsvd(frsp(KSd,w)); %期望的输出

figure(4)

vplot('liv,lm',Sw,'-',Sdw,'--');

title('\sigma(S(jw))(solid) and \sigma(Ws^{-1}(jw))(dashed),')

xlabel('Frequency [rad/sec]');ylabel('Amplitude')

figure(5)

vplot('liv,lm',KSw,'-',KSdw,'--');

title('\sigma(KS(jw))(solid) and \sigma(Wks^{-1}(jw))(dashed),')

xlabel('Frequency [rad/sec]');ylabel('Amplitude')

%最后,阶跃响应

reference=1;tfinal=1;step=0.01;

y=trsp(T,reference,tfinal,step);

u=trsp(KS,reference,tfinal,step);

figure(6)

subplot(2,1,1)

vplot('iv,d',y)

title('Step response');ylabel('y')

subplot(2,1,2)

vplot('iv,d',u)

ylabel('y');xlabel('time')

MATLAB中产生高斯白噪声

MATLAB中产生高斯白噪声,涉及到awgn和wgn函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或 'linear'。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或 'complex'。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER 以瓦特为单位。 注释 1. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。 2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。 3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。 0 dBm = 1 mW 10 dBm = 10 mW 20 dBm = 100 mW 也可直接用randn函数产生高斯分布序列,例如: 程序代码 y=randn(1,2500); y=y/std(y);

鲁棒控制

鲁棒控制理论中的H∞控制理论 (浙江大学宁波理工学院信息科学与工程分院自动化) 【摘要】首先简要的介绍了鲁棒控制中的H∞控制理论,并把其发展分为两个阶段,而后就上当已存在的H∞控制的主要成果进行了讨论和归纳,还指出了H∞控制理论尚未解决的问题。 【关键词】H∞控制理论;非线性系统;时滞;范数 1.概述 鲁棒控制(Robust Control)方面的研究始于20世纪50年代。在过去的20年中,鲁棒控制一直是国际自控界的研究热点。所谓鲁棒性,是指标称系统所具有的某一种性能品质对于具有不确定性的系统集的所有成员均成立,如果所关心的是系统的稳定性,那么就称该系统具有鲁棒稳定性;如果所关心的是用干扰抑制性能或用其他性能准则来描述的品质,那么就称该系统具有鲁棒性能。主要的鲁棒控制理论有:Kharitonov区间理论;H∞控制理论;结构奇异值理论u理论; 鲁棒控制理论是分析和处理具有不确定性系统的控制理论,包括两大类问题:鲁棒性分析及鲁棒性综合问题。鲁棒性分析是根据给定的标称系统和不确定性集合,找出保证系统鲁棒性所需的条件;而鲁棒性综合(鲁棒控制器设计问题)就是根据给定的标称模型和不确定性集合,基于鲁棒性分析得到的结果来设计一个控制器,使得闭环系统满足期望的性能要求。 2.H∞控制理论出现的背景及意义 1981年,加拿大著名学者Zames在其论文中引入了H∞范数作为目标函数进行优化设计,标志着H∞控制理论的诞生。Zames考虑了这样一个单入单出( SISO)系统的设计问题: 假设干扰信号属于某一有限能量的已知信号集,要求设计一个反馈控制器,使闭环系统稳定,且干扰对系统的影响最小。要解决这样的问题就必须在能够使闭环系统稳定的所有控制器中选出一个控制器使之相应的灵敏度函数的H∞范数最小。 虽然Zames 首先提出了H∞最优化问题,但是他没能给出行之有效的解法。

利用Matlab作方差分析

利用Matlab作方差分析 例1(单因素方差分析)一位教师想要检查3种不同的教学方法的效果,为此随机地选取水平相当的15位学生。把他们分为3组,每组5人,每一组用一种方法教学,一段时间以后,这位教师给15位学生进行统考,成绩见下表1。问这3种教学方法的效果有没有显著差异。表1 学生统考成绩表 Matlab中可用函数anova1(…)函数进行单因子方差分析。 调用格式:p=anova1(X) 含义:比较样本m×n的矩阵X中两列或多列数据的均值。其中,每一列表示一个具有m个相互独立测量的独立样本。 返回:它返回X中所有样本取自同一总体(或者取自均值相等的不同总体)的零假设成立的概率p。 解释:若p值接近0(接近程度有解释这自己设定),则认为零假设可疑并认为至少有一个样本均值与其它样本均值存在显著差异。 Matlab程序: Score=[75 62 71 58 73;81 85 68 92 90;73 79 60 75 81]’; P=anova1(Score) 输出结果:方差分析表和箱形图 ANOVA Table Source SS df MS F Prob>F Columns 2 Error 12 Total 14 由于p值小于,拒绝零假设,认为3种教学方法存在显著差异。

例2(双因素方差分析)为了考察4种不同燃料与3种不同型号的推进器对火箭射程(单位:海里)的影响,做了12次试验,得数据如表2所示。表2 燃料-推进器-射程数据表 在Matlab中利用函数 anova2函数进行双因素方差分析。 调用格式:p=anova2(X,reps) 含义:比较样本X中两列或两列以上和两行或两行以上数据的均值。不同列的数据代表因素A的变化,不同行的数据代表因素B的变化。若在每个行-列匹配点上有一个以上的观测量,则参数reps指示每个单元中观测量的个数。 返回:当 reps=1(默认值)时,anova2将两个p值返回到向量p中。 H0A:因素A的所有样本(X中的所有列样本)取自相同的总体; H0B:因素B的所有样本(X中的所有行样本)取自相同的总体。当reps>1时,anova2还返回第三个p值: H0AB:因素A与因素B没有交互效应。 解释:如果任意一个p值接近于0,则认为相关的零假设不成立。 Matlab程序:disp1=[ ; ; ; ]’; p=anova2(disp1,1) 输出结果:方差分析表ANOVA Table Source SS df MS F Prob>F Columns 3 Rows 2 Error 6 12 Total 11

matlab实现:常见的离散时间信号

1. 单位抽样序列,或称为离散时间冲激,单位冲激: ? ??=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ? ??01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。 );,1(N ones x = 3.正弦序列 )(cos )(0φω+=n A n x 这里, ,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( 6. 随机序列 长度为N 的随机序列 基本数学函数参考教材P69页以及随后的使用说明。 注意使用行向量,特别是冒号运算符。 举例,长度为N 的实指数序列在MATLAB 中实现: n a x N n .^1 :0=-= 1. 单位采样 长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:

u=[1 )1,1(-N zeros ]; 延迟M 个采样点的长度为N 的单位采样序列ud(n)(M

鲁棒控制系统设计

鲁棒控制设计报告 学院 专业 报告人

目录 1 绪论 (2) 1.1控制系统设计背景 (2) 1.2本文主要工作分配 (3) 2 一级倒立摆模型建立 (4) 2.1一级倒立摆的工作原理 (4) 2.2一级倒立摆的数学模型 (4) 3 H∞鲁棒控制器设计 (6) 3.1基于Riccati方程的H∞控制 (7) 3.2基于LMI的H∞控制 (7) 4 一级倒立摆系统的仿真 (9) 4.1一级倒立摆控制系统设计 (9) 4.2闭环控制系统仿真及分析 (10) 5 结论 (13)

1 绪论 1.1控制系统设计背景 一级倒立摆系统是一个典型非线性多变量不稳定系统,在研究火箭箭身的姿态稳定控制、机器人多自由度运动稳定设计、直升机飞行控制等多种领域中得到了广泛的应用,因此以倒立摆作为被控对象进行控制方法的研究具有重要的现实意义。为解决一级倒立摆系统的非线性、强耦合、多变量、自然不稳定问题,本文利用H∞鲁棒控制实现对一级倒立摆的控制。 Mg 图1.1 一级倒立摆系统结构图 本文采用的直线一级倒立摆的基本系统如图1.1所示,它是由沿直线导轨运动的小车以及一端固定于小车上的材质均匀的摆杆组成,它是一个不稳定的系统,当倒立摆出出现偏角θ后,如果不给小车施加控制力,倒立摆会倾倒。所以本文采用H∞鲁棒控制方法的目的是通过调节水平力F的大小控制小车的运动,使倒立摆处于竖立的垂直位置。控制指标为:倒立摆系统的从初始状态调节到小车停留在零点、并使摆杆的摆角为0的稳定状态。

1.2本文主要工作分配 第一章:对一级倒立摆系统的特点、结构以及控制要求进行阐述。 第二章:根据一级倒立摆的结构,利用机理建模法建立被控对象的精确数学模型,并在系统平衡点处进行线性化,得到系统简化的状态方程。 第三章:首先H∞鲁棒控制的基本原理,然后分别利用Riccati方程和LMI 方法设计H∞状态反馈控制器。 第四章:首先使用MATLAB计算基于Riccati方程的H∞状态反馈控制器和基于LMI的H∞状态反馈控制器,然后进行闭环控制系统的仿真并控制系统的性能分析。 第五章:对本次设计进行总结。

方差分析matlab实现

方差分析matlab实现 一、单因素分析 单因素方差分析的命令为:p=anoval(x,group)) 数据x是一个向量,从第1个总体的样本到第r个总体的样本一次排序,group 是一个与x有相同长度的向量,表示x中的元素是如何分组的,可以用同一个整数代表同一个组也可以用相同的字符代表相同的一个组。 Anoval还给出了两幅图表:一个是标准的方差分析表;一个是x中各组的盒子图,如果盒子图的中心线差别很大,则对应的F值很大,相应的概率值(p值)也小。 零假设为各样本具有相同的均值,如果p值接近于零,则拒绝零假设。 例 1 设有三台机器, 用来生产规格相同的铝合金薄板,取样测量薄板的厚度精确至千分之一厘米. 得结果如下表所示. 表8-1A 铝合金板的厚度 这里, 试验的指标是薄板的厚度,机器为因素, 不同的三台机器就是这个因素的三个不同的水平. 如果假定除机器这一因素外, 材料的规格、操作人员的水平等其它条件都相同,这就是单因素试验. 试验的目的是为了考察各台机器所生产的薄板的厚度有无显著的差异, 即考察机器这一因素对厚度有无显著的影响. 如果厚度有显著差异, 就表明机器这一因素对厚度的影响是显著的。 该问题单因素方差分析调用程序如下: 解:chengxu6 x=[0.236 0.238 0.248 0.245 0.243 0.257 0.253 0.255 …

0.254 0.261 0.258 0.264 0.259 0.267 0.262]; group=[1 1 1 1 1 2 2 2 2 2 3 3 3 3 3]; p=anova1(x,group); x1=x(1:5);x2=x(6:10);x3=x(11:15); 判断效应值,得如下结果 ? Source SS df MS F Prob>F ? ------------------------------------------------------ ? Groups 0.00105 2 0.00053 32.92 1.34305e-005 ? Error 0.00019 12 0.00002 ? Total 0.00125 14 a =0.0113 0.0027 0.0087 a 为效应向量,显然对于此问题效应越小越好,所以第二台机器比较好。 例 某食品公司对一种食品设计了四种新包装. 为了考察哪种包装最受欢迎, 选了十个有近似相同销售量的商店作试验, 其中两种包装各指定两个商店销售, 另两种包装各指定三个商店销售. 在试验期中各商店的货架排放位置、空间都尽量一致, 营业员的促销方法也基本相同. 观察在一定时期的销售量, 数据如表7.1.1所示: 表7.1.1 销售量 在本例中, 我们要比较的是四种包装的销售量是否一致, 为此把包装类型看成是一个因子, 记为因子A , 它有四种不同的包装, 就看成是因子A 的四个水平, 记为4321,,,A A A A .一般将第i 种包装在第j 个商店的销售量记为 i ij m j i x ,,2,1;4,3,2,1,Λ== (在本例中,2,3,3,24321====m m m m ). 由于商店间的差异已被控制在最小的范围内, 因此一种包装在不同商店里

常用信号的MATLAB表示

5 常用信号的MATLAB表示5.1单位冲激函数、单位冲激序列 示例7: t = -5:0.01:5; y = (t==0); subplot(121); plot(t, y, 'r'); n = -5:5; x = (n==0); subplot(122); stem(n, x); 图5 运行结果如图5所示。

程序说明: (1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。这样得到的向量x也是1×11数组,且正好就是单位冲激序列。 (2)在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在信号的表示和运算中,这一点请务必注意;只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。 (3)单位冲激函数的实现方法实际上与单位冲激序列是完全相同的,都是用序列表示。只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。 由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。 % delta.m function [x, n] = delta(n1,n2,k) % 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2

白噪声的测试MATLAB程序

白噪声的测试MATLAB程序 学术篇 2009-11-13 22:18:03 阅读232 评论0 字号:大中小订阅 clear; clc; %生成各种分布的随机数 x1=unifrnd(-1,1,1,1024);%生成长度为1024的均匀分布 x2=normrnd(0,1,1,1024);%生成长度为1024的正态分布 x3=exprnd(1,1,1024);%生成长度为1024的指数分布均值为零 x4=raylrnd(1,1,1024);%生成长度为1024的瑞利分布 x5=chi2rnd(1,1,1024);%生成长度为1024的kaifang分布%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的均值 m1=mean(x1),m2=mean(x2),m3=mean(x3),m4=mean(x4),m5=mean(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的方差 v1=var(x1),v2=var(x2),v3=var(x3),v4=var(x4),v5=var(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的自相关函数 figure(1);title('自相关函数图'); cor1=xcorr(x1);cor2=xcorr(x2);cor3=xcorr(x3);cor4=xcorr(x4);cor5=xcorr(x5); subplot(3,2,1),plot(1:2047,cor1);title('均匀分布自相关函数图'); subplot(3,2,2),plot(1:2047,cor2);title('正态分布'); subplot(3,2,3),plot(1:2047,cor3);title('指数分布'); subplot(3,2,4),plot(1:2047,cor4);title('瑞利分布'); subplot(3,2,5),plot(1:2047,cor5);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的概率密度函数 y1=unifpdf(x1,-1,1); y2=normpdf(x2,0,1); y3=exppdf(x3,1); y4=raylpdf(x4,1); y5=chi2pdf(x5,1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的频数直方图 figure(2); subplot(3,2,1),hist(x1);title('均匀分布频数直方图'); subplot(3,2,2),hist(x2,[-4:0.1:4]);title('正态分布'); subplot(3,2,3),hist(x3,[0:.1:20]);title('指数分布'); subplot(3,2,4),hist(x4,[0:0.1:4]);title('瑞利分布'); subplot(3,2,5),hist(x5,[0:0.1:10]);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的概率密度估计 figure(3);

多元方差分析matlab程序

x=[1.7541 13.95 -0.4048 1.4666 0.013394 2.0081 24.02 0.2926 1.1369 0.006832 0.1431 13.29 -1.1024 0.0833 0.098995 0.7571 21.54 0.4785 0.7129 0.0183 0.0001 12.19 -0.1576 0.1084 0.076041 1.5481 16.86 0.0295 -0.2196 0.002411 0.1601 17.17 0.2114 -0.1427 0.126538 1.5111 16.34 0.1295 -0.3673 0.06839 1.1721 16.93 0.5895 -0.1423 0.081091 0.3351 14.31 1.5193 0.4275 0.040945 0.1051 13.18 -0.0401 -0.7828 0.000214 1.5481 15.1 0.181 -0.2239 0.028667 0.0001 11.58 -0.4348 0.0059 0.053359 0.3251 12.95 -1.1025 0.4149 0.134351 0.4581 32.38 -0.3326 -3.4022 0.002839 2.0681 1 3.96 -2.0022 2.0934 0.090616 1.7841 14.75 -1.7051 -1.4627 0.06561 1.0541 17.14 -0.3084 - 2.6986 0.002113 1.5511 1 2.82 -0.6163 3.8799 0.012266 1.2361 16.22 - 2.1802 1.3637 0.086214 2.2401 15.97 -1.4668 8.3393 0.005284 ] x =1.7541 13.9500 -0.4048 1.4666 0.0134 2.0081 24.0200 0.2926 1.1369 0.0068 0.1431 13.2900 -1.1024 0.0833 0.0990 0.7571 21.5400 0.4785 0.7129 0.0183 0.0001 12.1900 -0.1576 0.1084 0.0760 1.5481 16.8600 0.0295 -0.2196 0.0024 0.1601 17.1700 0.2114 -0.1427 0.1265 1.5111 16.3400 0.1295 -0.3673 0.0684 1.1721 16.9300 0.5895 -0.1423 0.0811 0.3351 14.3100 1.5193 0.4275 0.0409 0.1051 13.1800 -0.0401 -0.7828 0.0002 1.5481 15.1000 0.1810 -0.2239 0.0287 0.0001 11.5800 -0.4348 0.0059 0.0534 0.3251 12.9500 -1.1025 0.4149 0.1344 0.4581 32.3800 -0.3326 -3.4022 0.0028 2.0681 1 3.9600 -2.0022 2.0934 0.0906 1.7841 14.7500 -1.7051 -1.4627 0.0656 1.0541 17.1400 -0.3084 - 2.6986 0.0021 1.5511 1 2.8200 -0.6163 3.8799 0.0123 1.2361 16.2200 - 2.1802 1.3637 0.0862 2.2401 15.9700 -1.4668 8.3393 0.0053 >> x'

实验1 常见离散信号的MATLAB产生和图形显示

实验1 常见离散信号的MATLAB 产生和图形显示 一、实验目的:加深对常用离散信号的理解 二、实验原理: 1.单位抽样序列:???=01)(n δ 00 ≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n ?δ即:? ??=?01)(k n δ 0≠=n k n 2.单位阶越序列:???0 1 )(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。(1,)x ones N = 3.正弦序列:)/2sin()(?π+=Fs fn A n x 在MATLAB 中 ) /***2sin(*1 :0fai Fs n f pi A x N n +=?= 4.复正弦序列:n j e n x ?=)( 在MATLAB 中 ) **exp(1 :0n w j x N n =?= 5.指数序列:n a n x =)( 在MATLAB 中 n a x N n .^1:0=?= 三、实验内容: 1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 2、讨论正弦序列、复指数序列的性质: (1)绘出信号()zn x n e =,当1126z j π=?+、1126z j π=+、112 z =、62πj z +=、6π j z =时 信号的实部和虚部图;当6 π j z =时信号的周期为多少?

(2)绘出信号() 1.5sin(2*0.1)x n n π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。 3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc 函数,并绘图。 四、实验要求: 1、预先阅读MATLAB 基础; 2、讨论复指数序列的性质。

白噪声产生程序

第二章的白噪声产生程序 例2.2 用乘同余法产生(见光盘FLch2bzsheg2.m) ①编程如下: A=6; x0=1; M=255; f=2; N=100;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声') ②程序运行结果如图2.6所示。 图2.6 采用MA TLAB产生的(-1,+1)均匀分布的白噪声序列 ③产生的(-1,1)均匀分布的白噪声序列 在程序运行结束后,产生的(-1,1)均匀分布的白噪声序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):

v2 = -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 *另外,书中图2.3白噪声的产生如下: 显然,只要在例2.2程序的初始化部分中给N=300,f=6,运行程序就可以得到如图2.3所示的(-3,3)的白噪声过程. ①编程如下: A=6; x0=1; M=255; f=6; N=300;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')

origin方差分析

实验六 《实验数据的方差分析》 一、实验目的 1. 了解方差分析原理。 2. 掌握实验数据方差分析的计算机操作方法。 3. 分析运算结果,对实验结果做出正确解释,以掌握方差分析的运用。 二、方差分析简介 设A 因素有n 个水平,分别记为A 1、A 2、…、A n ,每个水平重复进行m 次试验,总共进行了n ×m 次试验,结果记为x ij (i=1,2,…,n; j= 1,2,…,m)。 则总均值: 11 1n m ij i j x x n m ===×∑∑ 某水平实验结果的平均值: 1 1m i i j j x x m ==∑ 总偏差平方和Q T : 2 2 11112 2 11 1 ()[()() ()() n m n m T ij ij i i i j i j n m n ij i i i j i E A Q x x x x x x x m x x Q Q ========?=?+?=?+?=+∑∑∑∑∑∑∑]x 上式中Q E 为组内偏差平方和,即每个水平下各实验结果与该水平平均值之差的平方和。 Q E 反映误差的大小,故又称为误差平方和。Q A 为组间偏差平方和,它反映水平的改变对试验结果的影响。 Q A 事实上反映了因素对试验结果的影响,故又称为因素偏差平方和。 各偏差平方和的自由度(变量的总个数):

组内偏差平方和的自由度: (1E f n m n n m )=×?=? 组间偏差平方和的自由度: 1A f n =? 总偏差平方和的自由度: 1T f n m =×? 方差与偏差平方和的关系为: 2 Q S f = 组内方差: 2E E E E Q Q S f n m n ==×? 组间方差: 21 A A A A Q Q S f n = =? 总方差: 21 T T T T Q Q S f n m = =×? 方差分析指导思想就是根据偏差平方和的加和性,总偏差平方和可以分解成为组间偏差平方和与组内偏差平方和,前者反映了因素对试验结果的影响,后者反映了误差对试验结果的影响。根据数学原理对组间偏差平方和与组内偏差平方和进行合理的比较,就能分析出因素对试验结果的影响程度、性质。 令: 221(1) A A E E Q S n F Q S n m ?==? 1. F 值应接近于1。如果F 比1大得多,表明组间方差比组内方差大得多。 2. 如果F 0.01(f A ,f E )>F ≥ F 0.05(f A ,f E ) ,由于F ≥ F 0.05(f A ,f E ) 出现的概率只有5

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数

现代通信原理作业一 姓名:张英伟学号:8036 班级:13级理工部3班 利用matlab完成: ●产生正弦波信号、均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦 波信号上,绘出波形。 ●分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,绘出波 形。 一、白噪声区别及产生方法 1、定义: 均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。 高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。 2、matlab仿真函数: rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式: z2=a+(b-(a))*rand(m,n)............(公式1) randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生均值为0、方差为1的正态分布白噪声,即N(0,12)。利用公式: z1=a+b*randn(1,n).................(公式2) 可以产生均值为a,方差为b2 高斯白噪声,即N(a,b2)。 二、自相关函数与功率谱密度之间的关系 1、功率谱密度:每单位频率波携带的功率,这被称为信号的功率谱密度。 2、自相关函数:描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度。 3、维纳-辛钦定理: 由于平均值不为零的信号不是平方可积的,所以在这种情况下就没有傅里叶变换。幸运的是维纳-辛钦定理提供了一个简单的替换方法,如果信号可以看作是平稳随机过程,那么功率谱密度就是信号自相关函数的傅里叶变换。 4、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)

鲁棒控制理论综述

鲁棒控制理论综述 作者学号: 摘要:本文首先介绍鲁棒控制理论涉及的两个基本概念(不确定性和鲁棒)和发展过程,然 H控制理论,最后指出鲁棒控制研后叙述鲁棒控制理论中两种主要研究方法:μ理论、∞ 究的问题和扩展方向。 H控制理论 关键词:鲁棒控制理论,μ理论,∞ 一、引言 自从系统控制(Systems and Control)作为一门独立的学科出现,对于系统鲁棒性的研究也就出现了。这是由这门学科的特色和研究对象决定的。对于世界上的任何系统。由于系统本身复杂性或是人们对其认识的不全面,在系统建立模型时,很难用数学语言完全描述刻画。在这样的背景下,鲁棒性的研究也就自然而然地出现了。 二、不确定性与鲁棒 1、不确定性 谈到系统的鲁棒性,必然会涉及系统的不确定性。由于控制系统的控制性能在很大程度上取决于所建立的系统模型的精确性,然而,由于种种原因实际被控对象与所建立的模型之间总存在着一定的差异,这种差异就是控制系统设计所面临的不确定性。这种不确定性通常分为两类:系统内部的不确定性和系统外部的不确定性。这样,就需要一种能克服不确定性影响的控制系统设计理论。这就是鲁棒控制所要研究的课题。 2、鲁棒 “鲁棒”一词来自英文单词“robust”的音译,其含义是“强壮”或“强健”。所谓鲁棒性(robustness),是指一个反馈控制系统在某一特定的不确定性条件下具有使稳定性、渐近调节和动态特性这三方面保持不变的特性,即这一反馈控制系统具有承受这一类不确定性的能力。具有鲁棒性的控制系统称为鲁棒控制系统。在工程实际控制问题中,系统的不确定性一般是有界的,在鲁棒控制系统的设计中,先假定不确定性是在一个可能的范围内变化,然后在这个可能的变化范围内进行控制器设计。鲁棒控制系统设计的思想是:在掌握不确定性变化范围的前提下,在这个界限范围内进行最坏情况下的控制系统设计。因此,如果设计的控制系统在最坏的情况下具有鲁棒性,那么在其他情况下也具有鲁棒性。 三、发展历程 鲁棒控制系统设计思想最早可以追溯到1927年Black针对具有摄动的精确系统的大增益反馈设计。由于当时不知道反馈增益和控制系统稳定性之间的确切关系,所以设计出来的控制系统往往是动态不稳定的。早期的鲁棒研究主要集中在Bode图,1932年Nyquist提出了基于Nyquist曲线的频域稳定性判据,使得反馈增益和控制系统稳定性之间的关系明朗化。1945年Bode讨论了单输入单输出(SISO)反馈系统的鲁棒性,提出了利用幅值和相位稳定裕度来得到系统能容许的不确定范围。这些方法主要用于单输入单输出系统而且这些关于鲁棒控制的早期研究主要局限于系统的不确定性是微小的参数摄动情形,尚属灵敏度分析的范畴,从数学上说是无穷小分析思想,并且只是停留在理论上。20世纪六七十年代,鲁棒控制只是将SISO系统的灵敏度分析结果向MIMIO进行了初步的推广[1],与此同时,状态空间理论引入控制论后,系统控制取得了很大的发展,鲁棒问题也显得更加重要,其中就要提到两篇对现代鲁棒控制理论的建立有重要影响的文章:一篇是Zames在1963年关于小增益定理的论文[2],另一篇是1964年Kalman关于单入单输出系统LQ调节器稳定裕量分析的研究报告[3]。鲁棒控制这一术语第一次在论文中出现是在1971年Davion的论文[4],而首先将鲁棒控制写进论文标题的是Pearson等人于1974年发表的论文[5]。当然,鲁棒控制能够

利用Matlab作方差分析

利用Matlab作方差分析 例1 (单因素方差分析)一位教师想要检查3种不同的教学方法的效果,为此随机地选取水平相当的15位学生。把他们分为3组,每组5人,每一组用一种方法教学,一段时间以后,这位教师给15位学生进行统考,成绩见下表1。问这3种教学方法的效果有没有 显著差异。表1学生统考成绩表 Matlab中可用函数anova1(??函数进行单因子方差分析。 调用格式:p=anova1(X)含义:比较样本m X n的矩阵X中两列或多列数据的均值。 其中,每一列表示一个具有m个相互独立测量的独立样本。 返回:它返回X中所有样本取自同一总体(或者取自均值相等的不同总体)的零假设成立的概率p。 解释:若p值接近0 (接近程度有解释这自己设定),则认为零假设可疑并认为至少 有一个样本均值与其它样本均值存在显著差异。Matlab程序:Score=[75 62 71 58 73;81 85 68 92 90;73 79 60 75 81] ' ; P=a no va输出结果:方差分析表和箱形图ANOVA Table Source SS df MS F Prob>F Columns 604.9333 2 302.4667 4.2561 0.040088 Error 852.8 12 71.0667 Total 1457.7333 14 由于p值小于0.05,拒绝零假设,认为3种教学方法存在显著差异。

例2 (双因素方差分析) 为了考察4种不同燃料与3种不同型号的推进器对火箭射程 (单位:海里)的影响,做了 12次试验,得数据如表 2所示。表2燃料-推进器-射程数据 表 在Matlab 中利用函数anova2函数进行双因素方差分析。 调用格式:p=anova2(X,reps ) 含义:比较样本X 中两列或两列以上和两行或两行以上 数据的均值。不同列的数据代表因素 A 的变化,不同行的数据代表因素 B 的变化。若在每 个行-列匹配点上有一个以上的观测量,则参数 reps 指示每个单元中观测量的个数。 返回:当reps=1 (默认值)时,anova2将两个p 值返回到向量p 中。 HOA : 因素A 的所有样本(X 中的所有列样本)取自相同的总体; H0B :因素B 的所有样本 (X 中的所有行样本)取自相同的总体。 当reps>1时,anova2还返回第三个p 值: H0AB :因素A 与因素B 没有交互效应。 解释:如果任意一个p 值接近于0,则认为相关的零假设不成立。 Matlab 程序: disp 仁[58.2 56.2 65.3;49.1 54.1 51.6;60.1 70.9 39.2;75.8 58.2 48.7] ;p=a no va2(disp‘ 输出结果:方差分析表 ANOVA Table Source SS df MS F Prob>F Colu mns 157.59 3 52.53 0.43059 0.73875 Rows 223.8467 2 111.9233 0.91743 0.44912 Error 731.98 6 12 1.9967 Total 1113.4167 1 1 由于燃料和推

常见连续信号的MATLAB表示

实验名称:常见连续信号的MATLAB 表示 报告人: 姓名班级学号 一、实验目的 1、熟悉常见连续时间信号的意义、特性及波形; 2、学会使用MATLAB 表示连续时间信号的方法; 3、学会使用MATLAB 绘制连续时间信号的波形。 二、实验内容及运行结果 1、运行以上5个例题的程序,保存运行结果。 2、已知信号()t f 的波形如下图所示,试用MATLAB 绘出满足下列要求的信号波形。 <1)()t f -; <2)()2-t f ; <3)()at f <其中a 的值分别为 21= a 和2=a ); <4)? ?? ??+12 1t f 。 第一题 例题1

程序如下: >> t1=-10:0.5:10。 >> f1=sin(t1>./t1。 >> figure(1> >> plot(t1,f1> >> xlabel('取样间隔p=0.5'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。>> t2=-10:0.1:10。 >> f2=sin(t2>./t2。 >> figure(2> >> plot(t2,f2> >> xlabel('取样间隔p=0.1'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。运行结果如下:

f(t)=Sa(t)=sin(t)/t 取样间隔p=0.5 f(t)=Sa(t)=sin(t)/t 取样间隔p=0.1例题2 程序如下: >> syms t >> f=sin(t>/t。 >> ezplot(f,[-10,10]>运行结果如下:

sin(t)/t t 例题3: 程序如下: >> t=-1:0.01:4。 >> t0=0。 >> ut=stepfun(t,t0>。>> plot(t,ut> >> axis([-1,4,-0.5,1.5]>运行结果如下:

相关主题