Lec2 FeedbackControl Arduino-complete

Embed Size (px)

Citation preview

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    1/79

    !"#$%&" () *+,$"- ./$"0&1$23/

    45""671#8 93/$&3:;

    ?@ABC>> ??(

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    2/79

    H3I2#,

    5""671#8 #3/$&3:

    JI"/ K,L #:3,"6M:33I

    *$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,

    *+,$"- &",I3/,"O.E #3/$&3::"&

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    3/79

    JI"/ 1/6 #:3,"6 :33I #3/$&3:

    G1,2# I&37:"-)

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    4/79

    JI"/ !33I *+,$"-

    93-I%$"& ,"/6, 1 #3--1/6 71,"6 3/ !T 1/6 +3%

    D3I" $D" &20D$ $D2/0" #3-", 3%$

    53& -3,$ 1II:2#1$23/,T $D2, &":2", 3/ 1 0336 -36":

    3N $D" I:1/$

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    5/79

    JI"/ !33I *+,$"-

    O&3#"6%&" N3& N3"M#3/$&3: ,+,$"-)93-I%$"& #1:#%:1$", 1 N3"T 5T $3 62,I:1+ 1$ $D"

    "/6 "NN"#$3&

    93-I%$"& #3/$&3::"& 6"$"&-2/", $D" #3&&"#$

    K3:$10" $3 ,"/6 $3 $D" 1#$%1$3& 1$ $D" U32/$

    E+/1-2#, 3N $D" 6"K2#" Q2:: &",%:$ 2/ 1 #D1/0" 2/

    I3,2$23/

    T

    Ki

    1 !"! iKv A

    bm results in

    ,fwd. kin.

    xx ,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    6/79

    9:3,"6 !33I *+,$"-

    HD" #3--1/6 2, -362N2"6 71,"6 3/ "&&3&7"$Q""/ $D" 3%$I%$ 1/6 $D" &"N"&"/#" 4N""671#8#3/$&3:;

    =6K1/$10", 3N N""671#8 #3/$&3:*$172:2V1$23/

    E2,$%&71/#" &"U"#$23/

    W"N"&"/#" $&1#82/0

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    7/79

    9:3,"6M:33I H&1/,N"& 5%/#$23/

    =,,%-" /"0:2027:" /32," 1/6 62,$%&71/#"T 1N""671#8 #3/$&3: ,+,$"- #1/ 7" &"I&","/$"6 1,

    >4,; R W4,;X4,;Y4,;L Z3$" $D1$ Q2$D 1/ 26"1:,"/,3&T X4,; R [L HD" 0"/"&1: $&1/,N"& N%/#$23/ 2,

    HD" &"N"&"/#" ,20/1: #1/ K1&+ Q2$D $2-" 4$&1#82/0;

    3& #3/,$1/$ 4&"0%:1$3&;L

    )()()(1

    )()(

    )(

    )(

    sHsGsC

    sGsC

    sR

    sY

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    8/79

    HD" 0"/"&1: $&1/,N"& N%/#$23/ 2,

    Note that the denominator of both TFs are the

    ,1-" R\ ,1-" I3:", R\ 1II:+ $D" ,1-" ,$172:2$+

    #3/,26"&1$23/

    P2$D E2,$%&71/#"

    H(S)

    C(S)

    )()()(1

    )(

    )(

    )(

    sHsGsC

    sG

    sD

    sY

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    9/79

    !H. *+,$"-,

    !H. R !2/"1& $2-"M2/K1&21/$ ,+,$"-L 53& +4$; R *]^4$;_T

    !2/"1&2$+) 53& 1/+ $Q3 2/I%$ ,20/1:, ^[4$; 1/6 ^(4$;1/6 1 &"1: #3/,$1/$ 1T

    *]^[4$;`^(4$;_ R *]^[4$;_ ` *]^(4$;_ 1/6

    *]1^[4$;_ R 1*]^[4$;_

    H2-" 2/K1&21/#") 53& 1/+ &"1: #3/,$1/$ HT +4$MH; R*4^4$MH;;L HD2, 2/#:%6", #3/,$1/$M012/ ,+,$"- 1/6:2/"1& #3-72/1$23/, 3N $2-"M,D2N$, 3N $D" 2/I%$,20/1:T 2L"L +4$; R ^4$;(^4$Ma;L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    10/79

    *$172:2$+ 3N !H. ,+,$"-,

    B2K"/ 1 $&1/,N"& N%/#$23/ 3N 1 !H. ,+,$"- 2/ $D" N3&-T

    HD" &33$ 3N $D" #D1&1#$"&2,$2# "S%1$23/T #1::"6 $D"$%&'(T #1/

    7" N3%/6 N&3- ,"$$2/0

    QD2#D #1/ 7" Q&2$$"/ 1, 1 #3-I:"^ /%-7"&) I R ` U

    HD" ,+,$"- 2, ()*+&'2N 1:: $D" I3:", 3N 2$, $&1/,N"& N%/#$23/

    D1K" /"01$2K" &"1: I1&$, 4b AT 3/ :"N$MD1:N I:1/"; 1/6

    %/,$17:" 3$D"&Q2,"L

    PD"/ R AT $D" ,+,$"- 2, ,*-./0*&&1 ()*+&'2N $D" #3-I:"^

    &33$, 1&" /3/M&"I"1$"6 1/6 %/,$17:" 3$D"&Q2,"L

    HD" &33$, 3N $D" /%-"&1$3& 2, #1::"6 2'-%(T QD2#D 1&" /3$

    &":1$"6 $3 $D" ,$172:2$+T $D3%0D 2$ Q2:: 1NN"#$ $D" &",I3/," 3N

    $D" ,+,$"-L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    11/79

    *$172:2$+ 9&2$"&23/

    Rouths

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    12/79

    O"&N3&-1/#" *I"#2N2#1$23/, 4H2-" 63-12/;

    HD" I"&N3&-1/#" &"S%2&"-"/$, 1&" %,%1::+ 02K"/ N3&

    $D" ,$"I &",I3/,"L

    W2," $2-"T $&

    JK"&,D33$T

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    13/79

    O"&N3&-1/#" ,I"#2N2#1$23/, W2," $2-" 4$&;) HD" $2-" N3& 3%$I%$ $3 &2," N&3- A 43&

    [Ad; $3 @Ad 3N $D" N2/1: K1:%"

    JK"&,D33$ 4

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    14/79

    W",I3/," 3N [,$ J&6"& *+,$"-

    = , > 0

    !1I:1#" $&1/,N3&-) =

    =

    +

    + ()

    *3:K" !M[T =

    +()

    P2$D ,$"I 2/I%$ 454,; R =C,;;T =

    [1

    ]

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    15/79

    93/,26"& 1 W! #2%2$)

    = , 0 = 0

    W"Q&2$"T

    =

    H2-" #3/,$1/$ =

    53& %/2$ ,$"I 2/I%$T =

    (1

    )

    Whats the steady state response?PD1$ D1II"/ 1$ 4g

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    16/79

    93/,26"& (/6 3&6"& -M7M8 ,+,$"-

    PD1$ D1II"/ $3 $D" &",I3/,"T ^4$;T 3N $D"

    ,+,$"- QD"/ Q" 16U%,$ 8 1/6 7g

    fkxxbxm

    xbkxfxm

    fffxmF bk

    5 includes all forces

    applied to the system

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    17/79

    !"#$%"& (%)*$)+,- . /"012+3 4"#25

    [h

    W"Q&2$2/0 $D" (/6

    M3&6"& "S%1$23/ 2/ 1/3$D"& N3&-

    E2K26"6 7+ [C-)

    Z1$%&1: N&"S%"/#+)

    E1-I2/0 &1$23)

    Z3$" $D1$ A

    fm

    xm

    kx

    m

    bx

    1

    mk

    b

    m

    b

    n 22

    sradm

    kn /

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    18/79

    65#"& 4)715+7)

    [i

    !1I:1#" $&1/,N3&-)

    *3:K" N3& e4,;)

    ./K"&," !1I:1#" $&1/,N3&-)

    W",I3/," $3

    ./2$21: #3/62$23/,

    W",I3/," $3

    ./I%$

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    19/79

    8#)1 4)715+7)

    [@

    =,,%-" $D" N3/0 N%/#$23/T ,$"I 2/I%$

    0 1 2 3 4 5 6 7 8 9 10

    -0.1

    0

    0.1

    0.2

    0.3

    0.4

    0.5

    Step Response

    Time (sec)

    A

    mplitude

    = 0.1

    = 0.4= 1.0

    = 2.0

    = 0

    4)715+7)7 95% :299)%)+# :"012+3

    %"#25

    ; < =>+:"01):?

    1$%) 57,2&&"#25+

    < @ @ A =>+:)%:"01):?:),"-2+3 57,2&&"#25+

    ; A =B%2#2,"&&- :"01):?

    C A =DE)%:"01):?

    +5 57,2&&"#25+

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    20/79

    *$"I &",I3/," ,I"#2N2#1$23/, 3N %/6"&61-I"6

    ,+,$"- Q2$D /3 /%-"&1$3& 6+/1-2#,

    PL O1:-T *+,$"- E+/1-2#,T c&6 >6L

    F+ ,5+#%5& :)723+G 5+) 5% 05%) 59 #H)7) %)*$2%)0)+#7 I2&& J) 32E)+ #5 :)#)%02+)

    #H) "&&5I"J&) %)325+ 59 #H) 15&)7 2+ #H) 7K1&"+)L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    21/79

    H3I2#,

    5""671#8 #3/$&3:JI"/ K,L #:3,"6M:33I

    *$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,

    *+,$"- &",I3/,"

    O.E #3/$&3::"&

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    22/79

    O.E 93/$&3::"&

    O&3I3&$23/1:M2/$"0&1:M6"&2K1$2K" #3/$&3: I&3K26",1 Q26":+M%,"6 0"/"&2# N""671#8 #3/$&3::"&

    HD" #3/$&3: ,20/1: 2, 0"/"&1$"6 71,"6 3/ $D""&&3&T "4$;T 7"$Q""/ $D" #%&&"/$ ,+,$"- ,$1$"

    1/6 $D" &"N"&"/#" 1/6 2/K3:K", c 012/,) 8IR I&3I3&$23/1: 012/ 41II:+ $3 $D" "&&3&;

    8ER 6"&2K1$2K" 012/ 41II:+ $3 $D" 6"&2K1$2K" 3N

    $D" "&&3&; 8.R 2/$"0&1: 012/ 41II:+ $3 $D" 2/$"0&1: 3N $D"

    "&&3&;

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    23/79

    M&5,N :2"3%"0 59 OF/ ,5+#%5&&)%

    HD" "^I&",,23/ 3N $D" #3/$&3::"& 2, 02K"/ 7+

    H2-" 63-12/)

    H&1/,N"& N/)sk

    s

    kk

    sE

    sUD

    Ip

    )(

    )(

    t

    DIp dt

    tdekdektektu

    0

    )()()()(

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    24/79

    OE 93/$&3::"& >^1-I:"

    93/,26"& (/6M3&6"& I:1/$)

    OE #3/$&3::"&)

    JK"&1:: H5)

    ./#&"1,2/0 8I2/#&"1,", /1$%&1: N&"S%"/#+

    2/#&"1,", 1/6 6"#&"1,", 61-I2/0 &1$23L

    ./#&"1,2/0 8E2/#&"1,", 61-I2/0L

    21

    2)( asasbsG

    skksC Dp )(

    pD

    pD

    bkasbkas

    kskb

    sR

    sY

    21

    2)(

    )(

    )(

    )(

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    25/79

    O&3I3&$23/1:

    93/$&3: ,20/1: R 8I4&"NM+; R 8I" >NN"#$) 720 ,20/1: N3& :1&0" "&&3&T ,-1:: ,20/1:

    N3& ,-1:: "&&3&

    W",%:$, 2/ ,$"16+M,$1$" "&&3&Z""6, 1 /3/V"&3 "&&3& $3 0"/"&1$" 1 #3/$&3:1#$23/

    >,,"/$21::+ 1 ,I&2/01$ $D" 6",2&"6 I3,2$23/45R8^;

    X20D 012/ -18", 1 ,$2NN"& ,I&2/0 1/62/#&"1,", $"/6"/#+ $3 3,#2::1$"

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    26/79

    >NN"#$ 3N 8I

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    27/79

    E"&2K1$2K"

    93/$&3: ,20/1: R 8E64";C6$

    >NN"#$) ,:3Q, #3/$&3: 1#$23/ 1/6 61-I,3,#2::1$23/,j 2/#&"1,", ,+,$"- ,$172:2$+

    91/ 1:,3 -18" &",I3/," -3&" ,:%002,D

    G1,"6 3/ N2&,$ 6"&2K1$2K") "2$D"& /32," 3&N2:$"&2/0 :10 4N3& K":3#2$+ ",$2-1$" N&3- I3,2$23/;#1/ 1#$%1::+ 2/$&36%#" 2/,$172:2$+ 1012/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    28/79

    >NN"#$ 3N 8E

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    29/79

    ./$"0&1:

    93/$&3: ,20/1: R 82 4";6$

    >NN"#$) 2/$"0&1$", "&&3& 3K"& $2-"

    93/$&3: ,20/1: 7%2:6, %I 1/6 "K"/$%1::+ 7&2/0,

    "&&3& $3 V"&3 >:2-2/1$", ,$"16+M,$1$" "&&3&1/6 2-I&3K", ,+,$"-

    &",I3/,2K"/",,

    F/I:"1,1/$ ,26" "NN"#$,)

    W"6%#"6 61-I2/0 1/6 :1&0"& 3K"&,D33$46"#&"1,"6 ,$172:2$+;

    ./$"0&1$3& Q2/6M%I

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    30/79

    >NN"#$ 3N 8.

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    31/79

    H%/2/0 1 O.E #3/$&3::"&

    Iterative manual tuning process*$1&$ Q2$D O) 2/#&"1," %/$2: %/,$17:"

    =66 E %/$2: ,$17:"

    .N ** "&&3& 2, 1 I&37:"-T 166 .

    4166 E %/$2: ,$17:";

    =66 -3&" OT 16U%,$ ET "$#L

    93-I&3-2," 7"$Q""/ %)715+72E)+)771/6 7#"J2&2#-

    HD"&" 1&" ,+,$"-1$2# $%/2/0 0%26":2/", 1K12:17:" ,%#D1, $D" k2"0:"&MZ2#D3:, -"$D36L HD" 3I$2-1: 012/, 1&",":"#$"6 71,"6 3/ $D" :10 $2-" 1/6 $D" &"1#$23/ &1$"3N $D" 3I"/ :33I %/2$M,$"I &",I3/,"L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    32/79

    H3I2#,

    5""671#8 #3/$&3:JI"/ K,L #:3,"6M:33I

    *$172:2$+ 1/6 I"&N3&-1/#" ,I"#2N2#1$23/,

    *+,$"- &",I3/,"

    O.E #3/$&3::"&

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    33/79

    JI$2#1: "/#36"&

    = 6202$1: 3I$2#1: "/#36"& 2, 1 6"K2#" $D1$ #3/K"&$,

    -3$23/ 2/$3 1 ,"S%"/#" 3N 6202$1: I%:,",L HD" -3$23/

    -1+ 7" "2$D"& :2/"1& 3& &3$1$23/1:L

    P" N3#%, 3/ $D" -3&" #3--3/ &3$1&+ 3I$2#1:

    "/#36"&L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    34/79

    ./#&"-"/$1: 3I$2#1: "/#36"&

    = 62,8 43& #36"QD"":; 1$$1#D"6 $3 1 &3$1$2/0 ,D1N$

    ,I2/, 7"$Q""/ $Q3 ID3$3M"-2$$"&, 1/6 6"$"#$3&, L

    HD" 62,8 D1, 1 &1621: I1$$"&/ 3N :2/", $D1$ 1:$"&/1$":+

    I1,, 1/6 7:3#8 $D" 7"1- 7"$Q""/ 1 ID3$3M"-2$$"&6"$"#$3& I12&L

    HD" ID3$3 6"$"#$3& 3%$I%$, 1&" #1::"6 #D1//": = 1/6

    GL

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    35/79

    ./#&"-"/$1: 3I$2#1: "/#36"&

    G+ #3%/$2/0 $D" /%-7"& 3N I%:,", 1/6 8/3Q2/0 $D"

    /%-7"& 3N &1621: :2/", 2/ $D" 62,8T $D" &3$1$23/ 3N $D"

    ,D1N$ #1/ 7" -"1,%&"6L

    HD" 62&"#$23/ 3N &3$1$23/ 2, 6"$"&-2/"6 7+ $D" ID1,"&":1$23/,D2I 7"$Q""/ $D" = 1/6 G I%:," $&12/,L

    .N = :"16, GT $D"/ $D" ,D1N$ 2, &3$1$2/0 #3%/$"&M#:3#8Q2,"

    .N G :"16, =T $D"/ $D" ,D1N$ 2, &3$1$2/0 #:3#8Q2,"

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    36/79

    l%16&1$%&" ,20/1:,

    9D1//": = 1/6 G 1&" [C? #+#:" 3%$ 3N ID1,"

    Q2$D "1#D 3$D"& 4S%16&1$%&" ,20/1:,;L

    HD"&" 1&" N3%& 62,$2/#$ ,$1$", 4*[*?;L HD%,T 1aAA #3%/$ "/#36"& QD2#D D1, aAA ID+,2#1: ,:2$,

    N3& "1#D ID3$36236" Q2:: 02K" +3% (AAA #3%/$,

    I"& &"K3:%$23/L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    37/79

    E9 -3$3& ,I""6 #3/$&3:

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    38/79

    XM7&260" 6&2K"& OP< 2, 3N$"/ %," Q2$D 1 XM7&260")

    HD" XM7&260" 1::3Q, $D" -3$3& $3 #D1/0" 62&"#$23/)

    .N *[ 1/6 *? 1&" JZT 1/6 *( 1/6 *c J55T $D" -3$3& $%&/, 2/

    3/" 62&"#$23/L

    .N *[ 1/6 *? 1&" J55T 1/6 *( 1/6 *c JZT $D" -3$3& $%&/, 2/ $D"3II3,2$" 62&"#$23/L

    .N *( 1/6 *? 1&" J55 3& *[ 1/6 *c 1&" J55T $D" -3$3& ,:3Q, 63Q/L

    F," OP< $3 #3/$&3: $D" ,Q2$#D",T 1/6 D"/#" $D" -3$3& ,I""6L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    39/79

    !(@i XM7&260" 6&2K"& ./#:%6", ( XM7&260",)

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    40/79

    =&6%2/3

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    41/79

    =&6%2/3 1D2$"#$%&"

    =H-"01c(i 3/ F/3

    G3$D 1/1:30 1/6 6202$1:

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    42/79

    =&6%2/3 F/3

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    43/79

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    44/79

    =&6%2/3 O&30&1-

    E3Q/:316 1/6 2/,$1:: N&""=&6%2/3 ./$"0&1$"6E"K":3I-"/$ >/K2&3/-"/$4.E>; ,3N$Q1&" 1/6 F*G6&2K"&,)

    D$$I)CC1&6%2/3L##C"/C

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    45/79

    =&6%2/3 .E>

    m"&2N+

    ,+/$1^

    FI:316

    ,8"$#D $3

    731&6 JI"/ ,1K"/"Q JI"/ ,"&21: -3/2$3&

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    46/79

    =&6%2/3 .E>

    >^1-I:",)52:"\ >^1-I:", M> ..

    9D33," 731&6

    H33:, M\ G31&6 M\ =&6%2/3 F/3

    *":"#$ ,"&21: I3&$

    H33:, M\ *"&21: I3&$ M\ 9J

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    47/79

    >^1-I:" ,8"$#D blinkCf G:2/8

    H%&/, 3/ 1/ !>E 3/ N3& 3/" ,"#3/6T $D"/ 3NN N3& 3/" ,"#3/6T &"I"1$"6:+L fC

    CC O2/ [c D1, 1/ !>E #3//"#$"6 $3 2$L

    CC 02K" 2$ 1 /1-")

    2/$ :"6 R [cj

    CC $D" ,"$%I &3%$2/" &%/, 3/#" QD"/ +3% I&",, &","$)

    K326 ,"$%I4; n

    CC 2/2$21:2V" $D" 6202$1: I2/ 1, 1/ 3%$I%$L

    I2/E 3NN 7+ -182/0 $D" K3:$10" !JP

    6":1+4[AAA;j CC Q12$ N3& 1 ,"#3/6o

    E"#:1&1$23/ ,"#$23/

    *"$%I ,"#$23/L F,"

    N3& ,"$$2/0 I2/ -36"

    1/6 ,"&21: I3&$ "$#L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    48/79

    ./I%$ 1/6 3%$I%$ N%/#$23/,

    12+U5:)=12+G 05:)?

    93/N20%&", 1 6202$1: I2/ $3 7"D1K" "2$D"& 1, 1/ 2/I%$ 3&

    1/ 3%$I%$L

    -36") .ZOFHT JFHOFH

    :232#"&V%2#)=12+G E"&$)?

    H%&/, 1 6202$1: I2/ "2$D"& 3/ 3& 3NNL

    K1:%") X.BX 3& !JP

    :232#"&4)":=12+? W"16, $D" K1:%" N&3- 1 ,I"#2N2"6 6202$1: I2/T "2$D"&

    X.BX 3& !JPL

    Usually use an 2/$ variable to store the value.

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    49/79

    ./I%$ 1/6 3%$I%$ N%/#$23/,

    "+"&534)":=12+?

    W"16, $D" K3:$10" 1II:2"6 $3 1/ 1/1:30 2/I%$ I2/ 4AM a;

    1/6 &"$%&/, 1 /%-7"& 7"$Q""/ A 1/6 [A(c $D1$

    &"I&","/$, $D" K3:$10", 7"$Q""/ A 1/6 a mL

    "+"&53V%2#)=12+G E"&$)?

    9D1/0", $D" OP< &1$" 3/ 3/" $D" 6202$1: I2/, cT aT pT

    @T [AT 1/6 [[L

    m1:%" -1+ 7" 1 /%-7"& 7"$Q""/ A 1/6 (aaL A -"1/,

    J55T (aa -"1/, [AAd 6%$+ #+#:"L

    Z""6 $3 %," I2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    50/79

    *8"$#D 732:"&I:1$"

    =/+ =&6%2/3 sketch must have a setup and loop,"#$23/L

    K326 ,"$%I4; n

    CC #36"

    o

    K326 :33I4; n

    CC#36"

    o

    The void means that the function does not

    &"$%&/ 1/+ K1:%", QD"/ #1::"6L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    51/79

    *"&21: -3/2$3&

    H3 62,I:1+ 2/N3&-1$23/ 3/ ,#&""/L

    9:2#8 3/ $3 3I"/ $D" ,"&21: -3/2$3& Q2/63QL

    >^1-I:" ,8"$#D)CC ,8"$#D cMAa

    K326 ,"$%I4;

    n

    *"&21:L7"02/4@pAA;j

    2/$ 6"09 R (Aj

    2/$ 6"05j

    6"05 R 6"09 f @ C a ` c(j

    *"&21:LI&2/$:/46"05;jo

    K326 :33I4;

    no

    *"$ $D" ,"&21: I3&$ ,I""6 $3@pAA71%6

    Print the value of 6"05 to the

    ,"&21: -3/2$3& Q2/63Q

    Note that *"&21:LI&2/$:/ can also be used inside loop()

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    52/79

    .NM":," ,$1$"-"/$

    *+/$1^)

    93/62$23/ 3I"&1$3&)

    2N 46%07/)/%0;

    n

    CC 1#$23/ =

    o

    ":,"

    n

    CC 1#$23/ G

    o

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    53/79

    .NM":," ,$1$"-"/$ "^1-I:"CC ,8"$#D cMA@

    2/$ :"6O2/ R [cj

    2/$ 6":1+O"&236 R [AAj

    2/$ #3%/$ R Aj

    K326 ,"$%I4;

    n

    I2/E (A $2-", 1$AL[,"# &1$" 1/6 $D"/ Q12$ N3& c ,"#

    7"N3&" &"I"1$2/0 1012/L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    54/79

    93-I3%/6 3I"&1$3&,

    ^``j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ ` [j

    ^M M j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ M [j

    ^ `R +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ ` +j

    ^ MR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ M +j

    ^ fR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ f +j

    ^ CR +j CC "S%2K1:"/$ $3 $D" "^I&",,23/ ^ R ^ C +j

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    55/79

    G33:"1/ 3I"&1$3&, qq MM :302#1: 1/6

    H&%" 3/:+ 2N 73$D 3I"&1/6, 1&" $&%"T "L0L2N 46202$1:W"164(; RR [ qq 6202$1:W"164c; RR [;

    n CC #36"

    o

    rr MMM :302#1: 3&

    H&%" 2N "2$D"& 3I"&1/6 2, $&%"T "L0L

    2N 4^ \ A rr + \ A; n

    CC LLL

    o

    2, $&%" 2N "2$D"& ^ 3& + 2, 0&"1$"& $D1/ AL

    s MM /3$

    H&%" 2N $D" 3I"&1/6 2, N1:,"T "L0L

    2N 4s^; n

    CC LLL

    o

    2, $&%" 2N ^ 2, N1:," 42L"L 2N ^ "S%1:, A;L

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    56/79

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    57/79

    E1$1 $+I",

    For statement

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    58/79

    For statement

    *+/$1^)

    >^1-I:")

    N3& 42/2$21:2V1$23/j #3/62$23/j 2/#&"-"/$;

    n

    CC,$1$"-"/$4,;j

    o

    CC ,8"$#D cMAi

    2/$ :"6O2/ R [cj

    2/$ 6":1+O"&236 R [AAj

    K326 ,"$%I4;

    nI2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    59/79

    while statement

    *+/$1^)

    >^1-I:")

    QD2:"4"^I&",,23/;

    n

    CC ,$1$"-"/$4,;

    o

    CC ,8"$#D cMAi

    2/$ :"6O2/ R [cj

    2/$ 6":1+O"&236 R [AAj

    K326 ,"$%I4;

    nI2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    60/79

    t6"N2/" 62&"#$2K"

    91/ %," t6"N2/" $3 1,,3#21$" 1 K1:%" Q2$D 1

    K1&217:" I&3K26"6 $D" K1:%" 63", /3$ #D1/0"L HD2,

    ,1K", -"-3&+L

    53& "^1-I:"T &"I:1#"

    2/$ :"6O2/ R [cj

    7+t6"N2/" :"6O2/ [c

    Z3$" $D"&" 2, /3 ,"-2M#3:3/ /""6"6 1N$"& t6"N2/"L

    5%/#$23/,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    61/79

    5%/#$23/,

    = N%/#$23/ 2, 1 :28" 1 I&30&1- Q2$D2/ 1 I&30&1-L

    *+/$1^)

    >^1-I:")

    &"$%&/$+I" N%/#$23/Z1-"4 1&0%-"/$, ;n

    CCN%/#$23/ 736+

    &"$%&/ &"$%&/$+I"j

    o

    2/$ :"6O2/ R [cj

    2/$ 6":1+O"&236 R (aAj

    K326 ,"$%I4;

    n

    I2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    62/79

    O1,,2/0 I1&1-"$"& $3 1 N%/#$23/

    >^1-I:")

    CC ,8"$#D ?MA(2/$ :"6O2/ R [cj

    2/$ 6":1+O"&236 R (aAj

    K326 ,"$%I4;

    n

    I2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    63/79

    5%/#$23/ $D1$ &"$%&/, K1:%" >^1-I:")

    2/$ #"/$H351&"/42/$ #;

    n

    2/$ N R # f @ C a ` c(j

    &"$%&/ Nj

    o

    HD2, N%/#$23/ $18", 1 $"-I"&1$%&" 2/ 6"0&"", #"/$20&16"1/6 &"$%&/, $D" "S%2K1:"/$ 2/ 6"0&"", N1D&"/D"2$L Y3% #1/

    #1:: 2$ %,2/0)

    2/$ H"-I"&1$%&" R #"/$H351&"/4(A;j

    X"&" $D" &",%:$ 2, 6"#:1&"6 1, 1/ 2/$"0"&L *3 $D" &",%:$ Q2::be rounded off. To keep decimal values, use float instead

    of 2/$.

    5%/#$23/ $D1$ &"$%&/, K1:%" 4N:31$2/0

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    64/79

    5%/#$23/ $D1$ &"$%&/, K1:%" 4N:31$2/0

    I32/$; >^1-I:")

    N:31$ #"/$H351&"/4N:31$ #;

    n

    N:31$ N R # f @LA C aLA ` c(LAj

    &"$%&/ Nj

    Y3% #1/ #1:: 2$ %,2/0)

    N:31$ H"-I"&1$%&" R #"/$H351&"/4(A;j

    Z3$" $D1$ Q" D1K" %," N:31$,

    $D&3%0D3%$ D"&"L P" D1K" 1:,3 166"6

    LA $3 $D" "/6 3N 3%& #3/,$1/$,L HD2,

    "/,%&", $D1$ $D" #3-I2:"& 8/3Q, $3

    $&"1$ $D"- 1, N:31$, &1$D"& $D1/ 2/$,L

    =&&1+,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    65/79

    =&&1+,

    =/ 1&&1+ #3/$12/, 1 :2,$ 3N

    K1:%",T &1$D"& $D1/ U%,$ 3/"

    K1:%"L

    2/$ 6%&1$23/,]_ R n(AAT (AAT (AAT aAAT aAAT aAAT

    (AAT (AAT (AAoj

    =&&1+,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    66/79

    =&&1+,

    >^1-I:")CC ,8"$#D

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    67/79

    *$&2/0, = ,$&2/0 2, 1/ 1&&1+ 3N $+I" 64*-L

    HD" $+I" 64*-2, 1 /%-7"& 7"$Q""/ A 1/6 [(h $D1$

    &"I&","/$, 3/" #D1&1#$"& 4=*9..;L

    93--3/ =*9.. #36")

    >^)

    #D1& /1-"]_ R uX"::3uj

    HD2, 6"N2/", 1/ 1&&1+ 3N char called name 1/6

    initializes it to the word X"::3. It 1:,3 166, 1 N2/1:

    /%:: K1:%" 4=*9.. A; $3 -1&8 $D" "/6 3N $D" ,$&2/0L

    name[0] holds H

    name[1] holds e, "$#

    *$&2/0,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    68/79

    *$&2/0, HD" N3::3Q2/0 1&" "S%2K1:"/$)

    #D1& /1-"]_ R uX"::3uj

    #D1& f/1-" R uX"::3uj

    HD" f 2/62#1$", 1 I32/$"&L *3 $D" /1-" I32/$, $3 $D" N2&,$ #D1&

    ":"-"/$ 3N $D" #D1& 1&&1+L

    >^1-I:")

    CC ,8"$#D#D1& -",,10"]_ R uX"::3uj CC 3& %,") #D1& f-",,10" R uX"::3uj

    K326 ,"$%I4;

    n

    *"&21:L7"02/4@pAA;j

    o

    K326 :33I4;

    n

    *"&21:LI&2/$:/4-",,10";j

    6":1+4[AAA;j

    o

    N

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    69/79

    =&&1+ 3N ,$&2/0,

    P" #1/ 1:,3 N3&- 1/ 1&&1+ 3N ,$&2/0, 4/3$ U%,$ 1&&1+ 3N #D1&;

    #har *letters[] = { 17#, 6"N,0D2);

    HD2, -"1/,)letters[0] holds 17#

    letters[1] holds 6"N, "$#

    *"&21: #3--%/2#1$23/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    70/79

    *"&21:L7"02/4,I""6; M ,"$, $D" 61$1 &1$" 2/ 72$, I"& ,"#3/6T

    QD"&" ,I""6 2, 3/" 3N $D"," &1$",) cAAT pAAT [(AAT (?AAT ?iAAT

    @pAAT [??AAT [@(AAT (iiAAT ci?AAT ahpAAT 3& [[a(AA

    *"&21:L1K12:17:"4; MM HD2, N%/#$23/ &"$%&/, $D" /%-7"& 3N 7+$",

    3N 61$1 2/ $D" 7%NN"& $D1$ 1&" Q12$2/0 N3& +3% $3 &"16L

    *"&21:LN:%,D4; M P12$, N3& $D" $&1/,-2,,23/ 3N 3%$032/0 ,"&21:

    61$1 $3 #3-I:"$"L

    *"&21:L&"164;&"16, 2/ 3/" 7+$" 43& M[ 2N /3 61$1 1K12:17:";

    *"&21:LQ&2$"48*&; M Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&" 8*&2, 1

    K1:%" $3 ,"/6 1, 1 ,2/0:" 7+$"L

    *"&21:LQ&2$"4()-;Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&" ()-2, 1

    ,$&2/0 $3 ,"/6 1, 1 ,"&2", 3N 7+$",

    *"&21:LQ&2$"4+!59 &'0; M Q&2$" 72/1&+ 61$1 $3 ,"&21: I3&$T QD"&"

    +!52, 1/ 1&&1+ $3 ,"/6 1, 1 ,"&2", 3N 7+$", 1/6 &'02, $D" :"/0$D

    3N $D" 7%NN"&

    *"&21: #3--%/2#1$23/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    71/79

    *"&21:LI&2/$47*)*; M O&2/$, 7*)*$3 $D" ,"&21: I3&$ 1, D%-1/M

    &"1617:" =*9.. $"^$L

    >^)

    *"&21:LI&2/$4hi; 02K", uhiu

    *"&21:LI&2/$4[L(c?ap; 02K", u[L(cu

    *"&21:LI&2/$4vZv; 02K", uZu

    *"&21:LI&2/$4uX"::3 Q3&:6Lu; 02K", uX"::3 Q3&:6Lu

    *"&21:LI&2/$:/47*)*; M I&2/$, 7*)*$3 $D" ,"&21: I3&$ 1, D%-1/M

    &"1617:" =*9.. $"^$ N3::3Q"6 7+ 1 #1&&210" &"$%&/ #D1&1#$"&

    *"&21: #3--%/2#1$23/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    72/79

    >^1-I:") Q" #1/ #3--%/2#1$" Q2$D 1&6%2/3 %,2/0 ,"&21: -3/2$3&CC,8"$#D

    2/$ 3%$O2/ R ?jK326 ,"$%I4;

    n

    I2//$"& [ 3& Au;j

    o

    K326 :33I4;

    n

    2N 4*"&21:L1K12:17:"4; \ A;

    n

    #D1& #D R *"&21:L&"164;j2N 4#D RR v[v;

    n 6202$1:P&2$"43%$O2/T X.BX;j o

    ":," 2N 4#D RR vAv;

    n 6202$1:P&2$"43%$O2/T !JP;j o

    o

    o

    G2 X 7

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    73/79

    G2/1&+T X"^ /%-7"&,

    G2/1&+ /%-7"& use leading B. Only works with 872$ K1:%",L

    >^1-I:") G[[[[[A[[

    X"^16"#2-1: /%-7"& M use leading 0x.

    >^1-I:") A^hG

    G2$Q2," 3I"&1$23/,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    74/79

    G2$Q2," 3I"&1$23/,

    q MM 72$Q2," =ZEL

    >^1-I:") G[[[[[A[[ q GAAAA[[[[ +2":6, GAAAA[A[[

    r M 72$Q2," JW

    >^1-I:") G[[[[[A[[ r GAAAA[[[[ +2":6, G[[[[[[[[

    w M 72$Q2," ZJH

    >^1-I:") w G[[[[[A[[ +2":6, GAAAAA[AA

    ./$"&&%I$,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    75/79

    ./$"&&%I$,

    =&6%2/3 2, ,2/0:" $D&"16L *3 -3/2$3&2/0 $D"

    3##%&&"/#" 3N 1/ "K"/$ %,", %I I&"#23%, 9OF$2-"L

    F," 2/$"&&%I$ 2/,$"16L

    9OF Q2:: I"&N3&- 2$, &"0%:1& 1#$2K2$2", %/$2:2/$"&&%I$ 3##%&,L HD"/ 2$ Q2:: ,%,I"/6

    QD1$"K"& 2$ 2, 632/0 1/6 &%/, 1 N%/#$23/ $3

    D1/6:" $D" 2/$"&&%I$L =&6%2/3 F/3 D1, ( 2/$"&&%I$ I2/, 4O2/ ( 1/6 c;

    #3&&",I3/62/0 $3 2/$"&&%I$ A 1/6 [ &",I"#$2K":+L

    F,2/0 2/$"&&%I$,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    76/79

    0 I =$$1#D 1 ,20/1: $3 1/ 2/$"&&%I$ I2/L

    =,,3#21$" 1 N%/#$23/T 2/$"&&%I$ ,"&K2#" &3%$2/" 4.*W;T Q2$D $D"

    2/$"&&%I$)

    1$$1#D./$"&&%I$42/$"&&%I$T N%/#$23/T -36";

    QD"&"

    2/$"&&%I$) $D" /%-7"& 3N $D" 2/$"&&%I$ 4A 3& [;

    N%/#$23/) $D" /1-" 3N $D" .*W

    -36") 6"N2/", QD"/ $D" 2/$"&&%I$ ,D3%:6 7" $&200"&"6L

    !JP $3 $&200"& $D" 2/$"&&%I$ QD"/"K"& $D" I2/ 2, :3QT

    9X=ZB> $3 $&200"& $D" 2/$"&&%I$ QD"/"K"& $D" I2/ #D1/0",

    K1:%"

    W.*.ZB $3 $&200"& QD"/ $D" I2/ 03", N&3- :3Q $3 D20DT

    5=!!.ZB QD"/ $D" I2/ 03", N&3- D20D $3 :3QL

    PD"/ $D" 2/$"&&%I$ 3##%&,T $D" 1&6%2/3 Q2:: &%/ $D" .*WL

    PD"/ $D" .*W 2, 63/"T $D" 1&6%2/3 Q2:: &",%-" 2$, &"0%:1&

    1#$2K2$2", 7"N3&" $D" 2/$"&&%I$23/L

    F,2/0 2/$"&&%I$,

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    77/79

    0 I >^1-I:")

    CC,8"$#D hMA?

    2/$ 2/$"&&%I$O2/ R (j

    2/$ :"6O2/ R [cj

    2/$ I"&236 R aAAj

    K326 ,"$%I4;

    n

    I2/

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    78/79

    0 C F," W"1:M$2-" Q2/63Q, $1&0"$ 4&$Q2/$0$; $33:73^

    I1#8"$ 2/I%$ 7:3#8

    I1#8"$ 3%$I%$ 7:3#8

    4-18" ,%&" $3 ,"$ $D" #3&&"#$ 9J< I3&$ $D" 1&6%2/3 2, #3//"#$"6 $3;

    Data type: single in -1$:17 (4 bytes) is the same as float in

    =&6%2/3

    F," *"&21:LQ&2$" 2/ 1&6%2/3 to send data to packet input block in,2-%:2/8L HD" N3::3Q2/0 ,"/6, $D" K1:%" ,$3&"6 2/ 1 N:31$ K1&217:"

    xyz to ,2-%:2/8)

    *"&21:LQ&2$"444%/2$ix$f;q^+V;T?;j

    QD"&"T

    uint8_t means size is 1 byte, i.e. 8 bits

    * means pointer

    &xyz means address of xyz

    4 means there are 4 bytes altogether to send

    ./$"&N1#2/0 Q2$D ,2-%:2/8

  • 7/26/2019 Lec2 FeedbackControl Arduino-complete

    79/79

    0 F," *"&21:L&"16 2/ 1&6%2/3 to read data sent from packet output

    7:3#8 2/ ,2-%:2/8L HD" N3::3Q2/0 &"16, 1 ?M7+$" N:31$ 61$1 N&3-

    ,2-%:2/8 into a variable 6"N:

    QD2:" 4s*"&21:L1K12:17:"4;; no

    4442/$ix$f;4q6"N;;]A_; R *"&21:L&"164;j

    QD2:" 4s*"&21:L1K12:17:"4;; no4442/$ix$f;4q6"N;;][_; R *"&21:L&"164;j

    QD2:" 4s*"&21:L1K12:17:"4;; no

    4442/$ix$f;4q6"N;;](_; R *"&21:L&"164;j

    QD2:" 4s*"&21:L1K12:17:"4;; no

    4442/$ix$f;4q6"N;;]c_; R *"&21:L&"164;j

    Z3$" $D1$ $D"&" 1&" ? &"16, 43/" 7+$" 1$ 1 $2-";L 52&,$ 2/$3 6"N]A_T