I'm trying to solve a RC circuit using ode23. For my case the input is varying with time. Here u is my input vector.
% function
function vdot = diff3(t,v)u = [1 2 3 4 5] ; vdot(1) = -40*v(1) + 20*v(2) + 20*u(t);vdot(2) = 20*v(1) - 20*v(2) - v(3);vdot(3) = 0.1*v(2) -1000*v(3);vdot = [vdot(1);vdot(2);vdot(3)];end% main program
tspan = 1:5;x0 = [0 0 0]; % initial conditions
[t,x] = ode23('diff3', tspan, x0);tt = length(t);for i = 1:tt vo(i) = x(i,1) - x(i,2);endplot(t, vo)title('Transient analysis of RLC')xlabel('Time, s'), ylabel('Output voltage')
In case of fixed value of u = 5, there is no error. As my input is varying MATLAB is throwing some error. _
Attempted to access u(1); index must be a positive integer or logical.Error in diff3 (line 9)vdot(1) = -40*v(1) + 20*v(2) + 20*u(t);Error in ode23 (line 256) f(:,2) = feval(odeFcn,t+h*A(1),y+f*hB(:,1),odeArgs{:});Error in rcckt (line 5)[t,x] = ode23('diff3', tspan, x0);_
So how can I solve ODE for varying input? Any kind of suggestion will be really helpful. Thanks in advance!
Best Answer