place/motor_pd.py
changeset 0 0efde00f9229
equal deleted inserted replaced
-1:000000000000 0:0efde00f9229
       
     1 #!/usr/bin/python
       
     2 # 9.21
       
     3 
       
     4 import os, sys
       
     5 sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"]
       
     6 
       
     7 import scipy as sp
       
     8 from myc2d import myc2d
       
     9 from scipy import signal
       
    10 from desired import desired
       
    11 from pd import pd
       
    12 
       
    13 # Motor control problem
       
    14 # Transfer function
       
    15 
       
    16 a = sp.array([[-1, 0], [1, 0]]) 
       
    17 b = sp.array([[1],[0]]) 
       
    18 c = sp.array([0, 1])
       
    19 d = 0
       
    20 G = signal.lti(a,b,c,d)
       
    21 Ts = 0.25
       
    22 B, A, k = myc2d(G,Ts)
       
    23 num, den = G.num, G.den
       
    24 
       
    25 # Transient specifications
       
    26 rise = 3
       
    27 epsilon = 0.05
       
    28 phi = desired(Ts,rise,epsilon)
       
    29 
       
    30 # Controller design
       
    31 Delta = 1 # No internal model of step used
       
    32 Rc, Sc = pp_pid(B, A, k, phi, Delta)
       
    33 
       
    34 # continuous time controller
       
    35 K, taud, N = pd(Rc, Sc, Ts)
       
    36 numb = K*sp.array([1, taud*(1+1/N)]) 
       
    37 denb = sp.array([1, taud/N])
       
    38 numf = 1
       
    39 denf = 1
       
    40 
       
    41 # simulation parameters
       
    42 st = 1 # desired change in position
       
    43 t_init = 0 # simulation start time
       
    44 t_final = 20 # simulation end time
       
    45 st1 = 0
       
    46 
       
    47 # continuous controller simulation: g_s_cl3.cos
       
    48 num1 = 0
       
    49 den1 = 1
       
    50 
       
    51 # discrete controller simulation: g_s_cl2.cos
       
    52 # u1: -0.1 to 0.8
       
    53 # y1: 0 to 1.4
       
    54 C = 0
       
    55 D = 1
       
    56 N = 1
       
    57 gamm = 1
       
    58 Tc = Sc