使用matlab实时编辑器进行公式推导(一)
因为后续会使用。
·
最近因为手推公式特别繁琐,想起了用matlab进行公式推导。
一、使用模块-matlab实时编辑器
matlab实时编辑器进行公式推导主要有以下优势:
1:代码运行后,可以在右侧看见对应表达公式;
2:公式会随着光标在代码上的移动而移动,比较方便找出公式对应代码;
3:右侧输出公式为latex格式,方便插入文章或者其他编辑器。


二、示例
以下图公式推导vca、 vcb、 vcc为例。

1、定义各变量。
在 MATLAB 中,符号变量和符号表达式的创建和操作是通过 syms 和 sym 函数来实现的。符号变量允许我们进行符号运算,如微积分、代数方程求解等。syms函数可以一次性定义多个符号常量。因为涉及到求导,故加上t作为时域表现形式。
clc;
clear;
% 定义自变量
syms R L ia(t) ib(t) ic(t) v_ca(t) v_cb(t) v_cc(t)
2、定义公式中导数部分与三相扩展
% 定义电流和电压的导数
dia_dt = diff(ia, t);
dib_dt = diff(ib, t);
dic_dt = diff(ic, t);
v_abc = [v_sa; v_sb; v_sc];
i_abc = [ia; ib; ic];
v_c_abc = [v_a; v_b; v_c];
di_abc_dt = [dia_dt; dib_dt; dic_dt];
3、等式方程组表达
注意:此处不要使用上面定义的v_ca(t)、 v_cb(t) 、v_cc(t)进行公式表达,因为后续会使用solve函数进行公式求解,若等式中为v_ca(t)则使用solve函数会报错,因为该函数只接受符号变量,而不接受准确的表达。
syms v_a v_b v_c
eq1_v_sa = v_sa == ia*R + L*dia_dt + v_a;
eq2_v_sb = v_sb == ib*R + L*dib_dt + v_b;
eq3_v_sc = v_sc == ic*R + L*dic_dt + v_c;
v_abc_expr = R*i_abc + L*di_abc_dt + v_c_abc;
disp('v_sa,v_sb,v_sc表达式v_abc_expr:');
disp(v_abc_expr);
4、方程求解
方程求解时使用v_a, v_b, v_c作为求解时的未知符号常量,求解成功后再进行后续赋值操作。
% 进行代数操作,例如求解 v_ca, v_cb, v_cc
sol = solve([eq1_v_sa, eq2_v_sb, eq3_v_sc], [v_a, v_b, v_c]);
v_cabc = [sol.v_a; sol.v_b; sol.v_c];
% 显示解
disp('v_ca,v_cb,v_cc表达式v_cabc:');
disp(v_cabc);
5、运行结果

更多推荐




所有评论(0)