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

6 ビュー (過去 30 日間)
Flavio Clarizia
Flavio Clarizia 2020 年 10 月 1 日
編集済み: Flavio Clarizia 2020 年 10 月 3 日
d
  5 件のコメント
Ankit
Ankit 2020 年 10 月 2 日
try File --> Export Model to --> Previous Version -- 2018b
Ankit
Ankit 2020 年 10 月 2 日
great :) what are the values of k_1 and k_2 ? how have you defined them?

サインインしてコメントする。

採用された回答

Ankit
Ankit 2020 年 10 月 2 日
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 件のコメント
Ankit
Ankit 2020 年 10 月 2 日
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 2020 年 10 月 2 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSimulink についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by