regarding the error in matlab
Afficher commentaires plus anciens
HI all i was trying to calculate the transfer function of an regulator i wrote below kcl nodal equations
clc;
clear;
%for test transfer function
syms s x y z G_MOTA R_OTA C_OTA s g_mbuf C_gdMN ...
C_gsMN g_mMN R_L C_L R_1 R_2 C_1 C_2 V_out V_in
S1= solve( 's*C_1*(V_in-x)+(V_in-x)/R_1=x/R_2+s*C_2*(x-z)',V_in,...
'-G_MOTA*x=y/R_OTA+s*C_OTA*y ' ,y ,...
'y*g_mbuf=g_mbuf*z+s*C_2*(z-x)+s*C_gdMN*z+s*C_gsMN*(z-V_out)' ,z ,...
'(g_mMN+s*C_gsMN)*(z-V_out)=s*C_L*V_out+V_out/R_L',V_out);
TF = (S1.V_out/S1.V_in);
H=collect(TF,s)
i am getting this below error
Struct contents reference from a non-struct array object.
Error in sym/subsref (line 881)
R_tilde = builtin('subsref',L_tilde,Idx);
Error in tranfun (line 12)
TF = (S1.V_out/S1.V_in);
Réponse acceptée
Plus de réponses (1)
Stephan
le 2 Oct 2018
Hi,
try:
syms s x y z G_MOTA R_OTA C_OTA s g_mbuf C_gdMN ...
C_gsMN g_mMN R_L C_L R_1 R_2 C_1 C_2 V_out V_in
eqn = [s*C_1*(V_in-x)+(V_in-x)/R_1 == x/R_2+s*C_2*(x-z),...
-G_MOTA*x == y/R_OTA+s*C_OTA*y,...
y*g_mbuf == g_mbuf*z+s*C_2*(z-x)+s*C_gdMN*z+s*C_gsMN*(z-V_out),...
(g_mMN+s*C_gsMN)*(z-V_out) == s*C_L*V_out+V_out/R_L];
vars = [V_in, y, z, V_out];
S1 = solve(eqn, vars);
TF = (S1.V_out/S1.V_in);
H=collect(TF,s);
1 commentaire
Torsten
le 5 Oct 2018
manish srivastava's answer moved to a comment
error gone thanks you but nothing is comming out as outputt
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!