How do I solve "Error in port widths or dimensions" error in Simulink?

4 views (last 30 days)
d
  5 Comments
Ankit
Ankit on 2 Oct 2020
great :) what are the values of k_1 and k_2 ? how have you defined them?

Sign in to comment.

Accepted Answer

Ankit
Ankit on 2 Oct 2020
function input = C_REG(q)
% global k_1 k_2
x=q(1);
y=q(2);
theta=q(3);
e_p=[-x -y];
sag=[cos(theta);sin(theta)];
gamma=atan2(y,x)-theta+pi;
% driving velocity
v=k_1*e_p.*sag;
% steering velocity
omega=k_2*gamma;
input = [v;omega];
you have to careful with matrix/vector multiplication. your e_p [1 x2 ] and sag [2x1] --> multiplication of e_p and sag gives a matrix of [2x2] and multiply with k1 [1] results in a vector of [1x2] --> driving velocity
and similarly omega is a scalar.
Could you please explain what is your expected output ? steering velocity vector or scalar.
and similary driving velocity?
  5 Comments
Ankit
Ankit on 2 Oct 2020
Hi no problem.
you have to correctly define your inputs.
I tried the following:
function [input1,input2] = C_REG(q)
global k_1 k_2
x=q(1);
y=q(2);
theta=q(3);
e_p=[-x -y];
sag=[cos(theta);sin(theta)];
gamma=atan2(y,x)-theta+pi;
% driving velocity
v=k_1.*e_p.*sag;
% steering velocity
omega=k_2*gamma;
input1 = v;
input2 = omega;
As I am not aware to your problem statement but you just need to see your sizes of inputs and outputs are correct!
omega is a scalar or vector?
as you see your v is a vector and omega is a scalar currently. You are not allowed to do the following
input = [v;omega]; % Dimensions of arrays being concatenated are not consistent so you will get an error.
Ankit
Ankit on 2 Oct 2020
try this. as you mentioned your v and omega are scalar following will work. let me know if it is clear now?
function input = C_REG(q)
global k_1 k_2
x=q(1);
y=q(2);
theta=q(3);
e_p=[-x -y];
sag=[cos(theta);sin(theta)];
gamma=atan2(y,x)-theta+pi;
% driving velocity
v=k_1*e_p*sag; % now it is scalar
% steering velocity
omega=k_2*gamma; % scalar
input = [v;omega]; % it is allowed

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!