Holooly Plus Logo

Question 10.10: Consider the servo system whose block diagram is given in Fi......

Consider the servo system whose block diagram is given in Figure 10.20. There are two tuning parameters\ C_1  and  C_2 that weight the position and velocity components of the feedback loops. . We wish to determine\ C_1  and  C_2 so that the steady-state response to the step input x(t) = 10 for t > 10 tracks the position\ y_{ss} = 3  and  v_{ss} = 6.

(a) Since this is a linear system, a theoretical solution is possible. Determine\ C_1  and  C_2  from theoretical considerations.

(b) Since two tracking criteria are given, use Equation (10.22) to determine\ C_1  and  C_2 .

(c) Implement the cyclic coordinates algorithm to find\ C_1  and  C_2 .

\ f(C_1,C_2)=\int_{t_0}^{t_{max}}{\{[y_{des}(t)-y(C_1,C_2,t)]^2 +[v_{des}(t)-v(C_1,C_2,t)]^2\}  dt}.          (10.22)

1020
Step-by-Step
The 'Blue Check Mark' means that this solution was answered by an expert.
Learn more on how do we answer questions.

Direct interpretation of the block diagram gives

\ y(t)=\int_{0}^{t}{[v(t)-C_2y(t)]  dt},                v(t)=\int_{0}^{t}{[x(t)-C_1y(t)]  dt}.

Differentiation results in the following differential equations:

\ \dot{y}(t)=v(t)-C_2y(t),\\\dot{v}(t)=x(t)-C_1y(t).                  (10.23)

(a) Equations (10.23) describe a linear system. As such, the output will tend to follow the input, so the choice to force the output to approach constant values was astute, since the input is also constant. At steady state, the derivatives go to zero, so\ x_{ss} – C_1y_{ss} = 0  and  v_{ss} – C_2y_{ss} = 0 . Since the steady-state output is specified in this problem,\ C_1 = x_{ss}/y_{ss}  and  C_2 = v_{ss}/y_{ss} . Substituting\ x_{ss} = 10,  y_{ss} = 3,  and  v_{ss} = 6 , it follows that\ C_1 = \frac{10}{3} \approx 3.33  and  C_2 = 2 , and the system becomes

\ \dot{y}(t)=v(t)-2y(t),\\\dot{v}(t)=10[1-\frac{1}{3}y(t)].                  (10.24)

Equations (10.24) can be solved either analytically or numerically. Regardless of the method, the solution is straightforward and the graph is sketched in Figure 10.21 over the time interval [0, 5]. Clearly, theory is confirmed by the system behavior.

(b) Since there are two criteria imposed on the system – one for position and one for velocity – and the time horizon is [0, 10], the objective function used is

\ f(C_1,C_2)=\int_{0}^{10}{[(3-y)^2 +(6-v)^2]  dt}.

A program segment producing functional values for this objective over the region\ 2 ≤ C_1 ≤ 5, 0 ≤ C_2 ≤3 with a mesh of resolution\ δC_1 = 0.2  and  δC_2 = 0.5 is given in Listing 10.9, and the corresponding output is given in Table 10.6. It is clear that the minimum value of the objective function is in the neighborhood of\ C_1 = 3.4, C_2 = 2.0 , but just exactly where is unknown. It seems fairly reasonable from the table that this point is in the region of uncertainty\ 3.2 ≤ C_1 ≤ 3.6, 1.5 ≤ C_2 ≤ 2.5 . This is a good region in which to proceed with the cyclic coordinates algorithm.

TABLE 10.6   Functional Values over a Uniform Grid [2,5] × [0,3], Example 10.10(b).

\ \begin{array}{c|cccccccc} \hline &C_2\space \space \space|&0.0&0.5&1.0&1.5&2.0&2.5&3.0\\\hline \underline {C_1}& \LARGE{\diagup} &&&&&&&\\2.0& &704&199&73&81&193&389&655\\2.2&&625&192&64&50&124&273&485\\2.4&&572&190&63&33&80&192&360\\2.6&&544&192&66&25&50&134&269\\2.8&&538&197&73&23&32&93&200\\3.0&&544&204&81&25&22&65&150\\3.2&&551&211&90&30&17&45&112\\3.4&&550&219&99&36&15&32&84\\3.6&&539&226&109&43&17&24&63\\3.8&&522&232&118&52&20&20&48\\4.0&&503&238&128&60&25&18&37\\4.2&&485&243&137&69&30&18&30\\4.4&&469&248&145&78&37&20&26\\4.6&&455&253&154&86&44&23&24\\4.8&&446&258&162&95&51&27&23\\5.0&&442&263&170&103&58&32&24\\\hline \end{array}

(c) The cyclic coordinates algorithm is applied to the system defined by Equations (10.23) in Listings 10.7, 10.8, and 10.10. In the main program cyclic (Listing 10.7), the initial point is arbitrarily chosen at\ C_1 = 6, C_2 = 5 . The comparison point is also arbitrary at\ C_1^* = 100, C_2^* = 100 , since this is sufficiently distant from (6,5) to force the Cauchy test to fail on the initial iteration and thus allow the algorithm to proceed. The parameters\ L, d,  and  \epsilon are all chosen as shown. The subroutine golden (Listing 10.8) requires no special parameter values except those sent from cyclic. Notice that d, which is half the initial length of uncertainty, was chosen large enough to more than encompass the 3 units shown in Table 10.6. The function objective performs the actual simulation, and is listed in Listing 10.10.

The output from cyclic forms a sequence of points\ C_1,   C_2 . These points are graphed in Figure 10.22. This sequence begins at the initial point, and progresses to the known optimal point\ C_1 = 3.33, C_2 = 2 . Notice how the Cauchy condition doesn’t always work well. Unless c is chosen extremely small, the process will terminate far too soon, since there is no general relationship between\ \left\|C^{(i)}-C^{(i+1)}\right\|  and  \left\|C^{(i)}-C_{min}\right\| . In other words, just because we haven’t traveled far doesn’t mean that we have a short distance yet to go!

\ t_{max} = 10
n = 100
\ h  = t_{max}/n
for \ C_1 = 2   to   5   step   .2

for \ C_2 = 0   to   3   step   .5

t = 0
v = 0
y = 0
f = 0
for  k = 1  to  n

t = hk
\ f = f + h[(3-y)^2+(6-v)^2]
\ v = v + h(10 – C_1y)
\ y = y + h(v-C_2y)

next  k
print  f,

next \ C_2
print

next \ C_1

LISTING 10.9   Creating a uniform grid over the constraint region [2, 5] × [0, 3], Example 10.10(b).

input\ \epsilon , L, d
input\ C_1, C_2
\ C_1^* = C_1 + 2\epsilon, C_2^* =C_2 + 2\epsilon
print\ C_1, C_2
i = 0
while\ |(C_1 -C_1^*)^2+(C_2 -C_2^*)^2|≥\epsilon

i = i + 1
\ C_1^* = C_1 
\ C_2^* =C_2
call golden\ (C_1, C_2 , 1, d, L)
print  i,\ C_1, C_2
call golden\ (C_1, C_2 , 2, d, L)
print\ C_1, C_2

end  while

LISTING 10.7 Main program cyclic to perform two-dimensional optimization.

subroutine golden\ (C_1, C_2 , η, d, L)

if \ η = 1   then   a = C_1 – d,  b = C_1 + d
if \ η = 2   then   a = C_2 – d,  b = C_2 + d
λ = (0.618)a + (0.382)b
μ = (0.382)a + (0.618)b
if \ η = 1   then  f_{left}=objective(λ, C_2 )  : f_{riqht} = objective(μ, C_2 )  :
if \ η = 2   then f_{left}=objective(C_1 , λ)  : f_{riqht} = objective(C_1 , μ)  :
end  if
while  b – a > L

if \ f_{left} < f_{right} then

b = μ
μ = λ
λ = (0.618)a+(0.382)b
\ f_{left} = f_{right}
if \ η = 1   then  f_{left}=objective(λ, C_2 )  : f_{riqht} = objective(μ, C_2 )  :
if \ η = 2   then f_{left}=objective(C_1 , λ)  : f_{riqht} = objective(C_1 , μ)  :

else

a = λ
λ = μ
μ = (0.382)a + (0.618)b
\ f_{left} = f_{right}
if \ η = 1   then  f_{left}=objective(λ, C_2 )  : f_{riqht} = objective(μ, C_2 )  :
if \ η = 2   then f_{left}=objective(C_1 , λ)  : f_{riqht} = objective(C_1 , μ)  :

end  if

end  while
if \ η = 1   then   C_1=\frac{1}{2}( a + b) 
if \ η = 2   then   C_2=\frac{1}{2}( a + b)

return

LISTING 10.8   The golden subroutine.

function objective \ (C_1,   C_2)

\ t_{max} = 30
n = 100
\ h = t_{max}/ n
t = 0
y = 0
v = 0
f = 0
for  k = 1  to  n

t = hk
\ f = f+h[(3-y)^2+(6-v)^2]
\ y = y + h(v-C_2 y)
\ v = v + h(10-C_1 y)

next  k
objective  =  f

return

LISTING 10.10 The function objective for Example 10.10.

1021
1022

Related Answered Questions

Question: 10.6

Verified Answer:

Recalling Equations (10.9), (10.12), and (10.15), ...