Есть ли способ построить анимацию замкнутой системы на Matlab? - PullRequest
0 голосов
/ 19 декабря 2018

Есть ли на matlab возможность сделать анимацию системы с замкнутым контуром вместо картинки?

Я пытался использовать цикл for для изменения времени моделирования реакции шага, для каждого для взаимодействия цикла я пытался использовать функцию step () для симуляции одного в секунду, но функция моделирования показывала толькоВ результате первого взаимодействия при построении результирующего изображения вместо этого необходимо построить несколько изображений с течением времени, чтобы создать впечатление анимации.

Я ожидаю увидеть эволюцию во времени реакции шага или отклика системы.

Код, который я пытался сделать анимацией функции передачи с обратной связью

Сообщение об ошибке с использованием getframe и фильма в Matlab

Анимация передаточной функции замкнутого цикла на Matlab

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете создать серию графиков в цикле и захватить каждый график в виде кадра, а затем воспроизвести фильм, используя функцию movie .

Пример:

% capture each plot as a frame and store the frames in M

for k = 1:16
    plot(fft(eye(k+16)))
    axis([-1 1 -1 1])
    M(k) = getframe;
end

% play recorded movie frames

figure
movie(M)

Вот ссылка на ссылку: https://www.mathworks.com/help/matlab/creating_plots/record-animation-for-playback.html

Что касается вашего случая, код можно изменить следующим образом:

j = 0;
loops = 6;
Ini = 0;
End = 1; 

num = [9];
den = [1 2 9];
FT = tf(num, den);
CL = feedback(FT, 1);

figure;

while j < loops

  t = Ini:0.01:End; 

  hold on 
  step(CL, 'y', t);  
  hold off
  axis([0 10 0 1]);

  j = j+1;
  Ini = Ini+1;
  End = End+1;

  M(j) = getframe;

end

movie(M)

Надеюсь, это поможет.

...