Download in PDF-format

Transcript
Section 3.11. Rigid spatial manipulator mechanism
87
Closed-loop simulation
The block diagram of Fig. 3.48 is extended with a feedback controller as shown in Fig. 3.51.
A feedback signal is computed by a controller that is implemented as a subsystem block and
a multiplication with the reduced mass matrix M 0 . The subsystem assumes that the input is a
vector with both δe and δ ė. These are the differences in joint positions and velocities which are
computed by comparing the actual motion and the nominal output. The output of the subsystem
is
K p δe + K v δ ė
with well chosen matrices K p and K v (see e.g. the lecture notes [1]). This output is multiplied
with the time-dependent 3 × 3 reduced mass matrix M 0 using a block from the spacar_lib
library. Finally the nominal input vector u0 is added as a feedforward signal.
robotinvlin
3
Unom
3
Setpoint U0
unom
3
u
Unom To Workspace
y
15
U To Workspace
Y To Workspace
3
6
6
Omega = 28
beta = 0.85
Kp Kv control
6
3
robotinvlin
times M0
3
3
15
3
15
robotsim
SPASIM
Selector
6
6
Selector E + Ed
Selector
Selector E
3
Scope E
yref
15
1.5
Yref To Workspace
robotinvlin
Reference Y0
15
15
Selector
6
Selector Eref + Edref
6
Selector
Display Time
3
Selector Eref
15
Scope Eref
15
15
Selector
t
3
Selector Ytip
Clock
Time To Workspace
Scope dYtip
Figure 3.51. Block diagram for a closed-loop simulation of the motion of the manipulator
mechanism using SIMULINK. Most signals are vectors and the numbers indicate the size of
the vectors.
The motion is simulated with the same parameters as in the open-loop simulation (see page 85).
In this case the actual size of the variable time step is somewhat smaller and after 183 time
steps the simulation is completed. The differences between the prescribed and actual trajectory
is much smaller in this case as is illustrated in Figs. 3.52 and 3.53. The maximum error of the
tip position is less than 1 mm which is better than 0.1%.
Figs. 3.54 and 3.55 show the feedforward part (u0 ) and feedback part (u − u0 ) of the input
applied to the manipulator, respectively. Clearly, the larger contribution is from the feedforward
part. The size of the feedback part is smaller and relatively large correction are only applied
during limited periods of time. However, as is clear from this example, this feedback is essential
to keep the manipulator on track.
The simulation for 1.5 s now requires 182 time steps, which is only slightly more than in the
open-loop simulation. However, the simulation takes much more time which is caused by the
occurrence of a so-called algebraic loop in the block diagram. The reason for this algebraic
loop is the presence of the joint accelerations in the output vector of the spasim block, as
accelerations depend algebraically on the input torques. These accelerations are only exported
to the workspace and are not used in the feedback loop so there is no real algebraic loop. Unfortunately, SIMULINK has no means to detect this. If you are not interested in the accelerations,
they can easily be removed from the output vector and the simulation speed will increase significantly.