How to design controller for models in Simscape multibody?

조회 수: 14 (최근 30일)
Farhan Ahamed
Farhan Ahamed 2021년 6월 23일
답변: J Chen 2021년 8월 3일
I'm currently working on designing a controller for stabilizing a self balancing bicycle that uses Control Moment Gyroscope for balancing. A simmechanics model of the self balancing bicycle was developed using Simscape Multibody. I'm trying to develop a MPC controller using the MPC toolbox. The MPC cannot linearize the simmechanics model. So, I collected precession torque as Input and Roll angle as output to make a SISO State space model. This is then fed into the system identification app to get a State Space with Identified Parameters. The idss correlation with collected data is 99.5% with one step prediction focus. Now, when I'm implementing the idss on simulink using idmodel block, the output of idmodel is not as expected. I'm planning to use the idss to tune my MPC controller. If the idss roll angle output doesn't match with the roll angle data of the model, then my controller cannot be tuned properly. I tried the transfer function as well. It doesn't work.So I require help in designing a controller using a simscape model.
The Simmechanics model is attached below. Thank you very much and I'm looking forward to hearing from you.

답변 (1개)

J Chen
J Chen 2021년 8월 3일
You can use MATLAB 'linearize' command to lineraize Simscape plant models, [sys, ~, info] = linearize(plantModel, opPoint). The complete sequence is:
  1. Create a specification for the operating point using opSpec = operspec(plantModel);
  2. adjust your opSpec to select known/non-steady state variables. more info here.
  3. Find the operating point using [opPoint, opReport] = findop(plantModel, opSpec)
  4. Perofrm lineraization [sys, ~, info] = linearize(plantModel, opPoint)
The linerized model then can be used in the MPC block. The angle state variables are tricky since Simscape MB use quaterion.

카테고리

Help CenterFile Exchange에서 Linear Plant Specification에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by