User Tools

Site Tools


ece6554:project_ballbeam

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ece6554:project_ballbeam [2019/04/17 12:23] – [Adding Motor Dynamics] pvelaece6554:project_ballbeam [2023/03/06 10:31] (current) – external edit 127.0.0.1
Line 56: Line 56:
  
 Variables: Variables:
 +Variables:
 +^ Parameter ^ Value ^
 +| $J_m$ | 0.043 |
 +| $K$ | 4.91 |
 +| $L_m$ | 0.0016 |
 +| $R_m$ | 4.7 |
 +| $K_e$ | 4.77 |
  
 +Obtained from Wang (2007).
 ==== Stabilization and Tracking ==== ==== Stabilization and Tracking ====
  
 Stabilization of the system would be to some value $(x^*, 0)$ where the ball is on the beam and presumably the beam is not angled. The simplest stabilization would be to some time-varying signal $(x^*(t), \dot x^*(t))$ like a sinusoid or some rsteps like function where the magnitude of $x^*(t)$ is reasonable and time rate of change is likewise reasonably bounded. At this point, you should be able to pick reasonable tracking objectives for demonstrating the outcomes of your controllers, adaptive or otherwise. Stabilization of the system would be to some value $(x^*, 0)$ where the ball is on the beam and presumably the beam is not angled. The simplest stabilization would be to some time-varying signal $(x^*(t), \dot x^*(t))$ like a sinusoid or some rsteps like function where the magnitude of $x^*(t)$ is reasonable and time rate of change is likewise reasonably bounded. At this point, you should be able to pick reasonable tracking objectives for demonstrating the outcomes of your controllers, adaptive or otherwise.
-===== Activities =====+====== Activities ======
 ---------------------- ----------------------
  
-==== Step 1: Baseline Adaptive Systems ==== +===== Step 1: Baseline Adaptive Systems ===== 
-=== Linear Version ===+==== Linear Version ====
  
 Linearize the system about the zero set-point and derive a stabilizing linear controller for the ball-beam system.  Modify the parameters by about 20%, and show how the performance degrades versus knowing the ideal model. Create an adaptive controller that can improve the overall performance of the ball-beam system. Linearize the system about the zero set-point and derive a stabilizing linear controller for the ball-beam system.  Modify the parameters by about 20%, and show how the performance degrades versus knowing the ideal model. Create an adaptive controller that can improve the overall performance of the ball-beam system.
Line 70: Line 78:
 For this part, please run the versions with linear dynamics and with nonlinear dynamics. That means there will be four instances run based on the binary options of //dynamics// and //adaptive control// Since your control $u(t)$ is $\theta(t)$, you will naturally not have access to $\dot \theta$.  The way around this is to design the system in simulink and use a $d/dt$ block to obtain the derivative of the input for use as $\dot \theta$.  Until you get to the later steps, where the dynamics of $\theta$ are utilized, you'll have to use this particular cheat. For this part, please run the versions with linear dynamics and with nonlinear dynamics. That means there will be four instances run based on the binary options of //dynamics// and //adaptive control// Since your control $u(t)$ is $\theta(t)$, you will naturally not have access to $\dot \theta$.  The way around this is to design the system in simulink and use a $d/dt$ block to obtain the derivative of the input for use as $\dot \theta$.  Until you get to the later steps, where the dynamics of $\theta$ are utilized, you'll have to use this particular cheat.
  
-=== Nonlinear Version ===+==== Nonlinear Version ====
  
 Create a nonlinear adaptive controller that should improve the overall performance of the ball-beam system. The nonlinearieties lie in the span of the control. Rewrite the equations so that this is the case and make sure to include the control defect in the equations arising from the sine function; basically try to think of the problem as a linear system plus a nonlinear defect. Provide the massaged equations of motion. Create a nonlinear adaptive controller that should improve the overall performance of the ball-beam system. The nonlinearieties lie in the span of the control. Rewrite the equations so that this is the case and make sure to include the control defect in the equations arising from the sine function; basically try to think of the problem as a linear system plus a nonlinear defect. Provide the massaged equations of motion.
Line 80: Line 88:
  
 --------------------------------------- ---------------------------------------
-==== Step 2: Full Linear System (An Almost Backstepping Approach) ====+===== Step 2: Full Linear System (An Almost Backstepping Approach) =====
  
-=== Motor Control: Linear ===+==== Motor Control: Linear ====
  
 Add in the motor dynamics and have them be linearized around the steady-state. Work out what steady-state should be for a given non-zero target ball position $(x^*, 0)$ (it should be reasonably located, as in not too far out). Have your trajectories also be relative to this position so that the linearization remains valid.  Work out a good controller for this fifth order system. Remember that you are controlling $x$ via $\theta$ which is controlled through $I$ which has the control $V$.  Provide the $A$ and $B$ matrices. Add in the motor dynamics and have them be linearized around the steady-state. Work out what steady-state should be for a given non-zero target ball position $(x^*, 0)$ (it should be reasonably located, as in not too far out). Have your trajectories also be relative to this position so that the linearization remains valid.  Work out a good controller for this fifth order system. Remember that you are controlling $x$ via $\theta$ which is controlled through $I$ which has the control $V$.  Provide the $A$ and $B$ matrices.
Line 88: Line 96:
 This linear system is looking a lot like a backstepping control process, but where backstepping is usually not applied because the system should be controllable in the linearization. Since it is controllable in the linearization, all that is needed is to design a stabilizing controller for the fifth order system. Be careful about how quickly things stabilize as the main objective is to properly control the ball, then to control the beam. This linear system is looking a lot like a backstepping control process, but where backstepping is usually not applied because the system should be controllable in the linearization. Since it is controllable in the linearization, all that is needed is to design a stabilizing controller for the fifth order system. Be careful about how quickly things stabilize as the main objective is to properly control the ball, then to control the beam.
  
-=== Linear Adaptive Control ===+==== Linear Adaptive Control ====
  
 Incorporate adaptive control to correct for the unmatched uncertainty. Randomly perturb by about 15% the parameters.  Since the uncertainty is unmatched, you will have to work out a backstepping type of adaptive control law. The uncertainty hits the $\dot x$, $\dot \theta$, $\iota$ coordinates dynamics. Provide your derivation of the adaptive control law, the final set of equations, and simulations showing it in action. Incorporate adaptive control to correct for the unmatched uncertainty. Randomly perturb by about 15% the parameters.  Since the uncertainty is unmatched, you will have to work out a backstepping type of adaptive control law. The uncertainty hits the $\dot x$, $\dot \theta$, $\iota$ coordinates dynamics. Provide your derivation of the adaptive control law, the final set of equations, and simulations showing it in action.
 +
 +=== Tips: De-Coupled then Re-Coupled Adaptive Systems ===
  
 //Tip:// Designing a fifth-order backstepping method is going to be pretty nasty, especially because of the dependency structure of things.  Instead, decouple the system into two parts.  One is the subsystem from Step 1 and the second is the new motor dynamics subsystem.  Design a backstepping controller for the new motor dynamics subsystem independent of the ball subsystem.  You will have to treat the ball signal as an external input in the decoupled system.  Go ahead and do that when synthesizing the backstepping control policy for the motor subsystem.  Get it to work out, then add on the adaptive ball system from Step 1.  This is not 100% correct/ideal, but it is much simpler than attempting a full backstepping design that will end up with lord knows how many differentiated signals. //Tip:// Designing a fifth-order backstepping method is going to be pretty nasty, especially because of the dependency structure of things.  Instead, decouple the system into two parts.  One is the subsystem from Step 1 and the second is the new motor dynamics subsystem.  Design a backstepping controller for the new motor dynamics subsystem independent of the ball subsystem.  You will have to treat the ball signal as an external input in the decoupled system.  Go ahead and do that when synthesizing the backstepping control policy for the motor subsystem.  Get it to work out, then add on the adaptive ball system from Step 1.  This is not 100% correct/ideal, but it is much simpler than attempting a full backstepping design that will end up with lord knows how many differentiated signals.
 +
 +//Tip:// When designing the back-stepping type adaptive controller for the three new states, you should identify some candidate $x_1$ dynamics for the ball-beam part to be used in the motor controller. With $x_1$ specified in closed-form, the associated time derivatives can also be computed in closed form.  These should be used as exogenous signals in the linear, back-stepping type adaptive controller.  Later, when combining with the adaptive controller for the ball sub-system, you'll be trying to track the desired adaptive control law for the motor sub-system.
  
 --------------------------------------- ---------------------------------------
-==== Step 3: Nonlinear Adaptive Backstepping ====+===== Step 3: Nonlinear Adaptive Backstepping ====
 + 
 +**This Step should not be done for ECE6554 Spring 2019. Only complete Steps 1 + 2.**
  
 Translate the linear adaptive backstepping strategy to the nonlinear system. Start with the vanilla nonlinear backstepping method, then make it adaptive. Translate the linear adaptive backstepping strategy to the nonlinear system. Start with the vanilla nonlinear backstepping method, then make it adaptive.
  
-=== Nonlinear Model Inversion with Backstepping ===+==== Nonlinear Model Inversion with Backstepping ====
  
 Consider the nonlinearities of the system and identify a backstepping approach to controlling the system. Get the baseline backstepping method working.  It should resemble that of the linear controller from Step 2 but with nonlinear terms. Consider the nonlinearities of the system and identify a backstepping approach to controlling the system. Get the baseline backstepping method working.  It should resemble that of the linear controller from Step 2 but with nonlinear terms.
  
  
-=== Nonlinear Model Inversion with Adaptive Backstepping ==+==== Nonlinear Model Inversion with Adaptive Backstepping ====
  
 Add in adaptation to the backstepping controller, using the same 15% perturbed model. Add in adaptation to the backstepping controller, using the same 15% perturbed model.
Line 113: Line 127:
  
   * J. Hauser, S. Sastry, P. Kokotovic. "Nonlinear Control via Approximate Input-Output Linearization: The Ball and Beam Example." //IEEE Trans on Automatic Control//, 37(3):392-398, 1992. [[https://ieeexplore.ieee.org/document/119645 | IEEE Xplore]]   * J. Hauser, S. Sastry, P. Kokotovic. "Nonlinear Control via Approximate Input-Output Linearization: The Ball and Beam Example." //IEEE Trans on Automatic Control//, 37(3):392-398, 1992. [[https://ieeexplore.ieee.org/document/119645 | IEEE Xplore]]
 +  * W. Wang. "Control of a Ball and Beam System," MS Thesis, University of Adelaide, 2007. [[ http://data.mecheng.adelaide.edu.au/robotics/projects/2007/BallBeam/Wei_Final_Thesis.pdf | pdf ]]
  
 ------ ------
ece6554/project_ballbeam.1555518184.txt.gz · Last modified: 2023/03/06 10:31 (external edit)