diff --git a/docs/control-tracking.html b/docs/control-tracking.html index 6f71fe6..2b89ab4 100644 --- a/docs/control-tracking.html +++ b/docs/control-tracking.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +The control architecture is shown in Figure 1. @@ -375,8 +375,8 @@ Then, a diagonal (decentralized) controller \(\bm{K}_\mathcal{L}\) is used such
% Stewart Platform
@@ -407,8 +407,8 @@ references = initializeReferences(stewart);
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{L}}\). @@ -431,8 +431,8 @@ G.OutputName = {'L1', '
The diagonal terms of the plant is shown in Figure 2. @@ -466,8 +466,8 @@ We see that the plant is decoupled at low frequency which indicate that decentra
The controller consists of: @@ -496,8 +496,8 @@ Kl = diag(1./diag(abs(freqresp(G, wc))))
Let’s define some reference path to follow. @@ -596,8 +596,8 @@ zlim([0, inf]);
Such control architecture is easy to implement and give good results. @@ -618,8 +618,8 @@ However, as \(\mathcal{X}\) is not directly measured, it is possible that import
The centralized controller takes the position error \(\bm{\epsilon}_\mathcal{X}\) as an inputs and generate actuator forces \(\bm{\tau}\) (see Figure 9).
@@ -657,8 +657,8 @@ It is indeed a more complex computation explained in section
-
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{X}}\).
@@ -720,8 +720,8 @@ G.OutputName = {'Dx', '
The pose error \(\bm{\epsilon}_\mathcal{X}\) is first converted in the frame of the leg by using the Jacobian matrix.
@@ -742,8 +742,8 @@ Note here that the transformation from the pose error \(\bm{\epsilon}_\mathcal{X
We now multiply the plant by the Jacobian matrix as shown in Figure 10 to obtain a more diagonal plant.
@@ -793,8 +793,8 @@ Thus \(J \cdot G(\omega = 0) = J \cdot \frac{\delta\bm{\mathcal{X}}}{\delta\bm{\
The controller consists of:
@@ -831,8 +831,8 @@ The controller \(\bm{K} = \bm{K}_\mathcal{L} \bm{J}\) is computed.
We specify the reference path to follow.
@@ -876,8 +876,8 @@ save('./mat/control_tracking.mat',
A diagonal controller \(\bm{K}_\mathcal{X}\) take the pose error \(\bm{\epsilon}_\mathcal{X}\) and generate cartesian forces \(\bm{\mathcal{F}}\) that are then converted to actuators forces using the Jacobian as shown in Figure e 14.
@@ -896,8 +896,8 @@ The final implemented controller is \(\bm{K} = \bm{J}^{-T} \cdot \bm{K}_\mathcal
We now multiply the plant by the Jacobian matrix as shown in Figure 14 to obtain a more diagonal plant.
@@ -1019,8 +1019,8 @@ This control architecture can also give a dynamically decoupled plant if the Cen
The controller consists of:
@@ -1057,8 +1057,8 @@ The controller \(\bm{K} = \bm{J}^{-T} \bm{K}_\mathcal{X}\) is computed.
We specify the reference path to follow.
@@ -1102,8 +1102,8 @@ save('./mat/control_tracking.mat',
The plant \(\bm{G}\) is pre-multiply by \(\bm{G}^{-1}(\omega = 0)\) such that the “shaped plant” \(\bm{G}_0 = \bm{G} \bm{G}^{-1}(\omega = 0)\) is diagonal at low frequency.
@@ -1126,8 +1126,8 @@ The control architecture is shown in Figure 18.
The plant is pre-multiplied by \(\bm{G}^{-1}(\omega = 0)\).
@@ -1155,8 +1155,8 @@ The diagonal elements of the shaped plant are shown in Figure
-
We have that:
@@ -1222,8 +1222,8 @@ This error is much lower when using the diagonal control in the frame of the leg
Both control architecture gives similar results even tough the control in the Leg’s frame gives slightly better results.
@@ -1306,8 +1306,8 @@ Thus, this method should be quite robust against parameter variation (e.g. the p
Let’s consider the control schematic shown in Figure 23.
@@ -1348,8 +1348,8 @@ This second loop is responsible for the reference tracking.
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{L}\).
@@ -1408,8 +1408,8 @@ Gl.OutputName = {'L1',
We apply a decentralized (diagonal) direct velocity feedback.
@@ -1464,8 +1464,8 @@ The obtain loop gain is shown in Figure 26.
We use the Jacobian matrix to apply forces in the cartesian frame.
@@ -1516,15 +1516,17 @@ The obtained plant is shown in Figure 27.
The controller consists of:
Created: 2020-03-13 ven. 13:12 Created: 2020-03-13 ven. 13:232.2 Initialize the Stewart platform
+2.2 Initialize the Stewart platform
% Stewart Platform
@@ -689,8 +689,8 @@ references = initializeReferences(stewart);
2.3 Identification of the plant
+2.3 Identification of the plant
2.4.1 Control Architecture
+2.4.1 Control Architecture
2.4.2 Plant Analysis
+2.4.2 Plant Analysis
2.4.3 Controller Design
+2.4.3 Controller Design
2.4.4 Simulation
+2.4.4 Simulation
2.5.1 Control Architecture
+2.5.1 Control Architecture
2.5.2 Plant Analysis
+2.5.2 Plant Analysis
2.5.3 Controller Design
+2.5.3 Controller Design
2.5.4 Simulation
+2.5.4 Simulation
2.6.1 Control Architecture
+2.6.1 Control Architecture
2.6.2 Plant Analysis
+2.6.2 Plant Analysis
2.6.3 Controller Design
+2.6.3 Controller Design
2.8 Conclusion
+2.8 Conclusion
3.1 Control Schematic
+3.1 Control Schematic
3.2 Initialize the Stewart platform
+3.2 Initialize the Stewart platform
% Stewart Platform
@@ -1384,8 +1384,8 @@ references = initializeReferences(stewart);
3.3 First Control Loop - \(\bm{K}_\mathcal{L}\)
3.3.1 Identification
+3.3.1 Identification
3.3.2 Obtained Plant
+3.3.2 Obtained Plant
3.3.3 Controller Design
+3.3.3 Controller Design
3.4 Second Control Loop - \(\bm{K}_\mathcal{X}\)
3.4.1 Identification
+3.4.1 Identification
Kx = tf(zeros(6));
@@ -1492,8 +1492,8 @@ G.OutputName = {'Dx', '
3.4.2 Obtained Plant
+3.4.2 Obtained Plant
3.4.3 Controller Design
+3.4.3 Controller Design
3.6 Conclusion
+3.6 Conclusion