广义特征向量计算方法

代数重数与几何重数(对于单个特征值而言)

代数重数:相同特征值的个数。
几何重数:特征子空间的维数为几何重数,因为空间是几何里的概念, r a n k ( λ I − A ) = n − α rank(λI-A)=n-α rank(λIA)=nα中的 α α α值,几何重数 ≤ 代数重数。
在几何重数 = 代数重数时,A可以变换为对角阵,但两者不相同时,A只可以变换为约当阵,这里就需要使用广义特征向量。

广义特征向量计算

r a n k ( λ I − A ) = n − α rank(λI-A)=n-α rank(λIA)=nα,代数重数为 k k k,则对于 λ λ λ这个特征值有 α α α个线性不相关的向量,就有 α α α个约当小块,通过这 α α α个向量来构建其余的 k − α k-α kα个向量,设为 X 1 、 X 2 、 . . . 、 X α X_{1}、X_{2}、...、X_{α} X1X2...Xα。将需要构建的 k − α k-α kα个向量分成 α α α组,每组基于一个 X i X_{i} Xi构建。
例如 r a n k ( λ I − A ) = 10 − 2 rank(λI-A)=10-2 rank(λIA)=102,代数重数 k = 5 k=5 k=5,则可将5分为2组,可以为 S 1 = 3 , S 2 = 2 S_{1}=3,S_{2}=2 S1=3S2=2
公式:
V S 1 − 1 = − ( λ I − A ) V S 1 V S 1 − 2 = − ( λ I − A ) V S 1 − 1 V 1 = ( − 1 ) S 1 − 1 ( λ I − A ) S 1 − 1 V 3 = X 1 . . . . . . . . . . . . . V_{S_{1}-1}=-(λI-A)V_{S_{1}}\\ V_{S_{1}-2}=-(λI-A)V_{S_{1}-1}\\ V_{1}=(-1)^{S_{1}-1}(λI-A)^{S_{1}-1}V_{3}=X_{1}\\ ............. VS11=(λIA)VS1VS12=(λIA)VS11V1=(1)S11(λIA)S11V3=X1.............

我们先求出 S 1 S_{1} S1组对应的三个列向量, S 1 S_{1} S1组以 X 1 X_{1} X1为基向量,构建 V 3 , V 2 , V 1 V_{3},V_{2},V_{1} V3V2V1,根据
( − 1 ) S 1 − 1 ( λ I − A ) S 1 − 1 V 3 = X 1 (-1)^{S_{1}-1}(λI-A)^{S_{1}-1}V_{3}=X_{1} (1)S11(λIA)S11V3=X1得到最大下标的 V 3 V_{3} V3(最高下标的 V 3 V_{3} V3和最低下标的 V 1 V_{1} V1才与 X 1 X_{1} X1有直接关系),然后根据 V 2 = − ( λ I − A ) V 3 V_{2}=-(λI-A)V_{3} V2=(λIA)V3 V 1 = − ( λ I − A ) V 2 = X 1 V_{1}=-(λI-A)V_{2}=X_{1} V1=(λIA)V2=X1
得到 V 2 V_{2} V2 V 1 V_{1} V1,同理得到 S 2 S_{2} S2组下的两个列向量 W 2 W_{2} W2 W 1 W_{1} W1,则Q=[ V 1 V_{1} V1 V 2 V_{2} V2 V 3 V_{3} V3 W 1 W_{1} W1 W 2 W_{2} W2 ] 。
证明与例题详见广义特征向量的构造

简易方法求广义特征向量

公式:

λ 1 P 1 − A P 1 = 0 λ 1 P 2 − A P 2 = P 1 λ 1 P 3 − A P 3 = P 2 . . . . . . . . . λ_{1}P_{1}-AP_{1}=0\\ λ_{1}P_{2}-AP_{2}=P_{1}\\ λ_{1}P_{3}-AP_{3}=P_{2}\\ ......... λ1P1AP1=0λ1P2AP2=P1λ1P3AP3=P2.........
Q=[ P 1 P_{1} P1 P 2 P_{2} P2 P 3 P_{3} P3 P 4 P_{4} P4 P 5 P_{5} P5 P 6 P_{6} P6]

  • 10
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
广义预测控制(Generalized Predictive Control,GPC)是一种基于预测模型的控制方法,常用于非线性和时变系统的控制。 在Matlab中,可以使用gpc函数进行广义预测控制。以下是一个示例代码: ```matlab %% 定义系统模型 T = 0.1; % 采样周期 A = [1 T; 0 1]; % 状态转移矩阵 B = [0.5*T^2; T]; % 输入矩阵 C = [1 0]; % 输出矩阵 D = 0; % 直接通道矩阵 sys = ss(A,B,C,D,T); % 离散系统模型 %% 设计GPC控制器 N = 10; % 预测步数 M = 3; % 控制步数 Q = 1; % 状态权重系数 R = 1; % 输入权重系数 [K,G] = gpc(sys,N,M,Q,R); % 设计GPC控制器 %% 模拟系统响应 t = 0:T:5; % 时间向量 r = ones(size(t)); % 参考输入信号 [y,t,u] = lsim(sys,r,t); % 系统响应 u_gpc = zeros(size(u)); % GPC控制信号 y_gpc = zeros(size(y)); % GPC控制系统响应 x_hat = [0;0]; % 初始状态估计值 for k = N+1:length(t) yk = y(k-N:k-1); % 当前时刻前N步的系统输出 uk = u(k-M:k-1); % 当前时刻前M步的控制信号 xk_hat = A*x_hat + B*u_gpc(k-1); % 当前时刻状态的估计值 dk = r(k:k+N-1) - yk; % 每个时刻的预测误差 uk_gpc = K*dk + G*xk_hat; % 当前时刻的GPC控制信号 u_gpc(k) = uk_gpc(1); % 取GPC控制信号的第一个分量 y_gpc(k) = C*x_hat + D*u_gpc(k); % 当前时刻GPC控制系统的输出 x_hat = A*x_hat + B*u_gpc(k); % 更新状态估计值 end %% 绘制系统响应和GPC控制结果 figure; plot(t,r,'--',t,y,'-',t,y_gpc,'-.'); xlabel('Time (s)'); ylabel('Output'); legend('Reference','System Response','GPC Control'); ``` 在该示例代码中,首先定义了一个二阶离散系统模型,然后使用gpc函数设计了GPC控制器,最后模拟了系统响应和GPC控制结果,并绘制了相应的图形。需要注意的是,在GPC控制器设计中,需要指定预测步数N、控制步数M、状态权重系数Q和输入权重系数R。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值