Mercurial > octave-nkf
comparison scripts/control/base/lqg.m @ 4771:b8105302cfe8
[project @ 2004-02-16 17:45:50 by jwe]
author | jwe |
---|---|
date | Mon, 16 Feb 2004 17:45:50 +0000 |
parents | 22bd65326ec1 |
children | 9f7ef92b50b0 |
comparison
equal
deleted
inserted
replaced
4770:ef5e598f099b | 4771:b8105302cfe8 |
---|---|
104 if(length(input_list) != columns(R)) | 104 if(length(input_list) != columns(R)) |
105 error(["lqg: length(input_list)=",num2str(length(input_list)), ... | 105 error(["lqg: length(input_list)=",num2str(length(input_list)), ... |
106 ", columns(R)=", num2str(columns(R))]); | 106 ", columns(R)=", num2str(columns(R))]); |
107 endif | 107 endif |
108 | 108 |
109 varname = list("Sigw","Sigv","Q","R"); | 109 varname = {"Sigw","Sigv","Q","R"}; |
110 for kk=1:length(varname); | 110 for kk=1:length(varname); |
111 eval(sprintf("chk = issquare(%s);",nth(varname,kk))); | 111 eval(sprintf("chk = issquare(%s);",varname{kk})); |
112 if(! chk ) error("lqg: %s is not square",nth(varname,kk)); endif | 112 if(! chk ) error("lqg: %s is not square",varname{kk}); endif |
113 endfor | 113 endfor |
114 | 114 |
115 ## permute (if need be) | 115 ## permute (if need be) |
116 if(nargin == 6) | 116 if(nargin == 6) |
117 all_inputs = sysreorder(nin,input_list); | 117 all_inputs = sysreorder(nin,input_list); |
147 | 147 |
148 ## fix controller input names | 148 ## fix controller input names |
149 inname1 = strappend(outname,"_K"); | 149 inname1 = strappend(outname,"_K"); |
150 | 150 |
151 if(DIG) | 151 if(DIG) |
152 K = ss2sys(Ac,Bc,Cc,Dc,tsam,n,nz,stname1,inname1,outname1,1:rows(Cc)); | 152 K = ss(Ac,Bc,Cc,Dc,tsam,n,nz,stname1,inname1,outname1,1:rows(Cc)); |
153 else | 153 else |
154 K = ss2sys(Ac,Bc,Cc,Dc,tsam,n,nz,stname,inname1,outname1); | 154 K = ss(Ac,Bc,Cc,Dc,tsam,n,nz,stname,inname1,outname1); |
155 endif | 155 endif |
156 | 156 |
157 endfunction | 157 endfunction |