How do I solve "Error in port widths or dimensions" error in Simulink?
4 views (last 30 days)
Show older comments
d
5 Comments
Accepted Answer
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
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
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
More Answers (0)
See Also
Categories
Find more on Monte Carlo Analysis 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!