在使用matlab 符号运算中的solve函数时,为啥计算的结果是空集?该怎么办?我的程序如下:clear;clc;syms u_d u_q w_r r i_d x_d x_md x_q x_mq i_q x_f r_f u_f x_ad i_f T_t T_em F w_omega P_g u_dc C p_n k v_wind U_g G_s B_s U_s c
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 02:04:31
在使用matlab 符号运算中的solve函数时,为啥计算的结果是空集?该怎么办?我的程序如下:clear;clc;syms u_d u_q w_r r i_d x_d x_md x_q x_mq i_q x_f r_f u_f x_ad i_f T_t T_em F w_omega P_g u_dc C p_n k v_wind U_g G_s B_s U_s c
在使用matlab 符号运算中的solve函数时,为啥计算的结果是空集?该怎么办?
我的程序如下:
clear;
clc;
syms u_d u_q w_r r i_d x_d x_md x_q x_mq i_q x_f r_f u_f x_ad i_f T_t T_em F w_omega P_g u_dc C p_n k v_wind U_g G_s B_s U_s cos_delta sin_delta m Q_e;
f1 = r*i_d - w_r*x_q*i_q - w_r*x_mq*i_q + x_ad*r_f*i_f/x_f -x_ad*u_f/x_f + u_d;
f2 = w_r*(x_d + x_md)*i_d + w_r*x_ad*i_f + r*i_q + u_q;
f3 = r*i_d -w_r*x_q*i_q -w_r*x_mq*i_q + (x_d + x_md)*r_f*i_f/(2*x_ad) - (x_d + x_md)*u_f/(2*x_ad) + u_d;
f4 = T_t - T_em -F*w_omega;
f5 = i_d*u_d + i_q*u_q - P_g;
f6 = w_r - p_n*w_omega;
f7 = sqrt(u_d^2 + u_q^2) - u_dc/2.34;
f8 = T_t - k*v_wind/w_omega;
f9 = T_em - (i_d*u_d + i_q*u_q + 3*r*(i_d^2 + i_q^2))/w_r;
f10 = P_g - U_g^2*G_s - U_g*U_s*(G_s*cos_delta + B_s*sin_delta);
f11 = U_g - u_dc*m/(2*sqrt(2));
f12 = Q_e + u_d*i_q + u_q*i_d;
[i_d,i_q,i_f,w_omega,u_dc,w_r,u_d,u_q,T_t,T_em,P_g,U_g] = solve(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12);
得到的结果是:
i_d =[ empty sym i_q ==[ 其他的都是空,输入字符有限,这里省了。
在使用matlab 符号运算中的solve函数时,为啥计算的结果是空集?该怎么办?我的程序如下:clear;clc;syms u_d u_q w_r r i_d x_d x_md x_q x_mq i_q x_f r_f u_f x_ad i_f T_t T_em F w_omega P_g u_dc C p_n k v_wind U_g G_s B_s U_s c
你在进行符号运算的时候,solve求的是解析式,matlab要是认为没有解析式的解,就会给你空的答案的.结果已经显示是empty sym,符号变量没有解.你得考虑用数值解了.解不出解析解很正常,就好比你解全是字母的方程可能解不出来遇到超越方程一样.
你最好把你solve的内容都写出来。。。
原因是你的方程过于复杂,没有解析解。