实验十四_MATLAB的线性控制系统分析与设计说明

实验十四_MATLAB的线性控制系统分析与设计说明
实验十四_MATLAB的线性控制系统分析与设计说明

实验十四: MATLAB 的线性控制系统分析与设计

一.实验目的

1.熟练掌握线性系统的各种模型描述。

2.熟练掌握模型之间的转换。

二.实验容与步骤

在控制系统分析与设计中,常用状态方程模型来描述一个控制系统,状态方程通常为一阶微分方程

例如,二阶系统 可用状态方程描述如下 其中:

MATLAB 的控制系统工具箱(Control System Toolbox)可以提供对线性系统分析、设计和建模的各种算法。

1.1状态空间描述法

状态空间描述法是使用状态方程模型来描述控制系统,MATLAB 中状态方程模型的建立使用ss 和dss 命令。

语法:

G=ss(a,b,c,d) %由a 、b 、c 、d 参数获得状态方程模型

G=dss(a,b,c,d,e) %由a 、b 、c 、d 、e 参数获得状态方程模型

【例1】写出二阶系统u(t)ωy(t)ωdt

dy(t)2ζdt y(t)

d 2n 2n n 22=+ω+,当ζ=0.707,n ω=1时的状态方程。

zeta=0.707;wn=1;

A=[0 1;-wn^2 -2*zeta*wn];

B=[0;wn^2];

C=[1 0];

D=0;

G=ss(A,B,C,D) %建立状态方程模型

???+=+=Du Cx y Bu Ax x &u (t)2n ωy(t)2n ωd t d y(t)n 2ζ2

d t y(t)2d =+ω+u(t)ω0x x 2ζω10x x 2n 21n 2n 21??????+????????????ω--=??

????&&dt

t dy x t y x )()(21==

a =

x1 x2

x1 0 1

x2 -1 -1.414

b =

u1

x1 0

x2 1

c =

x1 x2

y1 1 0

d =

u1

y1 0

Continuous-time model.

1.2传递函数描述法

MATLAB中使用tf命令来建立传递函数。

语法:

G=tf(num,den) %由传递函数分子分母得出

说明:num为分子向量,num=[b1,b2,…,b m,b m+1];den为分母向量,den=[a1,a2,…,a n-1,a n]。

【例1续】将二阶系统描述为传递函数的形式。

num=1;

den=[1 1.414 1];

G=tf(num,den) %得出传递函数

Transfer function:

1

-----------------

s^2 + 1.414 s + 1

1.3零极点描述法

MATLAB 中使用zpk 命令可以来实现由零极点得到传递函数模型。

语法:

G=zpk(z,p,k) %由零点、极点和增益获得

说明:z 为零点列向量;p 为极点列向量;k 为增益。

【例1续】得出二阶系统的零极点,并得出传递函数。

num=1;

den=[1 1.414 1];

z=roots(num)

p=roots(den)

zpk(z,p,1)

z =

Empty matrix: 0-by-1

p =

-0.7070 + 0.7072i

-0.7070 - 0.7072i

Zero/pole/gain:

1

-------------------

(s^2 + 1.414s + 1)

程序分析:roots 函数可以得出多项式的根,零极点形式是以实数形式表示的。 部分分式法是将传递函数表示成部分分式或留数形式:

k(s)p s r p s r p s r G (s)n

n 2211+-++-+-=Λ 【例1续】将传递函数转换成部分分式法,得出各系数

num=1;

den=[1 1.414 1];

[r,p,k]=residue(num,den)

r =

0 - 0.7070i

0 + 0.7070i

p =

-0.7070 + 0.7072i

-0.7070 - 0.7072i

k =

[]

1.4离散系统的数学描述

1.状态空间描述法

状态空间描述离散系统也可使用ss和dss命令。

语法:

G=ss(a,b,c,d,Ts) %由a、b、c、d参数获得状态方程模型

G=dss(a,b,c,d,e,Ts) %由a、b、c、d、e参数获得状态方程模型说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示。

【例2】用状态空间法建立离散系统。

a=[-1.5 -0.5;1 0];

b=[1;0];

c=[0 0.5];

d=0;

G=ss(a,b,c,d,0.2) %采样周期为0.2s

a =

x1 x2

x1 -1.5 -0.5

x2 1 0

b =

u1

x1 1

x2 0

c =

x1 x2

y1 0 0.5

d =

u1

y1 0

Sampling time: 0.2

Discrete-time model.

2. 脉冲传递函数描述法

脉冲传递函数也可以用tf 命令实现。

语法:

G=tf(num,den,Ts) %由分子分母得出脉冲传递函数

说明:Ts 为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用'z'表示。

【例2续】创建离散系统脉冲传递函数211

20.5z 1.5z 10.5z 0.51.5z z 0.5z

G(z)---+-=+-=。

num1=[0.5 0];

den=[1 -1.5 0.5];

G1=tf(num1,den,-1)

Transfer function:

0.5 z

-----------------

z^2 - 1.5 z + 0.5

Sampling time: unspecified

MATLAB 中还可以用filt 命令产生脉冲传递函数。

语法:

G=filt(num,den,Ts) %由分子分母得出脉冲传递函数

说明:Ts 为采样周期,当采样周期未指明Ts 可以省略,也可以用-1表示,自变量用'z

-1'表示。

【例2续】使用filt 命令产生脉冲传递函数。

num2=[0 0.5];

G2=filt(num2,den)

Transfer function:

0.5 z^-1

-----------------------

1 - 1.5 z^-1 + 0.5 z^-2

Sampling time: unspecified

程序说明:用filt 命令生成的脉冲传递函数的自变量不是z 而是z -1,因此分子应改为

“[0 0.5]”。

3. 零极点增益描述法

离散系统的零极点增益用zpk 命令实现。

语法:

G=zpk(z,p,k,Ts) %由零极点得出脉冲传递函数

【例2续】使用zpk 命令产生零极点增益传递函数。

G3=zpk([0],[0.5 1],0.5,-1)

Zero/pole/gain:

0.5 z

-------------

(z-0.5) (z-1)

Sampling time: unspecified

2线性系统模型之间的转换

在MATLAB5.3版及以前的控制系统工具箱中有各种不同模型转换的函数,如下表 6.1所示为线性系统模型转换的函数。

1. 系统模型的转换

(1) 状态空间模型的获得

由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。

语法:

G=ss(传递函数) %由传递函数转换获得

G=ss(零极点模型) %由零极点模型转换获得

【例3】将系统传递函数转换为状态空间描述。

num=[1 2 5];

den=[3 5 2 1];

G1=tf(num,den)

G=ss(G1)

Transfer function:

s^2 + 2 s + 5

-----------------------

3 s^3 + 5 s^2 + 2 s + 1

a =

x1 x2 x3

x1 -1.667 -0.3333 -0.1667

x2 2 0 0

x3 0 1 0

b =

u1

x1 1

x2 0

x3 0

c =

x1 x2 x3

y1 0.3333 0.3333 0.8333

d =

u1

y1 0

Continuous-time model.

(2) 传递函数的获得

由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。语法:

G=tf(状态方程模型) %由状态空间转换

G=tf(零极点模型) %由零极点模型转换

【例3续】由状态空间描述转换为传递函数。

num=[1 2 5];

den=[3 5 2 1];

G1=tf(num,den);

G=ss(G1);

G2=tf(G)

Transfer function:

0.3333 s^2 + 0.6667 s + 1.667

-----------------------------------

s^3 + 1.667 s^2 + 0.6667 s + 0.3333

(3) 零极点模型的获得

由zpk命令实现将状态空间法、传递函数转换为零极点模型。

语法:

G=zpk(状态方程模型) %由状态方程模型转换

G=zpk(传递函数) %由传递函数转换

【例3续】由状态方程模型转换零极点模型。

num=[1 2 5];

den=[3 5 2 1];

G1=tf(num,den);

G=ss(G1) ;

G3=zpk(G)

Zero/pole/gain:

0.33333 (s^2 + 2s + 5)

-----------------------------------

(s+1.356) (s^2 + 0.3103s + 0.2458)

2.模型参数的获取

语法:

[a,b,c,d]=ssdata(G) %获取状态空间参数[a,b,c,d,e]=dssdata(G) %获取状态空间参数[num,den]=tfdata(G) %获取传递函数参数[z,p,k]=zpkdata(G) %获取零极点参数【例3续】获取各模型的参数

num=[1 2 5];

den=[3 5 2 1];

G1=tf(num,den);

G=ss(G1) ;

[a,b,c,d]=ssdata(G) %获取状态方程参数a =

-1.6667 -0.3333 -0.1667

2.0000 0 0

0 1.0000 0

b =

1

c =

0.3333 0.3333 0.8333

d =

2.2.使用各种分析方法分析系统 已知系统的传递函数为2222)1()(n

n s n s s T s G ωξω?+++= (1) 当1,0,1,4.0,2.0===n T ωξ时在同一窗口脉冲响应曲线

>> wn=1;T=0;

>> for zeta=[0.2 0.4 1]

G=tf(wn^2,[1 2*zeta*wn,wn^2])

impulse(G)

hold on

end

Transfer function:

1

---------------

s^2 + 0.4 s + 1

Transfer function:

1

---------------

s^2 + 0.8 s + 1

Transfer function:

1

-------------

s^2 + 2 s + 1

(2)当时,在同一窗口绘制阶跃响应曲线。

>> wn=1;zeta=0.4;

figure(1)

for T=[0.5 1 2]

>> G1=tf(wn^2,[1 2*zeta*wn,wn^2]);

G2=tf([T 1],1);

G=G1*G2

step(G)

hold on

end

从上图可以看出增加零点后系统响应的变化,T越大,零点越小,则阶跃响应的超

调量加大,上升时间减小,暂态响应速度加快。

绘制零-极点图形,并获得零点和极点:

>> figure(2)

>> pzmap(G)

>> pole(G)

ans =

-0.4000 + 0.9165i

-0.4000 - 0.9165i

>> tzero(G)

ans =

-0.5000

思考题

1.系统的零极点增益模型为,求系统的传递函数模型和状态空间模型。

2.已知系统的传递函数为,当,T=0.5时画出脉冲响应曲线和绘制零极点图形。

线性系统理论Matlab实践仿真报告

线性系统理论Matlab实验报告 1、本题目是在已知状态空间描述的情况下要求设计一个状态反馈控制器,从而使得系统具 有实数特征根,并要求要有一个根的模值要大于5,而特征根是正数是系统不稳定,这样的设计是无意义的,故而不妨设采用状态反馈后的两个期望特征根为-7,-9,这样满足题目中所需的要求。 (1)要对系统进行状态反馈的设计首先要判断其是否能控,即求出该系统的能控性判别矩阵,然后判断其秩,从而得出其是否可控; 判断能控程序设计如下: >> A=[-0.8 0.02;-0.02 0]; B=[0.05 1;0.001 0]; Qc=ctrb(A,B) Qc = 0.0500 1.0000 -0.0400 -0.8000 0.0010 0 -0.0010 -0.0200 Rc=rank(Qc) Rc =2 Qc = 0.0500 1.0000 -0.0400 -0.8000 0.0010 0 -0.0010 -0.0200 得出结果能控型判别矩阵的秩为2,故而该系统是完全可控的,故可以对其进行状态反馈设计。 (2)求取状态反馈器中的K,设的期望特征根为-7,-9; 其设计程序如下: >> A=[-0.8 0.02;-0.02 0]; B=[0.05 1;0.001 0]; P=[-7 -9]; k=place(A,B,P) k = 1.0e+003 * -0.0200 9.0000 0.0072 -0.4500 程序中所求出的k即为所求状态反馈控制器的状态反馈矩阵,即由该状态反馈矩阵所构成的状态反馈控制器能够满足题目要求。 2、(a)要求求该系统的能控型矩阵,并验证该系统是不能控的。

用MATLAB解决线性代数问题实验报告

实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144 实验目的: 学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似 对角化问题,以及解决投入产出分析等应用问题。 实验内容: 矩阵转置:A=[1 2;3 4];B=[4 3;2 1]; >> A',B' ans = 1 3 2 4 ans = 4 3 3 1 矩阵加减:A-B ans= -3 -1 1 3 矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans= 8 5 20 13 ans= 4 6 6 4 矩阵除法:A\B,B./A ans=

-6 -5 5 4 ans= 4 1.5 0.6667 0.25 特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵 ones(m,n)||生成m行n列的元素全为一的矩阵 eye(n)||生成n阶单位矩阵 rand(m,n)||生成m行n列[0 ,1]上均匀分布随 机数矩阵 zeros(2,3) ans = 0 0 0 0 0 0 >> ones(3,3) ans = 1 1 1 1 1 1 1 1 1 >> eye(3)

ans = 1 0 0 0 1 0 0 0 1 >> rand(2,4) ans = Columns 1 through 3 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621 Column 4 0.4565 0.0185 矩阵处理:trace(A)||返回矩阵的迹 diag(A)||返回矩阵对角线元素构成的向量 tril(A)||提取矩阵的下三角部分 triu(A)||提取矩阵的上三角部分 flipud(A)||矩阵上下翻转 fliplr(A)||矩阵左右翻转 reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9]; >> t=trace(A),d=diag(A),u=triu(A)

线性系统理论大作业

目录 题目一 (2) (一)状态反馈加积分器校正的输出反馈系统设计 (2) (1)建立被控对象的状态空间模型,并判断系统性质 (2) (2)状态反馈增益矩阵和积分增益常数的设计 (4) (3)全维观测器设计 (6) (4)如何在闭环调速系统中增加限流环节 (8) (二)二次型最优全状态反馈控制和按负载扰动前馈补偿的复合控制系统设计 (8) (1)线性二次型最优全状态反馈设计 (8) (2)降维观测器设计 (13) 题目二 (15) (1)判断系统是否存在最优控制律 (15) (2)非零给定点的最优控制设计和仿真分析 (16) (3)权矩阵的各权值对动态性能影响分析 (17)

题目一 (一)状态反馈加积分器校正的输出反馈系统设计 (1)建立被控对象的状态空间模型,并判断系统性质 1)画出与题目对应的模拟结构图,如图1所示: 图1原始系统结构图 取状态变量为1x =n ,2x =d I ,3x =d u ,控制输入u=c u 1222212333375375111 T L e la la la s s s C x x T GD GD C x x x x RT T RT K x x u T T ?=-???=--+???=-+?? 将已知参数代人并设输出y=n=1x ,得被控对象的状态空间表达式为 L x Ax Bu ET y Cx =++= 其中,2 37500039.768011=-3.696-17.85727.05600-588.2351 00 T e la la la s C GD C A RT T RT T ???? ? ???????=- -?????? ??????-??? ? ,

Matlab线性代数实验指导书

Matlab线性代数实验指导书 理学院线性代数课程组 二零零七年十月

目录 一、基础知识 (1) 1.1、常见数学函数 (1) 1.2、系统在线帮助 (1) 1.3、常量与变量 (2) 1.4、数组(矩阵)的点运算 (3) 1.5、矩阵的运算 (3) 二、编程 (4) 2.1、无条件循环 (4) 2.2、条件循环 (5) 2.3、分支结构 (5) 2.4、建立M文件 (6) 2.5、建立函数文件 (6) 三、矩阵及其运算 (7) 3.1、矩阵的创建 (7) 3.2、符号矩阵的运算 (11) 四、秩与线性相关性 (14) 4.1、矩阵和向量组的秩以及向量组的线性相关性 (14) 4.2、向量组的最大无关组 (14) 五、线性方程的组的求解 (16) 5.1、求线性方程组的唯一解或特解(第一类问题) (16) 5.2、求线性齐次方程组的通解 (18) 5.3、求非齐次线性方程组的通解 (19) 六、特征值与二次型 (22) 6.1、方阵的特征值特征向量 (22) 6.2、正交矩阵及二次型 (23)

一、基础知识 1.1常见数学函数 函数数学计算功能函数数学计算功能 abs(x) 实数的绝对值或复数的幅值floor(x) 对x朝-∞方向取整acos(x) 反余弦arcsinx gcd(m,n) 求正整数m和n的最大公约数acosh(x) 反双曲余弦arccoshx imag(x) 求复数x的虚部angle(x) 在四象限内求复数x的相角lcm(m,n)求正整数m和n的最小公倍 自然对数(以e为底数) asin(x) 反正弦arcsinx log(x) 常用对数(以 10 为底数) asinh(x) 反双曲正弦arcsinhx log10(x) atan(x) 反正切arctanx real(x) 求复数 x 的实部atan2(x,y) 在四象限内求反正切rem(m,n) 求正整数m和n的m/n之余数atanh(x) 反双曲正切arctanhx round(x) 对x四舍五入到最接近的整数 符号函数:求出 x 的符号ceil(x) 对x朝+∞方向取整 sign(x) conj(x) 求复数x的共轭复数 sin(x) 正弦sinx 反双曲正弦sinhx cos(x) 余弦cosx sinh(x) cosh(x) 双曲余弦coshx sqrt(x) 求实数x的平方根exp(x) 指数函数e x tan(x) 正切tanx fix(x) 对 x 朝原点方向取整 tanh(x) 双曲正切tanhx 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) =-5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 1.2 系统的在线帮助 1.2.1 help 命令: 1.当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2.当想了解某一主题的内容时,如输入: >> help syntax (了解Matlab的语法规定) 3.当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数sqrt的相关信息) 1.2.2 lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 1.3 常量与变量

线性系统理论Matlab实践仿真报告指南

线性系统理论实验报告 学院:电信学院 姓名:邵昌娟 学号:152085270006 专业:电气工程

线性系统理论Matlab实验报告 1、由分析可知系统的状态空间描述,因系统综合实质上是通过引入适当状态反馈矩阵K,使得闭环系统的特征值均位于复平面S的期望位置。而只有当特征根均位于S的左半平面时系统稳定。故当特征根是正数时系统不稳定,设计无意义。所以设满足题目中所需要求的系统的期望特征根分别为λ1*=-2,λ2*=-4。 (a) 判断系统的能控性,即得系统的能控性判别矩阵Q c,然后判断rankQ c,若rank Q c =n=2则可得系统可控;利用Matlab判断系统可控性的程序如图1(a)所示。由程序运行结果可知:rank Q c =n=2,故系统完全可控,可对其进行状态反馈设计。 (b) 求状态反馈器中的反馈矩阵K,因设系统的期望特征根分别为λ1*=-2,λ2*=-4;所以利用Matlab求反馈矩阵K的程序如图1(b)所示。由程序运行结果可知:K即为所求状态反馈控制器的状态反馈矩阵,即由该状态反馈矩阵所构成的状态反馈控制器能够满足题目要求。 图1(a) 系统的能控性图1(b) 状态反馈矩阵 2、(a) 求系统的能控型矩阵Q c,验证若rank Q c

Matlab 使用之线性代数综合实例讲解

一、上机目的 1、培养学生运用线性代数的知识解决实际问题的意识、兴趣和能力; 2、掌握常用计算方法和处理问题的方法; 二、上机内容 1、求向量组的最大无关组; 2、解线性方程组; 三、上机作业 1、设A=[2 1 2 4; 1 2 0 2; 4 5 2 0; 0 1 1 7]; 求矩阵A列向量组的一个最大无关组. >> A=[2 1 2 4;1 2 0 2;4 5 2 0;0 1 1 7] A = 2 1 2 4 1 2 0 2 4 5 2 0 0 1 1 7 >> rref(A) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 所以矩阵A的列向量组的一个最大无关组就是它本身; 2、用Matlab解线性方程组 (1) >> A=[2 4 -6;1 5 3;1 3 2] A = 2 4 -6 1 5 3 1 3 2 >> b=[-4;10;5]

b = -4 10 5 >> x=inv(A)*b x = -3.0000 2.0000 1.0000 >> B=[3 41 -62;4 50 3;11 38 25] B = 3 41 -62 4 50 3 11 38 25 >> c=[-41;100;50] c = -41 100 50 >> x=inv(B)*c x = -8.8221 2.5890 1.9465 3、(选作)减肥配方的实现 设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了20世纪80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少才能全面准确地实现这个营养要求? 四、上机心得体会

线性系统理论

Linear Systems Theory: A Structural Decomposition Approach 线性系统理论: 结构分解法 Ben M. Chen (陈本美) 新加坡国立大学 Zongli Lin(林宗利) 美国弗吉尼亚大学 Yacov Shamash (雅科夫 司马诩) 美国纽约州立大学石溪分校

此书献给我们的家人 前两位作者谨以这中译版献给他们的母校 厦门大学

目录 绪论 1 导论和预览 1.1 背景 1.2 各章预览 1.3 符号和术语 2 数学基础 2.1 导论 2.2 矢量空间和子空间 2.3 矩阵代数和特性 2.3.1 行列式、逆和求导 2.3.2 秩、特征值和约当型 2.3.3 特殊矩阵 2.3.4 奇异值分解 2.4 范数 2.4.1 矢量范数 2.4.2矩阵范数 2.4.3 连续时间信号范数 2.4.4 离散时间信号范数 2.4.5 连续时间系统范数 2.4.6 离散时间系统范数 3 线性系统理论复习 3.1 导论 3.2 动态响应 3.3 系统稳定性 3.4 可控性和可观性 3.5 系统可逆性 3.6 常态秩、有限零点和无限零点3.7 几何子空间 3.8 状态反馈和输出馈入的特性3.9 练习

4 无驱动和/或无检测系统的分解 4.1 导论 4.2 自治系统 4.3 无驱动系统 4.4 无检测系统 4.5 练习 5. 正则系统的分解 5.1 导论 5.2 SISO系统 5.3 严格正则系统 5.4 非严格正则系统 5.5 结构化分解特性的证明 5.6 系统矩阵的Kronecker型和Smith型5.7 离散时间系统 5.8 练习 6 奇异系统的分解 6.1 导论 6.2 SISO奇异系统 6.3 MIMO描述系统 6.4 定理6.3.1的证明和性质 6.5 离散时间奇异系统 6.6 练习 7 双线性变换的结构化映射 7.1 导论 7.2 连续到离散时间系统的映射 7.3 离散时间到连续时间系统的映射7.4 定理7.2.1的证明 7.5 练习 8 系统因子分解 8.1 导论 8.2 严格正则系统 8.3 非严格正则系统 8.4 离散时间系统 8.5 练习 9 通过选择传感器/执行器实现的结构配置9.1 导论 9.2 同时有限和无限零点结构配置 9.2.1 SISO系统 9.2.2 MIMO系统

matlab实验二

实验2 MATLAB数值计算、符号运算功能 一、实验目的 1、掌握建立矩阵、矩阵分析与处理的方法。 2、掌握线性方程组的求解方法。 3、掌握数据统计和分析方法、多项式的常用运算。 4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。 5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。 二、预习要求 (1)复习4、5、6章所讲内容; (2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。 三、实验内容 1、已知 29618 20512 885 A -?? ?? =?? ?? - ?? ,求A的特征值及特征向量,并分析其数学意义。 >> A=[-29,6,18;20,5,12;-8,8,5]; >> [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。 >> A*V ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 >> V*D

ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 经过计算,A*V=V*D 。 2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。 147102581136912A ????=??????,101112789456123B ??????=??????,321654987121110B ??????=?????? 提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。 >> a=[1 4 7 10;2 5 8 11;3 6 9 12] a= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=rot90(a) B = 10 11 12 7 8 9 4 5 6 1 2 3 >>C= rot90(s,3) C= 3 2 1 6 5 4 9 8 7 12 11 10

线性代数Matlab开卷考试

线性代数开卷考试题目Matlab解析过程: 1.习题1第4题(1) >> A=[1,2,0,-1;-1,-4,1,2;1,-4,3,1;2,-10,7,3];B=[-1,3,1,4]'; >> C=[A,B]; >> rank(A) %求系数矩阵的秩 ans = 3 >> rank(C) %求增广矩阵的秩 ans = 3 >> rref(C) %用rref()函数求解,最后一列即为解 ans = 1.0000 0 1.0000 0 1.0000 0 1.0000 -0.5000 0 1.0000 0 0 0 1.0000 4.0000 0 0 0 0 0 说明:如果用用除法求X的值或者用inv()函数求解会出现警告:Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.440892e-18. 而且两者的计算结果都为x = 4.0000 -0.5000 -3.0000 4.0000 原因是:矩阵奇异!所以不能求逆!结果可能不准确!必须换成不用求逆的算法 查阅资料如下: 奇异矩阵的判断方法:首先,看这个矩阵是不是方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。然后,再看此方阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。同时,由|A|≠0可知矩阵A可逆,这样可以得出另外一个重要结论:可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。如果A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。如果A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。 如果A(n×m)为奇异矩阵(singular matrix)<=> A的秩Rank(A) A满秩,Rank(A)=n. 2.(1)当a取值为学号时 >> A=[1,-1,-2,3;1,-3,-6,2;1,5,0,-10;3,1,7,4];B=[0,-1,112,8]'; % 当a取值为学号时>> C=[A,B]; >> rank(A) %求系数矩阵的秩 ans =

线性系统极点配置和状态观测器基于设计(matlab) - 最新版本

一. 极点配置原理 假设原系统的状态空间模型为: ???=+=Cx y Bu Ax x 若系统是完全可控的,则可引入状态反馈调节器,且: 这时,闭环系统的状态空间模型为: ()x A BK x Bv y Cx =-+?? =? 二. 状态观测器设计原理 假设原系统的状态空间模型为: ???=+=Cx y Bu Ax x 若系统是完全可观的,则可引入全维状态观测器,且: ??(y y)??x Ax Bu G y Cx ?=++-??=?? 设?x x x =-,闭环系统的状态空间模型为: ()x A GC x =- 解得: (A GC)t (0),t 0x e x -=≥ 由上式可以看出,在t 0≥所有时间内,如果(0)x =0,即状态估计值x 与x 相等。如果(0)0x ≠,两者初值不相等,但是()A GC -的所有特征值具有负实部,这样 x 就能渐进衰减至零,观测器的状态向量?x 就能够渐进地逼近实际状态向量x 。状态逼近的速度取决于G 的选择和A GC -的特征配置。 三. 状态观测的实现 为什么要输出y 和输入u 对系统状态x 进行重构。 u Kx v =-+

证明 输出方程对t 逐次求导,并将状态方程x Ax Bu =+代入整理,得 2(n 1)(n 2)(n 3)21n n y Cx y CBu CAx y CBu CABu CA x y CBu CABu CA Bu CA x -----=??-=??--=????----=? 将等号左边分别用z 的各分量12,, ,n z z z 表示,有 121(n 1)(n 2)(n 3) 2 n n n y C z y CBu CA z z y CBu CABu x Qx z CA y CBu CABu CA Bu -----?? ???????? -?? ????? ? ? ?????==--==?? ????????????????????----?? ? 如果系统完全能观,则 rankQ n = 即 1?(Q Q)T T x Q z -= (类似于最小二乘参数估计) 综上所述,构造一个新系统z ,它是以原系统的输出y 和输入u ,其输出经过变 换1(Q Q)T T Q -后得到状态向量?x 。也就是说系统完全能观,状态就能被系统的输入输出以及各阶倒数估计出来。 四. 实例 给定受控系统为 再指定期望的闭环极点为12,341,1,2i λλλ*** =-=-±=-,观测器的特征值为 12,33,32i λλ=-=-±,试设计一个观测器和一个状态反馈控制系统,并画出系统 的组成结构图。 []0100000101000100 05 021000x x u y x ???? ????-????=+????????-???? =

线性系统理论作业

《线性系统理论》 设计报告 专业: 学号: 姓名: 教师:

取状态变量为X=[U d,I d,n]T, 则系统的状态空间描述为:{X=AX+Bu+ET l Y=CX 其中A= [?1 T s 0 0 1 T la R ?1 T la ?C e T la R 0 375C T GD2 0] B=[ K s T S ]E=[ ?375 GD2 ] C=[0 0 1 ] 代入数据得:A=[?588.235 0 0 26.709 ?20.833 ?3.678 0 48.821 0 ]B=[ 23529.41 ] 通过matlab检测系统的能控能观性并求出系统的特征值: 对应的matlab程序如下: %原始系统能控能观性判断与特征值求解% A=[-588.235 0 0;26.709 -20.833 -3.678;0 48.821 0]; B=[23529.41 0 0]'; C=[0 0 1]; D=0; disp(eig(A)); % 计算并输出特征值 % sys1=ss(A,B,C,D); Qc=ctrb(A,B); %生成能控性判别矩阵% Qo=obsv(A,C); %生成能观性判别矩阵% if length(A)==rank(Qc) %系统能控性判别% disp('系统完全可控!'); else disp('系统不完全可控!'); end if length(A)==rank(Qo) %系统能观性判别% disp('系统完全可观!'); else disp('系统不完全可观!'); end 运行结果如下: 1.0e+002 * -0.104165000000000 + 0.084297191975771i -0.104165000000000 - 0.084297191975771i -5.882350000000000 系统完全可控! 系统完全可观! 系统特征值实部均为负,由此可知该系统为外部稳定的能控但不能观测系统,设负载转矩为0时,输入为阶跃信号,系统的simulink仿真如下:

论将MATLAB融入《线性代数》

论将MA TLAB融入《线性代数》 郑成勇 (五邑大学数学与计算科学学院广东江门 529020) 摘要探讨如何将ATLAB引入《线性代数》课程,提出了一些个人的看法和主张。 关键词MATLAB线性代数 中图分类号:G64 文献标识码:A Introducing MA TLAB Into Linear Algebra Zheng Chengyong (Dept. of Mathematics & Physics, Wuyi University, Jiangmen , Guangdong ,529020) Abstract In this paper, we discuss how to introduce MA TLAB into course of linear algebra, and put forward some personal ideas and opinions. Keyword MATLAB, Linear Algebra 一、当前主流线性代数教材存在的不足 《线性代数》(以下简称《线代》) 同济版教材[1],书写简洁、体系完整,知识前后联系紧密,环环相扣。从数学角度而言,该书堪称经典,非常符合一般数学老师要求,而且配套的ppt课件也做的很好,也就不难解释该教材为何在全国采用率如此之高了。 但因为该书是给工科学生用的,对工科学生而言,其内容有些过于偏重理论,缺乏必要的应用实例,缺乏与工程实际及工科专业课的联系。如缺乏对工程实际中广泛涉及的超定方程的讨论,对工程应用中较少涉及的欠定方程组的通解问题花费较多笔墨。而且,由于过于强调内容体系的完整以及知识间的逻辑联系,第一章从古古怪怪的逆序数,引出古古怪怪的行列式的定义,到行列式的性质、克拉默法则,还有不少的习题,这需要花费较多的学时来讲授。但行列式不应该是《线代》的重点,《线代》的核心应该是矩阵、线性方程组等,主轴是矩阵的初等行变换。从行列式开始引入不符合先易后难的认知规律,容易使初学者误认为行列式是重点,不利于学生把握《线代》的重点和主轴。 另外,现在流行的教材仍然没有引入科学计算软件,导致学生学完了该课程也难以求解4阶或4阶以上的矩阵问题,无法实现该课程应有的对学生科学计算能力的培养以及该课程在后续课程中的应用。二、引入MATLAB的必要性 1、更新教学内容,加强课程工科特性,需要引入MATLAB 工科《线代》是面向工科学生,内容必须具有工科特性。要使内容具有工科特性,必须适当地引入具体的应用实例。而一般的实际问题,靠手工计算是不现实的,必须借助必要的科学计算软件。而MA TLAB是目前国内外最流行的标准的科学计算软件,借助MA TLAB,许多工程应用问题都可以利用线性代数的有关知识进行建模求解,从而增强《线代》的工科特性。有了实际的应用背景,学生才会真正体会到线性代数“有用”,并掌握具体的应用技巧。 2、提高学生科学计算能力,需要引入MATLAB 科学计算能力是理工科学生理应具备的一种重要能力。那么,什么是科学计算能力?学生的科学计算能力从何而来? 科学计算能力是指的利用现代计算工具(包括硬件和软件)解决教学和科研中计算问题的能力[2]。既然科学计算能力要求学生掌握现代的计算工具,而MA TLAB是目前国内外最流行的标准的科学计算软,那么我们就没有理由仍坚持传统偏重理论的以笔算为主的《线代》课程教学。应将MA TLAB 融入《线代》课程教学中去,让学生在掌握一般的原理方法的基础上,将学生从低级繁琐的初等行列变换中解脱出来,重点培养学

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

线性系统理论MATLAB大作业.(DOC)

兰州理工大学2015级线性系统理论大作业 线性系统理论Matlab 实验报告 1、在造纸流程中,投料箱应该把纸浆流变成2cm 的射流,并均匀喷洒在网状传送带上。为此,要精确控制喷射速度和传送速度之间的比例关系。投料箱内的压力是需要控制的主要变量,它决定了纸浆的喷射速度。投料箱内的总压力是纸浆液压和另外灌注的气压之和。由压力控制的投料箱是个耦合系统,因此,我们很难用手工方法保证纸张的质量。 在特定的工作点上,将投料箱线性化,可以得到下面的状态空间模型: u x x ?? ????+??????-+-=0001.0105.0002.002.08.0. []21,x x y = 其中,系统的状态变量x1=液面高度,x2=压力,系统的控制变量u1=纸浆流量u2=气压阀门的开启量。在上述条件下,试设计合适的状态变量反馈控制器,使系统具有实特征根,且有一个根大于5 解:本题目是在已知状态空间描述的情况下要求设计一个状态反馈控制器,从而使得系统具有实数特征根,并要求要有一个根的模值要大于5,而特征根是正数时系统不稳定,这样的设计是无意义的,故而不妨采用状态反馈后的两个期望特征根为-7,-6,这样满足题目中所需的要求。要对系统进行状态反馈的设计首先要判断其是否能控,即求出该系统的能控性判别矩阵,然后判断其秩,从而得出其是否可控。 Matlab 判断该系统可控性和求取状态反馈矩阵K 的程序,如图1所示,同时求得加入状态反馈后的特征根并与原系统的特征根进行了对比。

图1系统能控性、状态反馈矩阵和特征根的分析程序上述程序的运行结果如图2所示: 图2系统能控性、反馈矩阵和特征根的运行结果

用Matlab学习线性代数_行列式

用Matlab学习线性代数__行列式 实验目的理解行列式的概念、行列式的性质与计算 Matlab函数det 实验内容 前面的四个练习使用整数矩阵,并演示一些本章讨论的行列式的性质。最后两个练习演示我们使用浮点运算计算行列式时出现的不同。 理论上将,行列式的值应告诉我们矩阵是否是奇异的。然而,如果矩阵是奇异的,且计算其行列式采用有限位精度运算,那么由于舍入误差,计算出的行列式的值也许不是零。一个计算得到的行列式的值很接近零,并不能说明矩阵是奇异的甚至是接近奇异的。此外,一个接近奇异的矩阵,它的行列式值也可能不接近零。 1.用如下方法随机生成整数元素的5阶方阵: A=round(10*rand(5)) 和B=round(20*rand(5))-10 用Matlab计算下列每对数。在每种情况下比较第一个是否等于第二个。(1)det(A) ==det(A T) (2)det(A+B) ;det(A)+det(B) (3)det(AB)==det(A)det(B) (4)det(A T B T) ==det(A T)det(B T) (5)det(A-1)==1/det(A) (6)det(AB-1)==det(A)/det(B) > A=round(10*rand(5)); >> B=round(20*rand(5))-10; >> det(A) ans = 5972 >> det(A') ans 5972 >> det(A+B) ans =

36495 >> det(A)+det(B) ans = 26384 >> det(A*B) ans = 4 >> det(A)*det(B) ans = 4 >> det(A'*B') ans = 4 >> det(A')*det(B') ans = 4 >> det(inv(A)) ans = 0.00016745 >> 1/det(A) ans = 0.00016745 >> det(A*inv(B)) ans = 0.29257 >> det(A)/det(B) ans = 0.29257 >> 2.n阶的幻方阵是否奇异?用Matlab计算n=3、4、5、…、10时的det(magic(n))。看起来发生了什么?验证当n=24和25时,结论是否仍然成立。【当n为奇数时,det(magic(n))不为0;当n为偶数时,det(magic(n))为0;】>> det(magic(3)) ans = -360 >> det(magic(4)) ans = >> det(magic(5)) ans = 5070000

线性代数MATLAB仿真实验报告

合肥学院 2018—2019学年第2学期 线性代数及应用 (模块) 实验报告 实验名称:线性代数MATLAB实验 实验类别:综合性 设计性□验证性 专业班级: 17通信工程(2)班 实验时间: 9-12周 组别:第组人数 3人 指导教师:牛欣成绩: 完成时间: 2019年 5 月9日

一. 小组成员 姓名学号具体分工 汪蔚蔚(组长) 1705022025 A报告最后的整合,编写,案例四的计算与应用 以及案例一的计算与证明 陶乐 1 1705022009 C案例二,化学方程式配平问题 程赢妹1505022036 A案例三,应用题灰度值的计算问题 二. 实验目的 1、案例一利用MATLAB进行线性代数计算,求出矩阵B 2、案例二利用MATLAB计算出每一个网格数据的值,然后每一个网格数据的值乘以256以后进行归一化处理,根据每个网格中的灰度值,绘制出灰度图像。 3、案例三利用MATLAB完成对化学方程式进行配平的应用 4、案例四利用MATLAB求极大线性无关组,并表示出其余向量 三. 实验内容 1、案例一: 0,1,0 ,=1,0,0, 0,0,0 A B AB BA A B ?? ?? =?? ?? ?? 已知矩阵和矩阵满足乘法交换律,即且求矩阵。 2、案例二 配平下列化学方程式: 3、案例三: 3*32 0.81.21.70.20.3 0.6021.61.20.6. 1MATLAB 2256MATLAB 给定一个图像的个方向上的灰度叠加值:沿左上方到右 下方的灰度叠加值依次为,,,,;沿右上方到左下 方的灰度叠加值依次为,。,,, )建立可以确定网络数据的线性方程组,并用求解 )将网络数据乘以,再取整,用绘制该灰度图像

1_用MATLAB处理线性系统数学模型

实验二 用MATLAB 处理线性系统数学模型 [说明] 一个控制系统主要由被控对象、测量装置、控制器和执行器四大部分构成。MATLAB 软件的应用对提高控制系统的分析、设计和应用水平起着十分重要的作用。采用MATLAB 软件仿真的关键问题之一是在MATLAB 软件平台上怎样正确表示被控对象的数学模型。 [实验目的] 1.了解MATLAB 软件的基本特点和功能; 2.掌握线性系统被控对象传递函数数学模型在MATLAB 环境下的表示方法及转换; 3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法; 4. 掌握在SIMULINK 环境下系统结构图的形成方法及整体传递函数的求取方法; 5.了解在MATLAB 环境下求取系统的输出时域表达式的方法。 [实验指导] 一、被控对象模型的建立 在线性系统理论中,一般常用的描述系统的数学模型形式有: (1)传递函数模型——有理多项式分式表达式 (2)传递函数模型——零极点增益表达式 (3)状态空间模型(系统的内部模型) 这些模型之间都有着内在的联系,可以相互进行转换。 1、传递函数模型——有理多项式分式表达式 设系统的传递函数模型为 111011 1......)()()(a s a s a s a b s b s b s b s R s C s G n n n n m m m m ++++++++= =---- 对线性定常系统,式中s 的系数均为常数,且a n 不等于零。 这时系统在MATLAB 中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用num 和den 表示。 num=[b m ,b m-1,…,b 1,b 0] den=[a n ,a n-1,…,a 1,a 0]

用MATLAB处理线性系统数学模型

实验一 用MATLAB 处理线性系统数学模型 [说明] 一个控制系统主要由被控对象、测量装置、控制器和执行器四大部分构成。MATLAB 软件的应用对提高控制系统的分析、设计和应用水平起着十分重要的作用。采用MATLAB 软件仿真的关键问题之一是在MATLAB 软件平台上怎样正确表示被控对象的数学模型。 [实验目的] 1.了解MATLAB 软件的基本特点和功能; 2.掌握线性系统被控对象传递函数数学模型在MATLAB 环境下的表示方法及转换; 3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法; 4. 掌握在SIMULINK 环境下系统结构图的形成方法及整体传递函数的求取方法; 5.了解在MATLAB 环境下求取系统的输出时域表达式的方法。 [实验指导] 一、被控对象模型的建立 在线性系统理论中,一般常用的描述系统的数学模型形式有: (1)传递函数模型——有理多项式分式表达式 (2)传递函数模型——零极点增益表达式 (3)状态空间模型(系统的内部模型) 这些模型之间都有着内在的联系,可以相互进行转换。 1、传递函数模型——有理多项式分式表达式 设系统的传递函数模型为 111011 1......)()()(a s a s a s a b s b s b s b s R s C s G n n n n m m m m ++++++++= =---- 对线性定常系统,式中s 的系数均为常数,且a n 不等于零。 这时系统在MATLAB 中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用num 和den 表示。 num=[b m ,b m-1,…,b 1,b 0] den=[a n ,a n-1,…,a 1,a 0]

实验汇总

《MATLAB语言与应用》实验课报告 学院:信息学院 班级:测控0902 姓名:陈白杨 学号:20092352

《MATLAB 语言与应用》实验课程任务书 一、 实验教学目标与基本要求 上机实验是本课程重要的实践教学环节;实验的目的不仅仅是验证理论知识,更重要的是通过上机实验,加强学生的实验手段与实践技能,掌握应用MATLAB 语言求解问题的方法,培养学生分析问题、解决问题、应用知识的能力和创新精神,全面提高学生的综合素质。 上机实验共8学时。主要实验内容是基于理论课所学知识对课后典型习题进行MATLAB 求解,基本掌握常见数学问题的求解方法与命令调用,更深入地认识和了解MATLAB 语言强大的计算功能。 上机实验最终以书面报告的形式提交,并作为期末成绩考核内容的一部分。 二、 实验内容(8学时) 第一部分MATLAB 语言编程、科学绘图与基本数学问题求解(4学时) 主要内容:掌握MATLAB 语言编程基础、科学绘图方法、微积分问题、线性代数问题等基本数学问题的求解与应用。 练习题: 1、 安装MATLAB 软件,应用demo 命令了解主要功能,熟悉基本功能,会用help 命令。 2、 用MATLAB 语句输入矩阵A 和B ? ? ??? ???? ???=1423 143212344321 A , ? ? ??? ?? ?? ???++++++++++++++++=4j 11j 43j 22j 34j 11j 42j 33j 24j 13j 22j 31j 41j 42j 33j 24j 1B 前面给出的是44?矩阵,如果给出5)6,5(=A 命令将得出什么结果? >> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1] A = 1 2 3 4 4 3 2 1 2 3 4 1 3 2 4 1 >> B=[1+4j,2+3j,3+2j,4+1j;4+1j,3+2j,2+3j,1+4j;2+3j,3+2j,4+1j,1+4j;3+2j,2+3j,4+1j,1+4j] B =

相关文档
最新文档