Update Content - 2022-03-15
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
+++
|
||||
title = "Multi-stage actuation systems and control"
|
||||
author = ["Thomas Dehaeze"]
|
||||
author = ["Dehaeze Thomas"]
|
||||
description = "Proposes a way to combine multiple actuators (short stroke and long stroke) for control."
|
||||
keywords = ["Control", "Mechatronics"]
|
||||
draft = false
|
||||
@@ -11,10 +11,10 @@ Tags
|
||||
|
||||
|
||||
Reference
|
||||
: ([Du and Pang 2019](#org2403f17))
|
||||
: (<a href="#citeproc_bib_item_1">Du and Pang 2019</a>)
|
||||
|
||||
Author(s)
|
||||
: Du, C., & Pang, C. K.
|
||||
: Du, C., & Pang, C. K.
|
||||
|
||||
Year
|
||||
: 2019
|
||||
@@ -43,11 +43,11 @@ When high bandwidth, high position accuracy and long stroke are required simulta
|
||||
Popular choices for coarse actuator are:
|
||||
|
||||
- DC motor
|
||||
- [Voice Coil Motors]({{< relref "voice_coil_actuators" >}}) (VCM)
|
||||
- [Voice Coil Motors]({{< relref "voice_coil_actuators.md" >}}) (VCM)
|
||||
- Permanent magnet stepper motor
|
||||
- Permanent magnet linear synchronous motor
|
||||
|
||||
As fine actuators, most of the time [Piezoelectric Actuators]({{< relref "piezoelectric_actuators" >}}) are used.
|
||||
As fine actuators, most of the time [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}) are used.
|
||||
|
||||
In order to overcome fine actuator stringent stroke limitation and increase control bandwidth, three-stage actuation systems are necessary in practical applications.
|
||||
|
||||
@@ -75,19 +75,19 @@ which includes the resonance model
|
||||
and the resonance \\(P\_{ri}(s)\\) can be represented as one of the following forms
|
||||
|
||||
\begin{align\*}
|
||||
P\_{ri}(s) &= \frac{\omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\\\
|
||||
P\_{ri}(s) &= \frac{b\_{1i} \omega\_i s + b\_{0i} \omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\\\
|
||||
P\_{ri}(s) &= \frac{\omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\
|
||||
P\_{ri}(s) &= \frac{b\_{1i} \omega\_i s + b\_{0i} \omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2} \\\\
|
||||
P\_{ri}(s) &= \frac{b\_{2i} s^2 + b\_{1i} \omega\_i s + b\_{0i} \omega\_i^2}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2}
|
||||
\end{align\*}
|
||||
|
||||
|
||||
#### Secondary Actuators {#secondary-actuators}
|
||||
|
||||
We here consider two types of secondary actuators: the PZT milliactuator (figure [1](#org4cc1c22)) and the microactuator.
|
||||
We here consider two types of secondary actuators: the PZT milliactuator (figure [1](#figure--fig:pzt-actuator)) and the microactuator.
|
||||
|
||||
<a id="org4cc1c22"></a>
|
||||
<a id="figure--fig:pzt-actuator"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_pzt_actuator.png" caption="Figure 1: A PZT-actuator suspension" >}}
|
||||
{{< figure src="/ox-hugo/du19_pzt_actuator.png" caption="<span class=\"figure-number\">Figure 1: </span>A PZT-actuator suspension" >}}
|
||||
|
||||
There are three popular types of micro-actuators: electrostatic moving-slider microactuator, PZT slider-driven microactuator and thermal microactuator.
|
||||
There characteristics are shown on table [1](#table--tab:microactuator).
|
||||
@@ -107,11 +107,11 @@ There characteristics are shown on table [1](#table--tab:microactuator).
|
||||
|
||||
### Single-Stage Actuation Systems {#single-stage-actuation-systems}
|
||||
|
||||
A typical closed-loop control system is shown on figure [2](#org3b2af5e), where \\(P\_v(s)\\) and \\(C(z)\\) represent the actuator system and its controller.
|
||||
A typical closed-loop control system is shown on figure [2](#figure--fig:single-stage-control), where \\(P\_v(s)\\) and \\(C(z)\\) represent the actuator system and its controller.
|
||||
|
||||
<a id="org3b2af5e"></a>
|
||||
<a id="figure--fig:single-stage-control"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_single_stage_control.png" caption="Figure 2: Block diagram of a single-stage actuation system" >}}
|
||||
{{< figure src="/ox-hugo/du19_single_stage_control.png" caption="<span class=\"figure-number\">Figure 2: </span>Block diagram of a single-stage actuation system" >}}
|
||||
|
||||
|
||||
### Dual-Stage Actuation Systems {#dual-stage-actuation-systems}
|
||||
@@ -119,9 +119,9 @@ A typical closed-loop control system is shown on figure [2](#org3b2af5e), where
|
||||
Dual-stage actuation mechanism for the hard disk drives consists of a VCM actuator and a secondary actuator placed between the VCM and the sensor head.
|
||||
The VCM is used as the primary stage to provide long track seeking but with poor accuracy and slow response time, while the secondary stage actuator is used to provide higher positioning accuracy and faster response but with a stroke limit.
|
||||
|
||||
<a id="org9af6d44"></a>
|
||||
<a id="figure--fig:dual-stage-control"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_control.png" caption="Figure 3: Block diagram of dual-stage actuation system" >}}
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_control.png" caption="<span class=\"figure-number\">Figure 3: </span>Block diagram of dual-stage actuation system" >}}
|
||||
|
||||
|
||||
### Three-Stage Actuation Systems {#three-stage-actuation-systems}
|
||||
@@ -145,7 +145,7 @@ In view of this, the controller design for dual-stage actuation systems adopts a
|
||||
|
||||
### Control Schemes {#control-schemes}
|
||||
|
||||
A popular control scheme for dual-stage actuation system is the **decoupled structure** as shown in figure [4](#org0221f39).
|
||||
A popular control scheme for dual-stage actuation system is the **decoupled structure** as shown in figure [4](#figure--fig:decoupled-control).
|
||||
|
||||
- \\(C\_v(z)\\) and \\(C\_p(z)\\) are the controllers respectively, for the primary VCM actuator \\(P\_v(s)\\) and the secondary actuator \\(P\_p(s)\\).
|
||||
- \\(\hat{P}\_p(z)\\) is an approximation of \\(P\_p\\) to estimate \\(y\_p\\).
|
||||
@@ -153,9 +153,9 @@ A popular control scheme for dual-stage actuation system is the **decoupled stru
|
||||
- \\(n\\) is the measurement noise
|
||||
- \\(d\_u\\) stands for external vibration
|
||||
|
||||
<a id="org0221f39"></a>
|
||||
<a id="figure--fig:decoupled-control"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_decoupled_control.png" caption="Figure 4: Decoupled control structure for the dual-stage actuation system" >}}
|
||||
{{< figure src="/ox-hugo/du19_decoupled_control.png" caption="<span class=\"figure-number\">Figure 4: </span>Decoupled control structure for the dual-stage actuation system" >}}
|
||||
|
||||
The open-loop transfer function from \\(pes\\) to \\(y\\) is
|
||||
\\[ G(z) = P\_p(z) C\_p(z) + P\_v(z) C\_v(z) + P\_v(z) C\_v(z) \hat{P}\_p(z) C\_p(z) \\]
|
||||
@@ -175,16 +175,16 @@ The sensitivity functions of the VCM loop and the secondary actuator loop are
|
||||
And we obtain that the dual-stage sensitivity function \\(S(z)\\) is the product of \\(S\_v(z)\\) and \\(S\_p(z)\\).
|
||||
Thus, the dual-stage system control design can be decoupled into two independent controller designs.
|
||||
|
||||
Another type of control scheme is the **parallel structure** as shown in figure [5](#org9edcb9b).
|
||||
Another type of control scheme is the **parallel structure** as shown in figure [5](#figure--fig:parallel-control-structure).
|
||||
The open-loop transfer function from \\(pes\\) to \\(y\\) is
|
||||
\\[ G(z) = P\_p(z) C\_p(z) + P\_v(z) C\_v(z) \\]
|
||||
|
||||
The overall sensitivity function of the closed-loop system from \\(r\\) to \\(pes\\) is
|
||||
\\[ S(z) = \frac{1}{1 + G(z)} = \frac{1}{1 + P\_p(z) C\_p(z) + P\_v(z) C\_v(z)} \\]
|
||||
|
||||
<a id="org9edcb9b"></a>
|
||||
<a id="figure--fig:parallel-control-structure"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_parallel_control_structure.png" caption="Figure 5: Parallel control structure for the dual-stage actuator system" >}}
|
||||
{{< figure src="/ox-hugo/du19_parallel_control_structure.png" caption="<span class=\"figure-number\">Figure 5: </span>Parallel control structure for the dual-stage actuator system" >}}
|
||||
|
||||
Because of the limited displacement range of the secondary actuator, the control efforts for the two actuators should be distributed properly when designing respective controllers to meet the required performance, make the actuators not conflict with each other, as well as prevent the saturation of the secondary actuator.
|
||||
|
||||
@@ -192,7 +192,7 @@ Because of the limited displacement range of the secondary actuator, the control
|
||||
### Controller Design Method in the Continuous-Time Domain {#controller-design-method-in-the-continuous-time-domain}
|
||||
|
||||
\\(\mathcal{H}\_\infty\\) loop shaping method is used to design the controllers for the primary and secondary actuators.
|
||||
The structure of the \\(\mathcal{H}\_\infty\\) loop shaping method is plotted in figure [6](#org24873cb) where \\(W(s)\\) is a weighting function relevant to the designed control system performance such as the sensitivity function.
|
||||
The structure of the \\(\mathcal{H}\_\infty\\) loop shaping method is plotted in figure [6](#figure--fig:h-inf-diagram) where \\(W(s)\\) is a weighting function relevant to the designed control system performance such as the sensitivity function.
|
||||
|
||||
For a plant model \\(P(s)\\), a controller \\(C(s)\\) is to be designed such that the closed-loop system is stable and
|
||||
|
||||
@@ -202,11 +202,11 @@ For a plant model \\(P(s)\\), a controller \\(C(s)\\) is to be designed such tha
|
||||
|
||||
is satisfied, where \\(T\_{zw}\\) is the transfer function from \\(w\\) to \\(z\\): \\(T\_{zw} = S(s) W(s)\\).
|
||||
|
||||
<a id="org24873cb"></a>
|
||||
<a id="figure--fig:h-inf-diagram"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_h_inf_diagram.png" caption="Figure 6: Block diagram for \\(\mathcal{H}\_\infty\\) loop shaping method to design the controller \\(C(s)\\) with the weighting function \\(W(s)\\)" >}}
|
||||
{{< figure src="/ox-hugo/du19_h_inf_diagram.png" caption="<span class=\"figure-number\">Figure 6: </span>Block diagram for \\(\mathcal{H}\_\infty\\) loop shaping method to design the controller \\(C(s)\\) with the weighting function \\(W(s)\\)" >}}
|
||||
|
||||
Equation [1](#orga734f85) means that \\(S(s)\\) can be shaped similarly to the inverse of the chosen weighting function \\(W(s)\\).
|
||||
Equation [1](#org563f2ec) means that \\(S(s)\\) can be shaped similarly to the inverse of the chosen weighting function \\(W(s)\\).
|
||||
One form of \\(W(s)\\) is taken as
|
||||
|
||||
\begin{equation}
|
||||
@@ -219,18 +219,18 @@ The controller can then be synthesis using the linear matrix inequality (LMI) ap
|
||||
|
||||
The primary and secondary actuator control loops are designed separately for the dual-stage control systems.
|
||||
But when designing their respective controllers, certain performances are required for the two actuators, so that control efforts for the two actuators are distributed properly and the actuators don't conflict with each other's control authority.
|
||||
As seen in figure [7](#orgb5c1410), the VCM primary actuator open loop has a higher gain at low frequencies, and the secondary actuator open loop has a higher gain in the high-frequency range.
|
||||
As seen in figure [7](#figure--fig:dual-stage-loop-gain), the VCM primary actuator open loop has a higher gain at low frequencies, and the secondary actuator open loop has a higher gain in the high-frequency range.
|
||||
|
||||
<a id="orgb5c1410"></a>
|
||||
<a id="figure--fig:dual-stage-loop-gain"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_loop_gain.png" caption="Figure 7: Frequency responses of \\(G\_v(s) = C\_v(s)P\_v(s)\\) (solid line) and \\(G\_p(s) = C\_p(s) P\_p(s)\\) (dotted line)" >}}
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_loop_gain.png" caption="<span class=\"figure-number\">Figure 7: </span>Frequency responses of \\(G\_v(s) = C\_v(s)P\_v(s)\\) (solid line) and \\(G\_p(s) = C\_p(s) P\_p(s)\\) (dotted line)" >}}
|
||||
|
||||
The sensitivity functions are shown in figure [8](#orgd91ec4c), where the hump of \\(S\_v\\) is arranged within the bandwidth of \\(S\_p\\) and the hump of \\(S\_p\\) is lowered as much as possible.
|
||||
The sensitivity functions are shown in figure [8](#figure--fig:dual-stage-sensitivity), where the hump of \\(S\_v\\) is arranged within the bandwidth of \\(S\_p\\) and the hump of \\(S\_p\\) is lowered as much as possible.
|
||||
This needs to decrease the bandwidth of the primary actuator loop and increase the bandwidth of the secondary actuator loop.
|
||||
|
||||
<a id="orgd91ec4c"></a>
|
||||
<a id="figure--fig:dual-stage-sensitivity"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_sensitivity.png" caption="Figure 8: Frequency response of \\(S\_v(s)\\) and \\(S\_p(s)\\)" >}}
|
||||
{{< figure src="/ox-hugo/du19_dual_stage_sensitivity.png" caption="<span class=\"figure-number\">Figure 8: </span>Frequency response of \\(S\_v(s)\\) and \\(S\_p(s)\\)" >}}
|
||||
|
||||
A basic requirement of the dual-stage actuation control system is to make the individual primary and secondary loops stable.
|
||||
It also required that the primary actuator path has a higher gain than the secondary actuator path at low frequency range and the secondary actuator path has a higher gain than the primary actuator path in high-frequency range.
|
||||
@@ -261,15 +261,15 @@ A VCM actuator is used as the first-stage actuator denoted by \\(P\_v(s)\\), a P
|
||||
|
||||
### Control Strategy and Controller Design {#control-strategy-and-controller-design}
|
||||
|
||||
Figure [9](#org4bda714) shows the control structure for the three-stage actuation system.
|
||||
Figure [9](#figure--fig:three-stage-control) shows the control structure for the three-stage actuation system.
|
||||
|
||||
The control scheme is based on the decoupled master-slave dual-stage control and the third stage microactuator is added in parallel with the dual-stage control system.
|
||||
The parallel format is advantageous to the overall control bandwidth enhancement, especially for the microactuator having limited stroke which restricts the bandwidth of its own loop.
|
||||
The reason why the decoupled control structure is adopted here is that its overall sensitivity function is the product of those of the two individual loops, and the VCM and the PTZ controllers can be designed separately.
|
||||
|
||||
<a id="org4bda714"></a>
|
||||
<a id="figure--fig:three-stage-control"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_three_stage_control.png" caption="Figure 9: Control system for the three-stage actuation system" >}}
|
||||
{{< figure src="/ox-hugo/du19_three_stage_control.png" caption="<span class=\"figure-number\">Figure 9: </span>Control system for the three-stage actuation system" >}}
|
||||
|
||||
The open-loop transfer function of the three-stage actuation system is derived as
|
||||
|
||||
@@ -280,8 +280,8 @@ The open-loop transfer function of the three-stage actuation system is derived a
|
||||
with
|
||||
|
||||
\begin{align\*}
|
||||
G\_v(z) &= P\_v(z) C\_v(z) \\\\\\
|
||||
G\_p(z) &= P\_p(z) C\_p(z) \\\\\\
|
||||
G\_v(z) &= P\_v(z) C\_v(z) \\\\
|
||||
G\_p(z) &= P\_p(z) C\_p(z) \\\\
|
||||
G\_m(z) &= P\_m(z) C\_m(z)
|
||||
\end{align\*}
|
||||
|
||||
@@ -296,17 +296,17 @@ The PZT actuated milliactuator \\(P\_p(s)\\) works under a reasonably high bandw
|
||||
The third-stage actuator \\(P\_m(s)\\) is used to further push the bandwidth as high as possible.
|
||||
|
||||
The control performances of both the VCM and the PZT actuators are limited by their dominant resonance modes.
|
||||
The open-loop frequency responses of the three stages are shown on figure [10](#orgded6e76).
|
||||
The open-loop frequency responses of the three stages are shown on figure [10](#figure--fig:open-loop-three-stage).
|
||||
|
||||
<a id="orgded6e76"></a>
|
||||
<a id="figure--fig:open-loop-three-stage"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_open_loop_three_stage.png" caption="Figure 10: Frequency response of the open-loop transfer function" >}}
|
||||
{{< figure src="/ox-hugo/du19_open_loop_three_stage.png" caption="<span class=\"figure-number\">Figure 10: </span>Frequency response of the open-loop transfer function" >}}
|
||||
|
||||
The obtained sensitivity function is shown on figure [11](#orgde9819c).
|
||||
The obtained sensitivity function is shown on figure [11](#figure--fig:sensitivity-three-stage).
|
||||
|
||||
<a id="orgde9819c"></a>
|
||||
<a id="figure--fig:sensitivity-three-stage"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_sensitivity_three_stage.png" caption="Figure 11: Sensitivity function of the VCM single stage, the dual-stage and the three-stage loops" >}}
|
||||
{{< figure src="/ox-hugo/du19_sensitivity_three_stage.png" caption="<span class=\"figure-number\">Figure 11: </span>Sensitivity function of the VCM single stage, the dual-stage and the three-stage loops" >}}
|
||||
|
||||
|
||||
### Performance Evaluation {#performance-evaluation}
|
||||
@@ -319,13 +319,13 @@ Otherwise, saturation will occur in the control loop and the control system perf
|
||||
Therefore, the stroke specification of the actuators, especially milliactuator and microactuators, is very important for achievable control performance.
|
||||
Higher stroke actuators have stronger abilities to make sure that the control performances are not degraded in the presence of external vibrations.
|
||||
|
||||
For the three-stage control architecture as shown on figure [9](#org4bda714), the position error is
|
||||
For the three-stage control architecture as shown on figure [9](#figure--fig:three-stage-control), the position error is
|
||||
\\[ e = -S(P\_v d\_1 + d\_2 + d\_e) + S n \\]
|
||||
The control signals and positions of the actuators are given by
|
||||
|
||||
\begin{align\*}
|
||||
u\_p &= C\_p e,\ y\_p = P\_p C\_p e \\\\\\
|
||||
u\_m &= C\_m e,\ y\_m = P\_m C\_m e \\\\\\
|
||||
u\_p &= C\_p e,\ y\_p = P\_p C\_p e \\\\
|
||||
u\_m &= C\_m e,\ y\_m = P\_m C\_m e \\\\
|
||||
u\_v &= C\_v ( 1 + \hat{P}\_pC\_p ) e,\ y\_v = P\_v ( u\_v + d\_1 )
|
||||
\end{align\*}
|
||||
|
||||
@@ -335,11 +335,11 @@ Higher bandwidth/higher level of disturbance generally means high stroke needed.
|
||||
|
||||
### Different Configurations of the Control System {#different-configurations-of-the-control-system}
|
||||
|
||||
A decoupled control structure can be used for the three-stage actuation system (see figure [12](#orga3b472d)).
|
||||
A decoupled control structure can be used for the three-stage actuation system (see figure [12](#figure--fig:three-stage-decoupled)).
|
||||
|
||||
The overall sensitivity function is
|
||||
\\[ S(z) = \approx S\_v(z) S\_p(z) S\_m(z) \\]
|
||||
with \\(S\_v(z)\\) and \\(S\_p(z)\\) are defined in equation [1](#org442b5f7) and
|
||||
with \\(S\_v(z)\\) and \\(S\_p(z)\\) are defined in equation [1](#org9bf2b8d) and
|
||||
\\[ S\_m(z) = \frac{1}{1 + P\_m(z) C\_m(z)} \\]
|
||||
|
||||
Denote the dual-stage open-loop transfer function as \\(G\_d\\)
|
||||
@@ -348,23 +348,23 @@ Denote the dual-stage open-loop transfer function as \\(G\_d\\)
|
||||
The open-loop transfer function of the overall system is
|
||||
\\[ G(z) = G\_d(z) + G\_m(z) + G\_d(z) G\_m(z) \\]
|
||||
|
||||
<a id="orga3b472d"></a>
|
||||
<a id="figure--fig:three-stage-decoupled"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_three_stage_decoupled.png" caption="Figure 12: Decoupled control structure for the three-stage actuation system" >}}
|
||||
{{< figure src="/ox-hugo/du19_three_stage_decoupled.png" caption="<span class=\"figure-number\">Figure 12: </span>Decoupled control structure for the three-stage actuation system" >}}
|
||||
|
||||
The control signals and the positions of the three actuators are
|
||||
|
||||
\begin{align\*}
|
||||
u\_p &= C\_p(1 + \hat{P}\_m C\_m) e, \ y\_p = P\_p u\_p \\\\\\
|
||||
u\_m &= C\_m e, \ y\_m = P\_m M\_m e \\\\\\
|
||||
u\_p &= C\_p(1 + \hat{P}\_m C\_m) e, \ y\_p = P\_p u\_p \\\\
|
||||
u\_m &= C\_m e, \ y\_m = P\_m M\_m e \\\\
|
||||
u\_v &= C\_v(1 + \hat{P}\_p C\_p) (1 + \hat{P}\_m C\_m) e, \ y\_v = P\_v u\_v
|
||||
\end{align\*}
|
||||
|
||||
The decoupled configuration makes the low frequency gain much higher, and consequently there is much better rejection capability at low frequency compared to the parallel architecture (see figure [13](#org5311716)).
|
||||
The decoupled configuration makes the low frequency gain much higher, and consequently there is much better rejection capability at low frequency compared to the parallel architecture (see figure [13](#figure--fig:three-stage-decoupled-loop-gain)).
|
||||
|
||||
<a id="org5311716"></a>
|
||||
<a id="figure--fig:three-stage-decoupled-loop-gain"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/du19_three_stage_decoupled_loop_gain.png" caption="Figure 13: Frequency responses of the open-loop transfer functions for the three-stages parallel and decoupled structure" >}}
|
||||
{{< figure src="/ox-hugo/du19_three_stage_decoupled_loop_gain.png" caption="<span class=\"figure-number\">Figure 13: </span>Frequency responses of the open-loop transfer functions for the three-stages parallel and decoupled structure" >}}
|
||||
|
||||
|
||||
### Conclusion {#conclusion}
|
||||
@@ -671,7 +671,8 @@ Using PZT elements as a sensor to deal with high-frequency vibration beyond the
|
||||
As a more advanced concept, PZT elements being used as actuator and sensor simultaneously has also been addressed in this book with detailed scheme and controller design methodology for effective utilization.
|
||||
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org2403f17"></a>Du, Chunling, and Chee Khiang Pang. 2019. _Multi-Stage Actuation Systems and Control_. Boca Raton, FL: CRC Press.
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Du, Chunling, and Chee Khiang Pang. 2019. <i>Multi-Stage Actuation Systems and Control</i>. Boca Raton, FL: CRC Press.</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user