可以通过以下代码添加收敛时间和计算时间曲线图:
```
% 计算粒子滤波器的收敛时间
converged = zeros(length(APD), 1);
for i = 1:length(APD)
if sum(weights.^2) < 1/N_particles
converged(i) = 1;
end
end
% 绘制收敛时间曲线图
figure;
plot(time, converged, 'linewidth', 2);
title('Convergence Time');
xlabel('Time');
ylabel('Converged');
% 绘制计算时间曲线图
time_elapsed = cumsum(squeeze(particles_history(1,:,3)));
figure;
plot(time_elapsed, squeeze(particles_history(:,1,2)), 'linewidth', 2);
title('Computation Time');
xlabel('Time Elapsed (s)');
ylabel('Weights');
```
这里首先计算了粒子滤波器的收敛时间,即当所有粒子的权重平方和小于 $1/N$ 时认为已经收敛。然后绘制了收敛时间曲线图和计算时间曲线图,其中计算时间是指每个时间步长的计算时间,通过记录每个粒子的搜索历史记录来计算。