undefined function or variable x
4 次查看(过去 30 天)
显示 更早的评论
Why I am getting undefined function or variable x error here?
% Solution of second-order differential equation
% The function diff2(x,y) is created to evaluate the diff. equation
% the name of the m-file is diff2.m
% the function is defined as:
%
function xdot = diff2(t,x)
is = 2;
c = 50e-6; L = 1/32; r = 10;
k1 = 1/c ; % 1/C
k2 = 1/L ; % 1/L
k3 = 1/(r*c); % 1/RC
xdot(1) = k2*x(2);
xdot(2) = k1*is - k1*x(1) - k3*x(2);
% solution of second-order differential equation
% the function diff2(x,y) is created to evaluate
% the differential equation
% the name of m-file is diff2.m
%
% Transient analysis of RLC circuit using ode function
% numerical solution
t0 = 0;
tf = 30*e^-3;
x0 = [0 20]; % Initial conditions
[t,x] = ode23('diff2',t0,tf,x0);
% Second column of matrix x represent capacitor voltage
plot(t,x(:,2))
xlabel('Time, s'), ylabel('Capacitor voltage, V')
text(0.01, 7, 'State Variable Approach')
0 个评论
采纳的回答
Alan Stevens
2020-11-5
Like so (the function must come last in the script):
% solution of second-order differential equation
% the function diff2(x,y) is created to evaluate
% the differential equation
% the name of m-file is diff2.m
%
% Transient analysis of RLC circuit using ode function
% numerical solution
t0 = 0;
tf = 0.03;
x0 = [0 20]; % Initial conditions
[t,x] = ode23(@diff2,[t0 tf],x0);
% Second column of matrix x represent capacitor voltage
plot(t,x(:,2))
xlabel('Time, s'), ylabel('Capacitor voltage, V')
text(0.01, 7, 'State Variable Approach')
%
function xdot = diff2(t,x)
is = 2;
c = 50e-6; L = 1/32; r = 10;
k1 = 1/c ; % 1/C
k2 = 1/L ; % 1/L
k3 = 1/(r*c); % 1/RC
xdot = zeros(2,1);
xdot(1) = k2*x(2);
xdot(2) = k1*is - k1*x(1) - k3*x(2);
end
5 个评论
Alan Stevens
2020-11-5
I'm afraid my knowledge of electricity in general is pretty much limited to Ohm's law!
更多回答(2 个)
KSSV
2020-11-5
Save the below code in a file as myfunction.m and run it.
function myfunction()
% solution of second-order differential equation
% the function diff2(x,y) is created to evaluate
% the differential equation
% the name of m-file is diff2.m
%
% Transient analysis of RLC circuit using ode function
% numerical solution
t0 = 0;
tf = 30*e^-3;
x0 = [0 20]; % Initial conditions
[t,x] = ode23(@diff2,[t0 tf],x0);
% Second column of matrix x represent capacitor voltage
plot(t,x(:,2))
xlabel('Time, s'), ylabel('Capacitor voltage, V')
text(0.01, 7, 'State Variable Approach')
end
% Solution of second-order differential equation
% The function diff2(x,y) is created to evaluate the diff. equation
% the name of the m-file is diff2.m
% the function is defined as:
%
function xdot = diff2(t,x)
is = 2;
c = 50e-6; L = 1/32; r = 10;
k1 = 1/c ; % 1/C
k2 = 1/L ; % 1/L
k3 = 1/(r*c); % 1/RC
xdot(1) = k2*x(2);
xdot(2) = k1*is - k1*x(1) - k3*x(2);
end
0 个评论
KSSV
2020-11-5
Save the below code in to a file say main.m.
% solution of second-order differential equation
% the function diff2(x,y) is created to evaluate
% the differential equation
% the name of m-file is diff2.m
%
% Transient analysis of RLC circuit using ode function
% numerical solution
t0 = 0;
tf = 30*e^-3;
x0 = [0 20]; % Initial conditions
[t,x] = ode23(@diff2,[t0 tf],x0);
% Second column of matrix x represent capacitor voltage
plot(t,x(:,2))
xlabel('Time, s'), ylabel('Capacitor voltage, V')
text(0.01, 7, 'State Variable Approach')
Save the below code into a function in a file diff2.
% Solution of second-order differential equation
% The function diff2(x,y) is created to evaluate the diff. equation
% the name of the m-file is diff2.m
% the function is defined as:
%
function xdot = diff2(t,x)
is = 2;
c = 50e-6; L = 1/32; r = 10;
k1 = 1/c ; % 1/C
k2 = 1/L ; % 1/L
k3 = 1/(r*c); % 1/RC
xdot(1) = k2*x(2);
xdot(2) = k1*is - k1*x(1) - k3*x(2);
end
After saving the above two files, now run the file in main.m.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!