Update: The problem seems to be with the Matlab Fcn or my code. I used a subsystem of simulink blocks to replace my Matlab Fcn block and it works just fine now. I'm still curious about what I did wrong with that part so any comment is appreciated. Thanks.
Matlab function can't reach 2nd element of the input.
1 次查看(过去 30 天)
显示 更早的评论
When I try to run the simulink file shown below, I get the following error.
"Index expression out of bounds. Attempted to access element 2. The valid range is 1-1. More informationFunction '6DOF_Body/wb2Euler' (#29.69.70), line 5, column 13: "2" Launch diagnostic report."
However, the input signal is a 3 element vector. It's the output of 3 integrators joined with a mux. All the dimensions on the simulink file seems alright to me but I keep getting the same error. Why do you think that happens? Thank you for your answers. Here's the code and the simulink file:
function Euler_dot = wb2Euler(wb, Euler)
phi=Euler(1);
theta=Euler(2);
if (theta==pi/2)
theta=(pi/2)+0.001;
end
Rinv=[1 sin(phi)*tan(theta) cos(phi)*tan(theta);0 cos(phi) -sin(theta);0 -sin(phi)*sec(theta) cos(phi)*sec(theta)];
Euler_dot=Rinv*wb;
回答(1 个)
Sulaymon Eshkabilov
2021-7-24
In your simulink model, a mutiplication block (?) has to have matrix multiplication operation. The elementwise multiplication is by default that has to be changed to a matrix multiplication operation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!