File: control.txi

package info (click to toggle)
octave-control 1.0.11-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,628 kB
  • ctags: 160
  • sloc: makefile: 64; sh: 4
file content (539 lines) | stat: -rw-r--r-- 10,914 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
\input texinfo

@setfilename control.info

@settitle Octave Control Systems Toolbox (@acronym{OCST})

@titlepage
@title  Octave Control Systems Toolbox (@acronym{OCST})
@subtitle Version 1.0.0
@subtitle July 2008
@author Dr A Scottedward Hodel
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2008 A Scottedward Hodel

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the same conditions as for modified versions.
@end titlepage

@contents

@ifinfo
@node Top, Introduction
@top
@end ifinfo

@menu
* Introduction:: Introduction
* sysstruct:: System Data Structure
* sysinterface:: System Construction and Interface Functions
* sysdisp:: System display functions
* blockdiag:: Block Diagram Manipulations
* numerical:: Numerical Functions
* sysprop:: System Analysis-Properties
* systime:: System Analysis-Time Domain
* sysfreq:: System Analysis-Frequency Domain
* cacsd:: Controller Design
* misc:: Miscellaneous Functions (Not yet properly filed/documented)
@end menu

@node Introduction
@chapter Introduction

The Octave Control Systems Toolbox (@acronym{OCST}) was initially developed
by Dr.@: A. Scottedward Hodel 
@email{a.s.hodel@@eng.auburn.edu} with the assistance
of his students
@itemize @bullet
@item R. Bruce Tenison @email{btenison@@dibbs.net}, 
@item David C. Clem,
@item John E. Ingram @email{John.Ingram@@sea.siemans.com}, and 
@item Kristi McGowan.  
@end itemize
This development was supported in part by @acronym{NASA}'s Marshall Space Flight 
Center as part of an in-house @acronym{CACSD} environment.  Additional important 
contributions were made by Dr. Kai Mueller @email{mueller@@ifr.ing.tu-bs.de}
and Jose Daniel Munoz Frias (@code{place.m}).

An on-line menu-driven tutorial is available via @code{DEMOcontrol};
beginning @acronym{OCST} users should start with this program. 

@DOCSTRING(DEMOcontrol)

@menu
* sysstruct::                   
* sysinterface::                
* sysdisp::                     
* blockdiag::                   
* numerical::                   
* sysprop::                     
* systime::                     
* sysfreq::                     
* cacsd::                       
* misc::                        
@end menu

@node sysstruct
@chapter System Data Structure

@menu
* sysstructvars::               
* sysstructtf::                 
* sysstructzp::                 
* sysstructss::                 
@end menu

The @acronym{OCST} stores all dynamic systems in
a single data structure format that can represent continuous systems,
discrete-systems, and mixed (hybrid) systems in state-space form, and
can also represent purely continuous/discrete systems in either
transfer function or pole-zero form. In order to
provide more flexibility in treatment of discrete/hybrid systems, the
@acronym{OCST} also keeps a record of which system outputs are sampled.

Octave structures are accessed with a syntax much like that used
by the C programming language.  For consistency in
use of the data structure used in the @acronym{OCST}, it is recommended that
the system structure access m-files be used (@pxref{sysinterface}).
Some elements of the data structure are absent depending on the internal
system representation(s) used.  More than one system representation
can be used for @acronym{SISO} systems; the @acronym{OCST} m-files ensure that all representations
used are consistent with one another.

@DOCSTRING(sysrepdemo)

@node sysstructvars
@section Variables common to all @acronym{OCST} system formats

The data structure elements (and variable types) common to all  system
representations are listed below; examples of the initialization
and use of the system data structures are given in subsequent sections and
in the online demo @code{DEMOcontrol}.
@table @var
@item n
@itemx nz
The respective number of continuous and discrete states
in the system (scalar)

@item inname
@itemx outname
list of name(s) of the system input, output signal(s). (list of strings)

@item sys
System status vector.  (vector)

This vector indicates both what representation was used to initialize
the system data structure (called the primary system type) and which
other representations are currently up-to-date with the primary system
type (@pxref{structaccess}).

The value of the first element of the vector indicates the primary
system type.

@table @asis
@item 0
for tf form (initialized with @code{tf2sys} or @code{fir2sys})

@item 1
for zp form (initialized with @code{zp2sys})

@item 2
for ss form (initialized with @code{ss2sys})
@end table

The next three elements are boolean flags that indicate whether tf, zp,
or ss, respectively, are ``up to date" (whether it is safe to use the
variables associated with these representations).  These flags are
changed when calls are made to the @code{sysupdate} command.

@item tsam
 Discrete time sampling period  (nonnegative scalar).
 @var{tsam} is set to 0 for continuous time systems.

@item yd
 Discrete-time output list (vector)

 indicates which outputs are discrete time (i.e.,
    produced by D/A converters) and which are continuous time.
    yd(ii) = 0 if output ii is continuous, = 1 if discrete.
@end table

The remaining variables of the  system data structure are only present
if the corresponding entry of the @code{sys} vector is true (=1).

@node sysstructtf
@section @code{tf} format variables

@table @var
@item num
 numerator coefficients   (vector)

@item den
 denominator coefficients   (vector)

@end table

@node sysstructzp
@section @code{zp} format variables

@table @var
@item zer
 system zeros   (vector)

@item pol
 system poles    (vector)

@item k
 leading coefficient   (scalar)

@end table

@node sysstructss
@section @code{ss} format variables

@table @var
@item a
@itemx b
@itemx c
@itemx d
The usual state-space matrices. If a system has both
        continuous and discrete states, they are sorted so that
        continuous states come first, then discrete states

@strong{Note} some functions (e.g., @code{bode}, @code{hinfsyn}) 
will not accept systems with both discrete and continuous states/outputs

@item stname
names of system states   (list of strings)

@end table

@node sysinterface
@chapter System Construction and Interface Functions

Construction and manipulations of the @acronym{OCST} system data structure
(@pxref{sysstruct}) requires attention to many details in order
to ensure that data structure contents remain consistent.  Users
are strongly encouraged to use the system interface functions
in this section.  Functions for the formatted display in of system
data structures are given in @ref{sysdisp}.

@menu
* fir2sys::                     
* ss2sys::                      
* tf2sys::                      
* zp2sys::                      
* structaccess::                
@end menu

@node fir2sys
@section Finite impulse response system interface functions

@DOCSTRING(fir2sys)

@DOCSTRING(sys2fir)

@node ss2sys
@section State space system interface functions

@DOCSTRING(ss)

@DOCSTRING(ss2sys)

@DOCSTRING(sys2ss)

@node tf2sys
@section Transfer function system interface functions

@DOCSTRING(tf)

@DOCSTRING(tf2sys)

@DOCSTRING(sys2tf)

@node zp2sys
@section Zero-pole system interface functions

@DOCSTRING(zp)

@DOCSTRING(zp2sys)

@DOCSTRING(sys2zp)

@node structaccess
@section Data structure access functions

@DOCSTRING(syschnames)

@DOCSTRING(syschtsam)

@DOCSTRING(sysdimensions)

@DOCSTRING(sysgetsignals)

@DOCSTRING(sysgettype)

@DOCSTRING(syssetsignals)

@DOCSTRING(sysupdate)

@DOCSTRING(minfo)

@DOCSTRING(sysgettsam)

@node sysdisp
@chapter System display functions

@DOCSTRING(sysout)

@DOCSTRING(tfout)

@DOCSTRING(zpout)

@node blockdiag
@chapter Block Diagram Manipulations

@xref{systime}.

Unless otherwise noted, all parameters (input,output) are
system data structures.

@DOCSTRING(bddemo)

@DOCSTRING(buildssic)

@DOCSTRING(jet707)

@DOCSTRING(ord2)

@DOCSTRING(sysadd)

@DOCSTRING(sysappend)

@DOCSTRING(sysconnect)

@DOCSTRING(syscont)

@DOCSTRING(sysdisc)

@DOCSTRING(sysdup)

@DOCSTRING(sysgroup)

@DOCSTRING(sysmult)

@DOCSTRING(sysprune)

@DOCSTRING(sysreorder)

@DOCSTRING(sysscale)

@DOCSTRING(syssub)

@DOCSTRING(ugain)

@DOCSTRING(wgt1o)

@DOCSTRING(parallel)

@DOCSTRING(sysmin)

@node numerical
@chapter Numerical Functions

@DOCSTRING(are)

@DOCSTRING(dare)

@DOCSTRING(dre)

@DOCSTRING(dgram)

@DOCSTRING(dlyap)

@DOCSTRING(gram)

@DOCSTRING(lyap)

@DOCSTRING(qzval)

@DOCSTRING(zgfmul)

@DOCSTRING(zgfslv)

@DOCSTRING(zginit)

@DOCSTRING(zgreduce)

@DOCSTRING(zgrownorm)

@DOCSTRING(zgscal)

@DOCSTRING(zgsgiv)

@DOCSTRING(zgshsr)

@strong{References}
@table @strong
@item  ZGEP
 Hodel, @cite{Computation of Zeros with Balancing}, 1992, Linear Algebra
 and its Applications
@item @strong{Generalized CG}
 Golub and Van Loan, @cite{Matrix Computations, 2nd ed} 1989.
@end table

@node sysprop
@chapter System Analysis-Properties

@DOCSTRING(analdemo)

@DOCSTRING(abcddim)

@DOCSTRING(ctrb)

@DOCSTRING(h2norm)

@DOCSTRING(hinfnorm)

@DOCSTRING(obsv)

@DOCSTRING(pzmap)

@DOCSTRING(is_abcd)

@DOCSTRING(is_controllable)

@DOCSTRING(is_detectable)

@DOCSTRING(is_dgkf)

@DOCSTRING(is_digital)

@DOCSTRING(is_observable)

@DOCSTRING(is_sample)

@DOCSTRING(is_siso)

@DOCSTRING(is_stabilizable)

@DOCSTRING(is_signal_list)

@DOCSTRING(is_stable)

@node systime
@chapter System Analysis-Time Domain

@DOCSTRING(c2d)

@DOCSTRING(d2c)

@DOCSTRING(dmr2d)

@DOCSTRING(damp)

@DOCSTRING(dcgain)

@DOCSTRING(impulse)

@DOCSTRING(step)

@node sysfreq
@chapter System Analysis-Frequency Domain

@strong{Demonstration/tutorial script}
@DOCSTRING(frdemo)

@DOCSTRING(bode)

@DOCSTRING(bode_bounds)

@DOCSTRING(freqchkw)

@DOCSTRING(ltifr)

@DOCSTRING(nyquist)

@DOCSTRING(nichols)

@DOCSTRING(tzero)

@DOCSTRING(tzero2)

@node cacsd
@chapter Controller Design

@DOCSTRING(dgkfdemo)

@DOCSTRING(hinfdemo)

@DOCSTRING(dlqe)

@DOCSTRING(dlqr)

@DOCSTRING(dkalman)

@DOCSTRING(h2syn)

@DOCSTRING(hinf_ctr)

@DOCSTRING(hinfsyn)

@DOCSTRING(hinfsyn_chk)

@DOCSTRING(hinfsyn_ric)

@DOCSTRING(lqe)

@DOCSTRING(lqg)

@DOCSTRING(lqr)

@DOCSTRING(lsim)

@DOCSTRING(place)

@node misc
@chapter Miscellaneous Functions (Not yet properly filed/documented)

@DOCSTRING(axis2dlim)

@DOCSTRING(moddemo)

@DOCSTRING(prompt)

@DOCSTRING(rldemo)

@DOCSTRING(rlocus)

@DOCSTRING(sortcom)

@DOCSTRING(ss2tf)

@DOCSTRING(ss2zp)

@DOCSTRING(starp)

@DOCSTRING(tf2ss)

@DOCSTRING(tf2zp)

@DOCSTRING(zp2ss)

@DOCSTRING(zp2tf)

@bye

@c Local Variables: ***
@c Mode: texinfo ***
@c End: ***