initial condition vector longer than ODE vector?
2 views (last 30 days)
Show older comments
In my code i have to solve an RCL equation 3 times with the ODE45 command for different values of omega. Upon running the code i get the following error:
OMEGA_1 returns a vector of length 1, but the length of initial conditions vector is 2. The vector returned by OMEGA_1 and the initial conditions vector must have the same
number of elements.
Error in ode45 (line 107)
odearguments(odeIsFuncHandle,odeTreatAsMFile, solver_name, ode, tspan, y0, options, varargin);
Error in ProjQ3B (line 21)
[T,Y]=ode45(@omega_1,tspan,[0;0]);
I am not sure how to proceed with properly defining either the vector or initial conditions to clear the error. Can anyone advise? my full code is below:
clear;clc;close all
a=2;
b=5;
% v0 is now set to 10
v0=10;
% Using a,b to determine rest of variables
R=10*a;
C=0.0001/a;
L=0.01*b;
% omega is set to (0.5, 1, 2)*sqrt(L*C)
omega=0.5*sqrt(L*C);
omega2=1*sqrt(L*C);
omega3=2*sqrt(L*C);
tspan=[0 (40*L)/R];
[T,Y]=ode45(@omega_1,tspan,[0;0]);
function I1=omega_1(t,i)
I1=@(t,i)[i(2);-(R/L)*i(2)-(i(1)/(L*C))+((v0*omega)/L)*(cos(omega*t))];
end
function I2=omega_2(t,i)
I2=@(t,i)[i(2);-(R/L)*i(2)-(i(1)/(L*C))+((v0*omega)/L)*cos(omega2*t)];
end
function I3=omega_3(t,i)
I3=@(t,i)[i(2);-(R/L)*i(2)-(i(1)/(L*C))+((v0*omega)/L)*cos(omega3*t)];
end
0 Comments
Accepted Answer
Alan Stevens
on 18 Apr 2023
Do it like this:
a=2;
b=5;
% v0 is now set to 10
v0=10;
% Using a,b to determine rest of variables
R=10*a;
C=0.0001/a;
L=0.01*b;
% omega is set to (0.5, 1, 2)*sqrt(L*C)
omega=0.5*sqrt(L*C);
omega2=1*sqrt(L*C);
omega3=2*sqrt(L*C);
tspan=[0 (40*L)/R];
[T,Y]=ode45(@(t,i) omega_1(t,i,omega,R,C,L,v0),tspan,[0;0]);
plot(T,Y)
function I1=omega_1(t,i,omega,R,C,L,v0)
I1=[i(2);-(R/L)*i(2)-(i(1)/(L*C))+((v0*omega)/L)*(cos(omega*t))];
end
More Answers (0)
See Also
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!