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.