Control for a Delayed inverted pendulum

2 views (last 30 days)
James Rhodes
James Rhodes on 2 Oct 2020
Answered: Siddharth Jawahar on 13 May 2023
Hi, I've been working on my control project and have had some trouble recently any help would be appreciated!
I'm currently trying to control an inverted pendulum system within Simulink, where the inverted pendulum has been modelled using Multibody Simscape (see photo):
I'm trying to control both the angle, and position of the inverted pendulum, meaning the system is SIMO. However, one difficulty of the closed loop system is that the angle, and position feedback is sampled and held at 30Hz (sample and hold block), so there are purposely introduced quantisation errors in the system. This quantisation error has been implemented in the system like this (see photo):
If you could provide some advice, or resources useful on how to solve the following problems I am having I would be incredibly grateful:
  1. The system is stable for high sampling rates (3000hz), however not for 30hz. How do I ensure it can be stable at 30hz (high quantisation errors)?
  2. The current setup only controls either angle, or position, i'm not completely sure how to control both at the same time. Will I need to use an LQR for this?
Thankyou for your time!
  1 Comment
Alex
Alex on 2 May 2022
Regarding the sampling delay you could consider a Smith Predictor. You will need a transfer function of your plant and you will need to know the exact sampling rate. Then the smith predictor provides you with an estimate of the control error that compensates the quantisation error.
A quick google search led me to this video https://www.youtube.com/watch?v=2dPufo2I5E4 which i find quite useful.

Sign in to comment.

Answers (1)

Siddharth Jawahar
Siddharth Jawahar on 13 May 2023
Hi James,
From the image you provide it looks like the system is underactuated with just a reference for the pendulum angle? It would be good restructure your control algorithm to control the angle and the cart position.
Additionally, we have a documentation example that shows the workflow using the systune. systune solves an optimization problem to find the controller parameters that best meet the tuning goals. This involves adjusting the parameters of the tunable components to minimize the discrepancy between the system's performance and the specified goals. The solution it provides is a set of controller parameters that, theoretically, optimally balance the specified performance metrics.
Please look at the systune example which has a inner loop angle controller and an outer loop position controller for an inverted pendulum.
HTH,
Sid

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!