Как вы можете имитировать поведение конденсатора в Matlab? - PullRequest
0 голосов
/ 21 декабря 2018

Согласно hyperphysics.edu говорится, что напряжение на конденсаторе может быть выражено как Vo (1-exp (-t / RC)) .

Я хотел бы иметьспособ применения этого поведения построения к сигналу, но не совсем знаю, как это сделать.

В Matlab, если я сделаю что-то вроде этого:

t = 0:0.0001:0.05-0.0001;
tau = 0.005;
c = 1-exp(-t/tau);
s = zeros(1,1000);
s(201:600) = ones(1,400);

c выглядиткак то, что я ожидаю, конденсатор зарядки выглядит.В идеале s должно выглядеть как входное напряжение, если вы включите и выключите питание.Я хотел бы иметь возможность применять этот шаблон Си.Я не уверен, что математический способ сделать это.Я бы подумал, что это тот тип мышления, на котором вы будете использовать свертку, поэтому я попытался

o = conv(s,c(500:-1:1));

Тем не менее, на графике, который показывает восходящее действие как прямолинейное восхождение, которое выглядит неправильно, поэтомуЯ думаю, что есть что-то еще, что мне нужно сделать.

Какой тип операции или метод должен применяться, чтобы имитировать, как конденсатор будет воздействовать на некоторый входной сигнал напряжения, если у вас есть постоянная RC?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Член конденсатора должен включать только экспоненту, а свертка уже переворачивает второй вектор, поэтому нет необходимости переворачивать его снова.

dt = 0,0001;

t = 0:dt: 0,05-dt;

тау = 0,005;

c = dt / тау * exp (-t / tau);

s = нули (1,1000);

с (201: 800) = 1;

o = conv (s, c);

tt = (0: (длина (o) -1)) * dt;

рисунок; участок (tt, o)

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

Проблема в том, что вам нужно строить графики c против t.С помощью вашей команды вы строите 201 точку c в 0 и 299 точек c в 1.

Попробуйте

    plot(t,c) 

, и вы увидите экспоненциальный спад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...