annotate scripts/control/abcddim.m @ 78:0fda6e1f90e0

[project @ 1993-08-30 15:40:16 by jwe]
author jwe
date Mon, 30 Aug 1993 15:40:48 +0000
parents a5e8b7c9a3ad
children 16a24e76d6e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
1 function [n, m, p] = abcddim (a, b, c, d)
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
2
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
3 # Usage: [n, m, p] = abcddim (a, b, c, d)
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
4 #
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
5 # Check for compatibility of the dimensions of the matrices defining
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
6 # the linear system (a, b, c, d).
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
7 #
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
8 # Returns n = number of system states,
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
9 # m = number of system inputs,
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
10 # p = number of system outputs.
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
11 #
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
12 # Returns n = m = p = -1 if the system is not compatible.
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
13
78
0fda6e1f90e0 [project @ 1993-08-30 15:40:16 by jwe]
jwe
parents: 70
diff changeset
14 # Written by A. S. Hodel (scotte@eng.auburn.edu) August 1993.
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
15
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
16 if (nargin != 4)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
17 error ("abcddim: illegal number of arguments. need four.")
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
18 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
19
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
20 n = m = p = -1;
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
21
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
22 [an, am] = size(a);
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
23 if (an != am)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
24 fprintf (stderr, "abcddim: a is not square");
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
25 return;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
26 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
27
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
28 [bn, bm] = size(b);
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
29 if (bn != am)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
30 fprintf (stderr, "abcddim: a and b are not compatible");
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
31 return;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
32 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
33
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
34 [cn, cm] = size(c);
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
35 if (cm != an)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
36 fprintf (stderr, "abcddim: a and c are not compatible");
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
37 return;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
38 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
39
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
40 [dn, dm] = size(d);
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
41 if (cn != dn)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
42 fprintf (stderr, "abcddim: c and d are not compatible");
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
43 return;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
44 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
45
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
46 if (bm != dm)
70
a5e8b7c9a3ad [project @ 1993-08-30 14:32:55 by jwe]
jwe
parents: 60
diff changeset
47 fprintf (stderr, "abcddim: b and d are not compatible");
60
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
48 return;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
49 endif
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
50
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
51 n = an;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
52 m = bm;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
53 p = cn;
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
54
671f8bf989d8 [project @ 1993-08-13 21:03:40 by jwe]
jwe
parents:
diff changeset
55 endfunction