MATLAB Answers

problem with signal dimension

6 views (last 30 days)
manikya valli
manikya valli on 21 Mar 2016
Commented: manikya valli on 21 Mar 2016
Hi, I am getting 'index expression out of bounds' error when I compiling my simlink model. It is the problem with signal dimension. In my code q_v and w_bi are of 3x1 matrices but when I compiling simlink model (attached here), it is treating as scalars.Please help me how to specify signal dimension to q_v, w_bi in the following code and corresponding simulink model is attached.
function [q_v_dot, q4_dot,w_bi_dot] = sc_dyn(q_v,q4,w_bi,tau)
I=[0.0027 0 0;0 0.0107 0;0 0 0.0101];
w_bi_dot = inv(I)*(tau - Smtrx(w_bi)*(I*w_bi));
q_v_dot =(1/2)*(q4*eye(3)+Smtrx(q_v))*w_bi;
q4_dot = -(1/2)*q_v'*w_bi;
function S=Smtrx(i)
S = [0 -i(3) i(2);i(3) 0 -i(1);-i(2) i(1) 0];


Sign in to comment.

Answers (1)

Vaibhav Awale
Vaibhav Awale on 21 Mar 2016
Hi Manikya,
I do not find any attached model. However to resolve the dimension mismatch error, you can specify the dimensions of your inputs and outputs of MATLAB function block. To do this, you can open "Model Explorer" by pressing "Ctrl-H" or by navigating to "View->Model Explorer-> Model Explorer".
Inside Model Explorer, you can specify the dimension of signals used in MATLAB functions "sc_dyn" and "Smtrx" by navigating to the appropriate MATLAB function block and specifying "Size" of each signal.
I hope this helps.

  1 Comment

manikya valli
manikya valli on 21 Mar 2016
Thank you very much. Problem solved

Sign in to comment.

Sign in to answer this question.

Translated by