regarding the error in matlab
古いコメントを表示
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);
採用された回答
その他の回答 (1 件)
Stephan
2018 年 10 月 2 日
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 件のコメント
Torsten
2018 年 10 月 5 日
manish srivastava's answer moved to a comment
error gone thanks you but nothing is comming out as outputt
カテゴリ
ヘルプ センター および File Exchange で Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!