Node:blockdiag, Next:numerical, Previous:sysdisp, Up:Control Theory
See systime.
Unless otherwise noted, all parameters (input,output) are system data structures.
| bddemo (inputs) | Function File |
| Octave Controls toolbox demo: Block Diagram Manipulations demo. |
| buildssic (clst, ulst, olst, ilst, s1, s2, s3, s4, s5, s6, s7, s8) | Function File |
|
Form an arbitrary complex (open or closed loop) system in
state-space form from several systems. Although this function is general purpose, the use of The parameters consist of 4 lists that describe the connections outputs and inputs and up to 8 systems s1-s8. Format of the lists:
Example: Very simple closed loop system.
w e +-----+ u +-----+
--->o--*-->| K |--*-->| G |--*---> y
^ | +-----+ | +-----+ |
- | | | |
| | +----------------> u
| | |
| +-------------------------|---> e
| |
+----------------------------+
The closed loop system GW can be optained by
GW = buildssic([1 2; 2 -1], 2, [1 2 3], 2, G, K);
Here is a real example:
+----+
-------------------->| W1 |---> v1
z | +----+
----|-------------+
| |
| +---+ v +----+
*--->| G |--->O--*-->| W2 |---> v2
| +---+ | +----+
| |
| v
u y
min || GW ||
vz infty
The closed loop system GW
from [z, u]' to [v1, v2, y]'
can be obtained by (all SISO systems):
GW = buildssic([1, 4; 2, 4; 3, 1], 3, [2, 3, 5],
[3, 4], G, W1, W2, One);
where "One" is a unity gain (auxillary) function with order 0.
(e.g. One = ugain(1);)
|
| sys = jet707 () | Function File |
|
Creates a linearized state-space model of a Boeing 707-321 aircraft
at v=80 m/s
(M = 0.26, Ga0 = -3 deg, alpha0 = 4 deg, kappa = 50 deg).
System inputs: (1) thrust and (2) elevator angle. System outputs: (1) airspeed and (2) pitch angle. Reference: R. Brockhaus: Flugregelung (Flight Control), Springer, 1994. |
| ord2 (nfreq, damp, gain) | Function File |
|
Creates a continuous 2nd order system with parameters:
Inputs
Output
jet707 (MIMO example, Boeing 707-321
aircraft model)
|
| sysadd (gsys, hsys) | Function File |
returns sys = gsys + hsys.
________
----| gsys |---
u | ---------- +|
----- (_)----> y
| ________ +|
----| hsys |---
--------
|
| sys = sysappend (syst, b, c, d, outname, inname, yd) | Function File |
|
appends new inputs and/or outputs to a system
Inputs
Outputs
|
| clsys = sysconnect (sys, out_idx, in_idx, order, tol) | Function File |
|
Close the loop from specified outputs to respective specified inputs
Inputs
Outputs
Method
--------------------
u_1 ----->| |----> y_1
| sys |
old u_2 | |
u_2* ---->(+)--->| |----->y_2
(in_idx) ^ -------------------- | (out_idx)
| |
-------------------------------
The input that has the summing junction added to it has an * added to
the end of the input name.
|
| [csys, acd, ccd] = syscont (sys) | Function File |
|
Extract the purely continuous subsystem of an input system.
Input
Outputs
|
| [dsys, adc, cdc] = sysdisc (sys) | Function File |
|
Input
Outputs
|
| retsys = sysdup (asys, out_idx, in_idx) | Function File |
|
Duplicate specified input/output connections of a system
Inputs
Output
Method
____________________
u1 ----->| |----> y1
| asys |
u2 ------>| |----->y2
(in_idx) -------------------- (out_idx)
|
| sys = sysgroup (asys, bsys) | Function File |
|
Combines two systems into a single system.
Inputs
Output
__________________
| ________ |
u1 ----->|--> | asys |--->|----> y1
| -------- |
| ________ |
u2 ----->|--> | bsys |--->|----> y2
| -------- |
------------------
Ksys
The function also rearranges the internal state-space realization of sys
so that the continuous states come first and the discrete states come last.
If there are duplicate names, the second name has a unique suffix appended
on to the end of the name.
|
| sys = sysmult (Asys, Bsys) | Function File |
Compute sys = Asys*Bsys (series connection):
u ---------- ----------
--->| Bsys |---->| Asys |--->
---------- ----------
A warning occurs if there is direct feed-through from an input
or a continuous state of Bsys, through a discrete output
of Bsys, to a continuous state or output in Asys
(system data structure does not recognize discrete inputs).
|
| retsys = sysprune (asys, out_idx, in_idx) | Function File |
|
Extract specified inputs/outputs from a system
Inputs
Output
____________________ u1 ------->| |----> y1 (in_idx) | Asys | (out_idx) u2 ------->| |----| y2 (deleted)-------------------- (deleted) |
| pv = sysreorder (vlen, list) | Function File |
|
Inputs
Output
Used internally by |
| retsys = sysscale (sys, outscale, inscale, outname, inname) | Function File |
|
scale inputs/outputs of a system.
Inputs
Output
A warning message is printed if outscale attempts to add continuous system outputs to discrete system outputs; otherwise yd is set appropriately in the returned value of sys. |
| sys = syssub (Gsys, Hsys) | Function File |
|
Return sys = Gsys - Hsys.
Method Gsys and Hsys are connected in parallel.
The input vector is connected to both systems; the outputs are
subtracted. Returned system names are those of Gsys.
+--------+
+--->| Gsys |---+
| +--------+ |
| +|
u --+ (_)--> y
| -|
| +--------+ |
+--->| Hsys |---+
+--------+
|
| ugain (n) | Function File |
Creates a system with unity gain, no states.
This trivial system is sometimes needed to create arbitrary
complex systems from simple systems with buildssic.
Watch out if you are forming sampled systems since ugain
does not contain a sampling period.
|
| W = wgt1o (vl, vh, fc) | Function File |
|
State space description of a first order weighting function.
Weighting function are needed by the
H-2/H-infinity
design procedure.
These function are part of the augmented plant P
(see Inputs
Output
|
| ksys = parallel (asys, bsys) | Function File |
Forms the parallel connection of two systems.
--------------------
| -------- |
u ----->|----> | asys |--->|----> y1
| | -------- |
| | -------- |
|--->|----> | bsys |--->|----> y2
| -------- |
--------------------
ksys
|
| [retsys, nc, no] = sysmin (sys, flg) | Function File |
|
Returns a minimal (or reduced order) system
Inputs
|