幂法求矩阵特征值课设
目 录
1 题目背景与目的.................................................... 1
1.1 设计背景 .................................................... 1 1.2 设计目的 .................................................... 1 2 设计要求和内容.................................................... 1
2.1 设计内容 .................................................... 1 2.2 设计要求 .................................................... 1 3 设计步骤.......................................................... 2
3.1 连续系统离散化的算法和计算公式 .............................. 2 3.2 幂法迭代.................................................... 2
3.3 稳定性分析 .................................................. 2 4 理论计算.......................................................... 3 5 算法框图.......................................................... 5
5.1离散化算法框图............................................... 5 5.2 幂法算法程序框图 ............................................ 6 6 仿真程序.......................................................... 6 7 结果分析.......................................................... 8 8 结论.............................................................. 9 参考文献............................................................ 9
1 题目背景与目的
1.1 设计背景
本次课程设计是以自动控制理论、现代控制理论、MATLAB及应用等知识为基础,求连续系统对应的离散化的系统,并用计算系数阵按模最大的特征根法判别离散系统的稳定性。
1.2 设计目的
专业方向仿真课程设计的目的是使学生在现有的控制理论的基础上,学会用MATLAB语言编写控制系统设计与分析的程序,通过上机实习加深对课堂所学知识的理解,掌握一种能方便地对系统进行离散化的实现和分析系统的稳定性的设计的工具。将所学知识灵活运用,应用于实践。
2 设计要求和内容
2.1 设计内容
以下面的系统为例,进行计算
2210
B0A020
140,1,c111 将系统进行离散化,并分析运算结果。
2.2 设计要求
1 在理论上对连续系统离散化推导出算法和计算公式 2 画出计算机实现算法的框图 3 编写程序并调试和运行 4 分析运算结果
5 其中幂法迭代精度为ep=0.001,离散系统展开项数为20
6 程序应具有一定的通用性,对不同参数能有兼容性。
3 设计步骤
3.1 连续系统离散化的算法和计算公式
x(k1)G*x(k)H*u(k)y(k)c*x(k)D*u(k)
其中,Ge,H(eATdt)*B,CC.DD
AT
T
Ge
AT
adi(SIA)
L[(SIA)]
SIA
1
1
3.2 幂法迭代
(1)取初始向量u
(0)
(例如取u
(0)
(1,1,...1)T),置精度要求ep,置k1
(k)
(2)计算v(k)Au(k1),mkmax(v(k)),u(k)v(k)/mk
kk1k
(3)若mmep,则停止计算(m作为绝对值最大特征值,u
作
为相应的特征向量)否则置kk1,转(2)
3.3 稳定性分析
若系统的最大特征根小于1,则该离散系统稳定,否则不稳定。
4 理论计算
5 算法框图
5.1离散化算法框图
图5-1 离散化算法框图
5.2 幂法算法程序框图
图5-2 幂法算法程序框图
6 仿真程序
clear all
%系统参数的输入 DIS1 = 'Please input A:'; disp(DIS1); A = input('');
DIS2 = 'Please input B:';
disp(DIS2);
B = input('');
DIS3 = 'Please input C:'; disp(DIS3); C = input('');
DIS4 = 'Please input D:'; disp(DIS4); D = input('');
DIS5 = 'Please input T:'; disp(DIS5); T = input(''); %将系统离散化 n = length(A); I = eye(n);
syms s;
G = ilaplace(inv(s*eye(n)-A)); G=subs(G,'t','T'); syms t;
H = int(exp(A*t),t,0,T)*B; H=subs(H,'t','T');
disp('该系统离散后的系统方程为:') disp(' x(k+1) = G * x(k) + H * u(k)') disp(' y(k) = C * x(k) + D * u(k)') disp('其中,') G H C D
%计算系统的稳定性 ep = 0.001; u = ones(n,1); m = 0; p = m+1;
G = subs(G,T);
while abs(p-m) > ep m = p; v = G*u;
vmax = max(abs(v));
p = vmax;
u = v/p; end
lamda =p if(m>=1)
fprintf(' 该系统是不稳定的!') else
fprintf(' 该系统稳定!')
End
7 结果分析
Pleaseinput :A
[-2 2 -1;0 -2 0;1 -4 0]
Pleaseinput :B
[0;0;1]
PleaseinputC :
[1 -1 1]
Pleaseinput D:
PleaseinputT :
0.1
xk1 G* xkHuk
该系统离散后的系统方程为:
其中,
1/eTT/eT
0G =
T/eT
(2*T)/eT1/e2*T
2/e2*T2/eT(2*T)/eT
0 1/eTT/eTT/eT
yk C* xkD uk
TeTeT1H = 0
TeT2*eT2
C = 1,1,1
D = 0
Lamda=0.90488
该系统稳定!
通过MATLAB程序的结果可以看出,该离散系统的最大特征根为0.90488,小于1,所以该离散系统是稳定的。
8 结论
本次课程设计,是将连续系统采取适当的采样周期,进行离散化。通过计算系数阵按模最大的特征根法,来进行判别离散系统的稳定性,若该系统的最大特征根小于1,则离散系统稳定,否则不稳定。
参考文献
[1]孙增晰.计算机辅助设计.北京:清华大学出版社 [2]邢丽君.线性代数.北京:中国电力出版社,2006 [3]刘豹.现代控制理论.北京:机械工业出版社,2006
[4]王海英.控制系统的MATLAB仿真与设计.北京:高等教育出版社,2009