- #1
gurhan
- 3
- 0
I have analysed a RL circuit with freewheelind diode, switch and additional source. I have used ode solver which is called ode45 in matlab. This expression is [t, i]=ode45('inducwithE', tspan, i0'). There is three stages in that circuit and every last 'i' (current-this is the state variable) value for the previous stage becomes initial value for the following stages. But when I am using if statement for three different conditions I am always referring the expression ([t, i]=ode45('inducwithE', tspan, i0')). In that point 'i' becomes always '0'. How can I assing those initial values for second and third stages? Could anyone help me about it?
Thanks
function dcrl = inducwithE(t,i)
% function for RL circuit calculations
Vs=50;
E=30;
L=0.1;
R=1;
Z=E/L;
X = (Vs/L)-Z;
Y = i*R/L;
if t<0.7;
dcrl = X - Y;VT=Vs;
else 0.7<t<0.75;
dcrl=-Z-Y;
end
if t>0.75;
dcrl=Z-Y;
end
if t>1.4
dcrl = X - Y;
end
tspan=[0 2];
i0=0;
[t, i]=ode45('inducwithE',tspan,i0')
Thanks
function dcrl = inducwithE(t,i)
% function for RL circuit calculations
Vs=50;
E=30;
L=0.1;
R=1;
Z=E/L;
X = (Vs/L)-Z;
Y = i*R/L;
if t<0.7;
dcrl = X - Y;VT=Vs;
else 0.7<t<0.75;
dcrl=-Z-Y;
end
if t>0.75;
dcrl=Z-Y;
end
if t>1.4
dcrl = X - Y;
end
tspan=[0 2];
i0=0;
[t, i]=ode45('inducwithE',tspan,i0')