⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpvrun.m

📁 线性时变系统控制器设计的工具包
💻 M
字号:
% extract data for desired grid pointsif exist('vWhx') vWh = xtract(vWhx,vindx); endif exist('vd0x') vd0 = xtract(vd0x,vindx); endvlpv = xtract(vlpvx,vindx);vf16 = xtract(vf16x,vindx);vnu = xtract(vnux,vindx);vparm = xtract(vparmx,vindx);% start with initial scaling vd0 or just use unscaled plant?if exist('vd0') vlpv1 = mdscl(vlpv,vd0,nmeas,nctrl);else vlpv1 = vlpv;end% 'sqlf': single quadratic Lyapunov function synthesis% 'pdlf': parameter dependent Lyapunov function synthesis% 'pdlfb': PDLF with "blending" (supply xmat01,ymat01,bparm,gradb)% 'pdlfg': PDLF with parameter-varying gamma (supply gamwt)% 'pdlfr': PDLF (reduced-order) via state feedback (supply nsf)% others: 'pdlfbr', 'pdlfgr'if ~exist('method') method = 'pdlf';end% 'slow' controllerif ~exist('opt') if exist('maxe') & exist('gest')  opt = [maxe; gest(1:length(gest))]; else  opt = []; endend% varying gamma weightif ~exist('gamwt') gamwt = [];end% Initial guess?if ~exist('xyinit') xyinit = [];end% Solve LMIs, form controller & closed-loop systemif strcmp(method,'sqlf') [gam1,xmat1,ymat1,xyopt1] = lpvsol(vlpv1,nmeas,nctrl,opt,xyinit); if isempty('gam1')  return end [vctrl1,vclp1] = vlpvsyn(vlpv1,nmeas,nctrl,gam1,xmat1,ymat1);else [fparm,gparm,gradf,gradg] = calcbasis(vparm,basisfile); if strcmp(method,'pdlfb')  [gam1,xmat1,ymat1,xyopt1] = lpvsolb(vlpv1,nmeas,nctrl,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg,xmat01,ymat01,bparm,gradb); elseif strcmp(method,'pdlfbr')  [gam1,xmat1,ymat1,xyopt1] = lpvsolbr(vlpv1,nmeas,nctrl,nsf,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg,xmat01,ymat01,bparm,gradb); elseif strcmp(method,'pdlfg')  [gam1,xmat1,ymat1,xyopt1] = lpvsolg(vlpv1,nmeas,nctrl,gamwt,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg); elseif strcmp(method,'pdlfgr')  [gam1,xmat1,ymat1,xyopt1] = lpvsolgr(vlpv1,nmeas,nctrl,nsf,gamwt,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg); elseif strcmp(method,'pdlfr')  [gam1,xmat1,ymat1,xyopt1] = lpvsolr(vlpv1,nmeas,nctrl,nsf,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg); else  [gam1,xmat1,ymat1,xyopt1] = lpvsol(vlpv1,nmeas,nctrl,...	opt,xyinit,vnu,fparm,gparm,gradf,gradg); end if isempty('xyopt1')  return end [vctrl1,vclp1] = lpvsyn(vlpv1,nmeas,nctrl,gam1,xmat1,ymat1,fparm,gparm);endvhinf1 = vlpvhinf(vclp1);disp(['LPV gamma = ' num2str(pkvnorm(gam1))]);disp(['Max H-inf norm = ' num2str(pkvnorm(vhinf1))]);clear vlpv1 vctrl1 vclp1clear vWhx vlpvx vparmx vf16x vnux vd0x

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -