convert equation to matrix for 3d plot
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I am trying to represent this function in 3D as a surface, been doing some more experimenting here. I am having problems with turning my P_ave_output into a matrix. It is a bit of a complicated equation and I was hoping matlab had an easy command to do this for me. As I understand it, my R_l and C variables are matrices, and therefore the P_ave_output also needs to be a matrix. I am not quite sure how to do that. The end goal is again to represent a 3d surface plot relating the 3 matrices. Would you have any pointers for this?
I appreciate your help.
Thanks,
Shane
clear all
syms omega t R_l s A_in Y C
%Inputs
A_o = 3;
R_c = 40;
L_c = 0.051;
f=186;
omega_in = 2*pi*f;
A = A_o*sin(omega*t);
M=0.01;
%Theta from part a)
theta = 0.244;
%Spring coefficient (N/m)
k = 13660;
%Damping coefficient (N*s/m)
C_d = 0.07;
%Capacitance Assumption
%C=14*10^-6;
%Impedance equations
Z1 = R_c+R_l+L_c*s+1/(s*C);
Z2 = C_d+k/s+M*s;
%From part a) transfer function
%Output voltage V_l
V_l = (theta*(Y*s)*R_l)/Z1;
%Input excitation force Z_in
A_in=(Y*s*Z2+theta*V_l/R_l)/(M);
%output voltage ratio to input force
Transfer_func = simplify(V_l/A_in);
Transfer_func(s) = vpa(simplify(V_l/A_in),5);
Transfer_func(omega) = subs(Transfer_func, {s},{1j*omega});
amplitude_TF = A_o*abs(Transfer_func(omega_in));
angle_TF = angle(Transfer_func(omega_in));
V_l_steady_state = amplitude_TF*(sin(omega_in*t+angle_TF));
P_ave_output = (amplitude_TF/(sqrt(2)))^2/R_l;
P_ave_diff = diff(P_ave_output);
P_ave_diff = simplify(P_ave_diff, 'Steps',500);
P_ave_max = P_ave_diff == 0;
%R_l_optimal = vpa(abs((solve(P_ave_max, R_l))),3)
%fplot(P_ave_output,[10 200])
%xticks([10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200])
%xline(72.3)
%ylabel('Average Power (Watts)')
%xlabel('Load Resistance R_l (Ohms)')
%Plotmax = vpa(subs(P_ave_output,{R_l},{R_l_optimal}),8)
R_l= [10:10:200];
C=[2:2:20];
ZZ=P_ave_output
surf(R_l,C,ZZ)
4 comentarios
Star Strider
el 11 de Jun. de 2020
In order for the surf call to work, ‘Y’ needs to be defined (or removed). (It’s quadratic in ‘A_in’, so it doesn’t cancel in ‘Transfer_func’.)
It would then be straightforward to calculate ‘ZZ’, and produce the plot.
Respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!