基于LMI的控制系统设计、分析及MATLAB仿真程序.zip

  • zyq201904
    了解作者
  • matlab
    开发工具
  • 460KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 6
    下载次数
  • 2021-03-12 21:11
    上传日期
《基于LMI的控制系统设计、分析及MATLAB仿真》书籍对应各章节的程序,有需要的自取
基于LMI的控制系统设计、分析及MATLAB仿真程序.zip
  • 基于LMI的控制系统设计、分析及MATLAB仿真程序
  • chap7
  • chap7_1obv.m
    838B
  • chap7_2obv.m
    1.3KB
  • chap7_1sim.mdl
    28.4KB
  • chap7_2ctrl.m
    1.3KB
  • chap7_2input.m
    625B
  • chap7_1plant.m
    779B
  • chap7_2plant.m
    1.1KB
  • chap7_2plot.m
    992B
  • chap7_2sim.mdl
    32.5KB
  • chap7_2LMI.m
    186B
  • chap7_1plot.m
    293B
  • chap7_1LMI.m
    172B
  • chap5
  • chap5_2plot.m
    201B
  • lqg_file.mat
    500B
  • chap5_2ctrl.m
    1.1KB
  • chap5_2plant.m
    840B
  • chap5_1sim.mdl.r2014a
    29.3KB
  • chap5_1plant.m
    878B
  • chap5_2LMI.m
    3.1KB
  • chap5_2sim.mdl
    39.6KB
  • anti_file.mat
    209B
  • chap5_1ctrl.m
    861B
  • chap5_2sim.mdl.r2014a
    35.6KB
  • chap5_2cmp.m
    687B
  • chap5_1sim.mdl
    33.6KB
  • chap5_1plot.m
    223B
  • chap5_1LQG.m
    643B
  • chap2
  • chap2_4plant.m
    811B
  • chap2_3LMI.m
    436B
  • chap2_1sim.mdl
    33.3KB
  • chap2_1LMI.m
    322B
  • chap2_3plot.m
    389B
  • chap2_4plot.m
    427B
  • chap2_4sim.mdl
    28KB
  • chap2_1plant.m
    760B
  • chap2_3plant.m
    811B
  • chap2_2ctrl.m
    735B
  • chap2_4LMI.m
    436B
  • chap2_2sim.mdl
    23.1KB
  • chap2_3sim.mdl
    28KB
  • chap2_2LMI.m
    358B
  • chap2_1sim.mdl.r2012a
    23.2KB
  • chap2_1plot.m
    291B
  • chap2_4ctrl.m
    1.1KB
  • chap2_3ctrl.m
    952B
  • chap2_1ctrl.m
    641B
  • chap2_4_LMI.m
    436B
  • chap2_2plot.m
    329B
  • chap2_3sim.mdl.autosave
    28KB
  • chap2_2plant.m
    760B
  • chap6
  • chap6_1obv.m
    828B
  • chap6_1plant.m
    696B
  • LMI_file.mat
    331B
  • chap6_3LMI.m
    538B
  • chap6_3plot.m
    581B
  • chap6_1LMI.m
    269B
  • chap6_2ctrl.m
    810B
  • chap6_3sim.mdl
    27.6KB
  • chap6_2plant.m
    696B
  • chap6_2sim.mdl
    29.9KB
  • chap6_2obv.m
    814B
  • chap6_3plant.m
    734B
  • chap6_2plot.m
    657B
  • chap6_3ctrl.m
    608B
  • chap6_1plot.m
    483B
  • chap6_1sim.mdl
    26.6KB
  • chap6_3obv.m
    786B
  • chap8
  • chap8_2plot.m
    565B
  • chap8_1sim.mdl.r2012a
    22.7KB
  • Pfile.mat
    405B
  • chap8_1plot.m
    107B
  • chap8_2sim.mdl
    29.5KB
  • chap8_2input.m
    588B
  • chap8_3sim.mdl.r2012a
    23.7KB
  • chap8_1plant.m
    804B
  • chap8_3LMI.m
    472B
  • chap8_2plant.m
    804B
  • chap8_2LMI.m
    341B
  • chap8_4plant.m
    175B
  • chap8_4.m
    1.4KB
  • chap8_3sim.mdl
    28.4KB
  • chap8_1input.m
    588B
  • chap8_3ctrl.m
    1.4KB
  • chap8_2dyLMI.m
    384B
  • chap8_3plot.m
    608B
  • chap8_2sim.mdl.r2012a
    25.1KB
  • chap8_1sim.mdl
    26.9KB
  • chap8_2ctrl.m
    1.3KB
  • chap8_3plant.m
    1KB
  • chap11
  • chap11_1plot.m
    435B
  • chap11_1plant.m
    811B
  • chap11_1sim.mdl
    33.3KB
  • chap11_1LMI.m
    341B
内容介绍
% Generic antiwindup LMI program clear all; close all; % Dimension defination np=2; % plant state nc=3; % controller state nu=1; % controller out nw=2; % exogenous input nz=1; % performence out naw=0; % compensator state ncl=np+nc; nv=nu+nc; npc=np+nc; n=np+nc+naw; m=ncl+nu+nw+nz; % Plant defination Ap=[0 1;-1 -10]; Bpu=[0;1]; Cpy=[1 0]; Dpyu=0; Bpw0=Bpu; Bpr=zeros(2,1); Bpw=[Bpw0 Bpr]; Dpyw0=1; Dpyr=0; Dpyw=[Dpyw0 Dpyr]; % error performance Cpz=Cpy; Dpzu=Dpyu; Dpzw=Dpyw-[0 1]; % other performance nx=2; %状态维数 ny=1; %输出维数 sys=ss(Ap,Bpu,Cpy,Dpyu);%in state space without noise %Used in lqi Q=[5 0 0; 0 5 0; 0 0 60]; %Used in lqi for x and xi R1=0.001; N=0; K=lqi(sys,Q,R1,N); Kx=K(1:nx); Ki=K(nx+1:nx+ny); Plant=ss(Ap,[Bpu Bpw0],Cpy,[Dpyu Dpyw0]); %in state space with noise Qn=100;Rn=100;Nn=0; [kalmf,L]=kalman(Plant,Qn,Rn,Nn); Ac=[Ap-Bpu*Kx-L*Cpy+L*Dpyu*Kx -Bpu*Ki+L*Dpyu*Ki; zeros(ny,nx) zeros(ny,ny)]; Bcy=[L;-eye(ny)]; Bcwr=[zeros(nx,1);eye(ny)]; Bcw=[zeros(3,1) Bcwr]; Cc=-K; Dcy=0; Dcw=[0 0]; deltau=inv(eye(1)-Dcy*Dpyu); deltay=inv(eye(1)-Dpyu*Dcy); Acl=[Ap+Bpu*deltau*Dcy*Cpy Bpu*deltau*Cc; Bcy*deltay*Cpy Ac+Bcy*deltay*Dpyu*Cc]; Cclz=[Cpz+Dpzu*deltau*Dcy*Cpy Dpzu*deltau*Cc]; Cclu=[deltau*Dcy*Cpy deltau*Cc]; Bclq=[-Bpu*deltau;-Bcy*deltay*Dpyu]; Bclw=[Bpw+Bpu*deltau*(Dcw+Dcy*Dpyw);Bcw+Bcy*deltay*(Dpyw+Dpyu*Dcw)]; Dclzq=-(Dpzu*deltau); Dclzw=Dpzw+Dpzu*deltau*(Dcw+Dcy*Dpyw); Dcluw=deltau*(Dcw+Dcy*Dpyw); Dcluq=eye(1)-deltau; Bclv=[zeros(np,nc) Bpu*deltau; eye(nc) Bcy*deltay*Dpyu]; Dclzv=[zeros(nz,nc) Dpzu*deltau]; Dcluv=[zeros(nu,nc) deltau]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ga=sdpvar(1); R11=sdpvar(np); R12=sdpvar(np,nc); R22=sdpvar(nc); R=[R11 R12;R12' R22]; Openloop=[R11*Ap'+Ap*R11 Bpw R11*Cpz';Bpw' -ga*eye(nw) Dpzw';Cpz*R11 Dpzw -ga*eye(nz)]; Closedloop=[R*Acl'+Acl*R Bclw R*Cclz';Bclw' -ga*eye(nw) Dclzw';Cclz*R Dclzw -ga*eye(nz)]; F=set(Openloop<0)+set(Closedloop<0)+set(R>0); %First step, LMI to get R and gama solvesdp(F,ga); gama=double(ga); R=double(R) Q=R; U=sdpvar(nu); Au=sdpvar(naw+nv,naw+nu); ga=sdpvar(1); fai=[(Acl*R)+(Acl*R)' Bclq*U+Q*Cclu' Bclw Q*Cclz'; (Bclq*U+Q*Cclu')' Dcluq*U-U+(Dcluq*U-U)' Dcluw U*Dclzq'; Bclw' Dcluw' -ga*eye(nw) Dclzw'; (Q*Cclz')' (U*Dclzq')' Dclzw -ga*eye(nz)]; % H1=[Bclv' zeros(naw,nv)]; %naw=0 H1=Bclv'; H2=Dcluv'; H3=Dclzv'; H=[H1 H2 zeros(naw+nv,nw) H3]; % GU=[zeros(naw,nu+nw+nz);zeros(nu,n) eye(nu) zeros(nu,nw+nz)]; %naw=0 GU=[zeros(nu,n) eye(nu) zeros(nu,nw+nz)]; Mu=0; Stro=-2*(1-Mu)*U+(Dcluq*U+[zeros(nu,nc) eye(nu)]*Au)+(Dcluq*U+[zeros(nu,nc) eye(nu)]*Au)'; Anti=fai+GU'*Au'*H+H'*Au*GU; Fa=set(Stro<0)+set(Anti<0); %Second step, LMI to get Au and UU solvesdp(Fa,ga); gama=double(ga) Au=double(Au); UU=double(U); Daw=Au*inv(UU) Daw1=Daw(1:2,:); Daw2=Daw(3,:); save anti_file Daw;
评论
    相关推荐