?? lpvrunnew.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% Choose method:% 'sqlf': single quadratic Lyapunov function synthesis% 'pdlf': parameter dependent Lyapunov function synthesisif ~exist('method') method = 'pdlf';end% Solve LMIscommandstring = '[gam1,xmat1,ymat1,xyopt1] = lpvsolnew(vlpv1,dim';if method(1:4) == 'pdlf' [fparm,gparm,gradf,gradg] = calcbasis(vparm,basisfile); fgparm = abv(fparm,gparm); gradfg = abv(gradf,gradg); commandstring = [commandstring ',vnu,fgparm,gradfg'];endif exist('gamwt1') commandstring = [commandstring ',gamwt1'];endif exist('slow1') commandstring = [commandstring ',slow1'];endif exist('xyinit1') commandstring = [commandstring ',xyinit1'];endcommandstring = [commandstring ');'];disp(commandstring);eval(commandstring);% If solution is found, form the controller & closed-loop systemif isempty(xyopt1) returnelseif method(1:4) == 'sqlf' [vctrl1,vclp1] = lpvsynnew(vlpv1,dim,gam1,xmat1,ymat1);else [vctrl1,vclp1] = lpvsynnew(vlpv1,dim,gam1,xmat1,ymat1,fgparm);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 + -