答案 0 :(得分:0)
你可以采取一种非常天真的方法,只需填充参考数组的每个元素。这很简单:
n = length(yaw)/length(yaw_ref);
yaw_ref_pad = zeros(length(yaw), 1);
for j = 1:length(yaw_ref)-1
yaw_ref_pad((n*j):(n*(j+1)) = yaw_ref(j);
end
你也可以做一些更具适应性的事情,这可能是也可能不是你想要的。此方法使用导数来确定填充参考应切换的位置。这可能被认为有点循环,因为您的系统看起来像一个过阻尼PID系统,它使用输出来为输入设定种子。
yaw_ref_pad = zeros(length(yaw), 1);
[x, peaks] = findpeaks(diff(yaw));
for j = 1:length(peaks)-1
yaw_ref_pad(peaks(j):peaks(j+1)) = yaw_ref(j);
end
无论哪种方式,填写yaw_ref_pad
后,您的结果都是
error = yaw_ref_pad - yaw;