summaryrefslogtreecommitdiff
path: root/modules/cacsd/help/en_US/feedback.xml
blob: 36913ccd6ca983cd1453b8c7fbd4bc3e49c4f6bd (plain)
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
<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) INRIA - 
 * 
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
 * are also available at    
 * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="feedback">
    <refnamediv>
        <refname>feedback</refname>
        <refpurpose>feedback operation</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Calling Sequence</title>
        <synopsis>Sl=Sl1/.Sl2</synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Arguments</title>
        <variablelist>
            <varlistentry>
                <term>Sl1,Sl2</term>
                <listitem>
                    <para>
                        linear systems (<literal>syslin</literal> list) in state-space or transfer form, or ordinary gain matrices.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>Sl</term>
                <listitem>
                    <para>
                        linear system (<literal>syslin</literal> list) in state-space or transfer form
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Description</title>
        <para>
            The feedback operation is denoted by <literal> /. </literal> (slashdot).
            This command returns <literal>Sl=Sl1*(I+Sl2*Sl1)^-1</literal>, i.e the (negative) 
            feedback of <literal>Sl1</literal> and <literal>Sl2</literal>. <literal>Sl</literal> is the transfer
            <literal> v -&gt; y</literal> for <literal> y = Sl1 u</literal>, <literal>u = v - Sl2 y</literal>.
        </para>
        <para>
            The result is the same as <literal>Sl=LFT([0,I;I,-Sl2],Sl1)</literal>.
        </para>
        <para>
            <warning>
                Caution: do not use with decimal point (e.g. <literal>1/.1</literal> is ambiguous!)
            </warning>
        </para>
    </refsection>
    <refsection>
        <title>Examples</title>
        <programlisting role="example"><![CDATA[ 
S1=ssrand(2,2,3);S2=ssrand(2,2,2);
W=S1/.S2;
ss2tf(S1/.S2)
//Same operation by LFT:
ss2tf(lft([zeros(2,2),eye(2,2);eye(2,2),-S2],S1))
//Other approach: with constant feedback
BigS=sysdiag(S1,S2); F=[zeros(2,2),eye(2,2);-eye(2,2),zeros(2,2)];
Bigclosed=BigS/.F;
W1=Bigclosed(1:2,1:2);   //W1=W (in state-space).
ss2tf(W1)
//Inverting
ss2tf(S1*inv(eye()+S2*S1))
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>See Also</title>
        <simplelist type="inline">
            <member>
                <link linkend="lft">lft</link>
            </member>
            <member>
                <link linkend="sysdiag">sysdiag</link>
            </member>
            <member>
                <link linkend="augment">augment</link>
            </member>
            <member>
                <link linkend="obscont">obscont</link>
            </member>
        </simplelist>
    </refsection>
</refentry>