matlab运行容量小,可变大小(运行时)输入Simulink Matlab

我在simulink中遇到可变大小信号的大问题 . 我有一个带有函数的matlab函数块,它应该接受一个可变大小(运行时)数组,并且需要评估输出 . 特别地,输入数组是具有整数的1xn数组,并且每个整数表示轨迹的一部分(例如,序列:直线,直线,圆,半圆,直线可以由数组表示[1 1 2 3 1]) . 这个阵列,所以轨迹,可能会在模拟(机器人的路径规划)中发生变化,但我得到了大量的错误 . 我在输入的数据/端口(没有大小)和输出(大小代表上限)中放置了可变大小 . 如果我在输入中放置了一个上限,即使我放置了可变大小,simulink也会期望具有该维度的输入 .

我认为Simulink会因为不知道输入大小而产生错误,因此无法分配内存 . 一些帮助?

谢谢

代码的一小部分... prim是可变大小的输入,而所有输出都是可变大小 .

function [x, y, vx, vy, ax, ay, tf] = trajectoryPlanUniform(prim, discr, xdiscr,

ydiscr, xi, yi, vmax, amax)

len = size(prim, 2);

tf = zeros(1, len+1); tf(1, 1) = 0;

x = zeros(6, len); y = zeros(6, len);

vx = zeros(6, len); vy = zeros(6, len);

ax = zeros(6, len); ay = zeros(6, len);

xitemp = xdiscr; yitemp = ydiscr;

vxitemp = 0; vyitemp = 0; vftemp = vmax;

axitemp = 0; ayitemp = 0; aftemp = amax;

xytot = zeros(2,len+1);

xytot(1,1) = xi; xytot(2,1) = yi;

for i = 1:len

[x(:,i), y(:,i), vx(:,i), vy(:,i), ax(:,i), ay(:,i), tf(i+1)] = trajectoryCallUniform(prim(i), discr, xitemp, yitemp, vxitemp, vyitemp, vftemp, axitemp, ayitemp, aftemp, tf(i), vmax, amax);

[xitemp, yitemp, vxitemp, vyitemp, axitemp, ayitemp] = calculateTrajectoryUniform(prim(i), x(:,i), y(:,i), vx(:,i), vy(:,i), ax(:,i), ay(:,i), tf(i+1));

xytot(1,i+1) = xitemp;

xytot(2,i+1) = yitemp;

if i == (len - 1)

vftemp = 0;

aftemp = 0;

end

end

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值