Error in using Adaptive MPC block

7 views (last 30 days)
paolo dini
paolo dini on 2 Mar 2021
Commented: zaidan zyadat on 3 Oct 2021
Hi everyone,
i am using the adaptive MPC block to control a Park Model of Brushless motor.
With classic MPC block i have no problem but when i use adaptive one there is some problem from size signals matching oint of view that i am not able to solve, which generates this error in Simulink:
Error in port widths or dimensions. The signal connected to the "Model.DX" port of the "Park_Model_FOC_Adaptive_MPC/Adaptive MPC Controller" block must be a matrix signal of 4 rows and 1 columns.
Error in port widths or dimensions. Output port 1 of 'Park_Model_FOC_Adaptive_MPC/Adaptive MPC Controller/MPC/MPC Matrix Signal Check DX/Input' is a one dimensional vector with 4 elements.
I share the files i have used to simulate the control loop.
Basically i exploits the mpc object from classic mpc and use it in adaptive one after convert its internal plant in dicrete time one.
To reproduce the mpc variable launch the "Park_Model_FOC_Linear_MPC" and in the command writes the follows line:
ct_plant = mpc1.Model.Plant;
dt_plant = c2d(ct_plant,0.001);
mpc1.Model.Plant = dt_plant;
then launch the "Park_Model_FOC_Adaptive_MPC" and so you can analyse my simulink model and see the errors.
I do not understand why the sizes does not match...
Thanks to who can respond.
Pierpaolo.
  5 Comments
Felix Schönig
Felix Schönig on 14 Jul 2021
@dekun wang You are a hero! Thanks so much! It is very stupid that they have hardcoded this into their template/example with the CSTR model. No idea why ... anyways, you are right!
zaidan zyadat
zaidan zyadat on 3 Oct 2021
Dear Pierpaolo ,
To solve the problem of widths based on my practical experience , you should go to matlab function and under edit data you will find A,B,....,DX so to speak , you can select the proper size for the matrix ,A(3,3) ,...., DX(3,1) and then you have go to mpc controller and open it from the arrow at the left-lower corner ,you will find blocks of ther you can add signal specifucation block and select the proper size compatible with the sizes you already selected in the matlab function .
hope this helps
Note : if you are phD student or working in industries I can help more if you need .
have a good luck

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!