mdscl.m
来自「线性时变系统控制器设计的工具包」· M 代码 · 共 41 行
M
41 行
function vlpvnew = mdscl(vlpv,vd,nmeas,nctrl)% vlpvnew = mdscl(vlpv,vd,nmeas,nctrl)% Augment lpv array with parameter-dependent d-scales.% nmeas and nctrl are no longer used; the scales are automatically % augmented with identity blocks to fit the system's input/output dimensions.% If vlpv and/or vd is not VARYING, then the program makes copies.[vtyp,nrows,ncols,npts] = minfo(vlpv);if vtyp ~= 'vary' npts = 1; [nrows,ncols] = size(vlpv);end[styp,no,ni,nx] = minfo(xtracti(vlpv,1,1));[dtyp,nr,nc,nd] = minfo(vd);if dtyp ~= 'vary' nd = 1;endviv = getiv(vlpv);if isempty(viv) viv = getiv(vd);endif (npts ~= nd) & (min(npts,nd) > 1) error('Inconsistent number of systems & scales')else npts = max(nd,npts);endvlpvnew = zeros(npts*nrows,ncols);for k = 1:npts dl = daug(xtracti(vd,k,1),eye(no-nr)); dr = daug(minv(xtracti(vd,k,1)),eye(ni-nc)); vlpvnew((k-1)*nrows+1:k*nrows,:) = mmult(dl,xtracti(vlpv,k,1),dr);endif ~isempty(viv) vlpvnew = vpck(vlpvnew,viv);end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?