Откуда это всё берётся?
26.01.2021
Уважаемые друзья! Прошу рассмотреть следующую модель:
Во входном файле вектор с отметками по времени с dt = 0.05 c, и соответствующие данные :
x_in = [0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0];
Мод...
Уважаемые друзья! Прошу рассмотреть следующую модель:
Во входном файле вектор с отметками по времени с dt = 0.05 c, и соответствующие данные :
x_in = [0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0];
Модель настроена на дискретный решатель с шагом, равным dt.
В выходном файле должен быть точно такой же массив с такими же отметками времени. Попробуем построить результаты симуляции и исходные данные из .m файла, где и создаётся input.mat:
% input signal, must be a row
x_in = [0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0];
% construct a time stamp vector with dt = 0.05s
t_in = gen_time(size(x_in, 2), dt);
% save the vectors in the input.mat file where the first row are time
% stamps and the second row are input bits
inputs = [t_in; x_in];
save('input.mat','inputs');
load('output.mat')
hold off
plot(inputs(end,:))
hold on
plot(ans(end,:)) // output array in output.mat file
Видим непонятное расхождение. Попробуем изменить dt на бОльшую величину, скажем, dt = 0.075 c:
Полное совпадение.
Вопрос возникает - почему? Откуда берётся какой-то дополнительный элемент в массиве, который сдвигает все последующие элементы на один вправо?
Спасибо заранее!
Комментарии
Модель не выкладывали?
Запускайте init.m
Говорит ошибка архива.
7z тоже.
Странно, у меня без ошибок.
Вот ссылка на гугл диск
https://drive.google.com/file/d/1wtCHD1NSLfai7PxbPhYOqyEEZeLgDDNr/view?usp=sharing
См. картинку. Вроде все нормально. Чето честно говоря до конца не понял почему так, если коллеги подскажут, то хорошо.
да, действительно, с линейной интерполяцией работает корректно, однако, заметьте, вместо нулей появляются числа вроде 1.11е-15, что не верно в том случае, если функция должна принимать boolean - в таком случае всё, что не 0, то превращается в 1. настройка zero-order hold помогает этого избежать, однако, появляется описанная в этом вопросе проблема. которая, впрочем, решается увеличением шага по времени, хотя вопрос не снимается :)
Занятно, что внутри файла самого все корректно.
Изменения настроек самой модели тоже как-то не помогли. Странно.
А не пробовали сперва грузануть в скрипте а потм FromWorkspase?
не понял, что Вы имеете в виду "грузануть в скрипте"?