[已答复] 程序报错

[复制链接]
''Cathé 发表于 2015-5-19 17:59:00
A=[0,1;-1,1];
B=[0 2]';
C=[1 0];
D=0
Q=1;
R=2
yr=2;
E=B*inv(R)*B';
F=C'*inv(Q)*C;
P=are(A,E,F);
K=-inv(R)*B'*P;
M=A-E*P;
y=poly(M);
r=roots(y);
S=E*inv(P*E-A')*C'*Q*yr;
I=0:15;
U=1*ones(size(I));
[Y,X]=Isim(A+B*K,S,C,D,U,I,X0);
g=inv(P*B*inv(R)*B'-A')*C'*Q*yr;
for j=1;length(I)

    U(j)=-inv(R)*B'*(P*U(j,:)'-g);end
plot(X)


1 条回复


maozedongren 发表于 2015-5-20 23:32:18
你这是要干啥?
按照书上的公式进行的吧?看看matlab控制工具箱再弄吧。
给你个程序,看看。
clc;
clear;
%----------------------------
%定义系统
A=[0,1;-1,1];B=[0 2]';C=[1 0];D=0;
%---------------------------------
%建立模型
sys=ss(A,B,C,D);
%-------------------------------
%判断能空性
con=ctrb(A,B);
if rank(con)==2
    disp('能控');
else
    disp('不能控');
end
%------------------------------
%给定性能指标
Q=[1 0; 0 1];
R=2;
%------------------------------
%求最优值
[K,P,E]=lqr(A,B,Q,R);
%------------------------------
%反馈的系统
sys_new=ss(A-B*K,B,C,D);
figure(1)
step(sys_new);
gtext('反馈后')
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表