900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Matlab如何打开新版本程序 求助:老程序在新版本的matlab中运行

Matlab如何打开新版本程序 求助:老程序在新版本的matlab中运行

时间:2021-01-22 00:50:52

相关推荐

Matlab如何打开新版本程序 求助:老程序在新版本的matlab中运行

本帖最后由 麦克雷 于 -12-31 19:39 编辑

求助:想使用一个多年前的老程序,但是新版本的matlab不支持运行。matlab版本Ra。

程序目的是仿真一个三阶电路,图片见附件。m文件程序如下:

syms t s

dI = sym('diff(I(t),t)');

dU = sym('diff(U(t),t)');

I = sym('I(t)'); U = sym('U(t)');

E = sin(t);

eq1 = 8/5 * dI - 1/2 * dU + 6 * I;

eq2 = 1/4 * dU - (E - U + 2 * I)/5;

L1 = laplace(eq1,t,s);

L2 = laplace(eq2,t,s);

syms LI LU

NI = subs( L1, {'I(0)', 'U(0)'}, {15, 8});

NU = subs( L2, {'I(0)', 'U(0)'}, {15, 8});

NI = subs(NI, {'laplace(I(t),t,s)','laplace(U(t),t,s)'},{LI, LU});

NU = subs(NU, {'laplace(I(t),t,s)','laplace(U(t),t,s)'},{LI, LU});

NI = collect(NI,LI);

NU = collect(NU,LU);

[LI,LU] = solve(NI,NU,LI,LU);

I = ilaplace(LI,s,t);

U = ilaplace(LU,s,t);

Subplot(2,2,1); ezplot(I, [0, 10]);

Title('current'); ylabel('I(t)'); grid

Subplot(2,2,1); ezplot(U, [0, 10]);

Title('voltage'); ylabel('I(t)'); grid

Subplot(2,2,1); ezplot(I, [5, 25]);

Title('current'); ylabel('I(t)'); grid

Subplot(2,2,1); ezplot(U, [5, 25]);

Title('current'); ylabel('I(t)'); grid

自己也做过多次尝试,比如sym换成str2sym、更换subs函数等,但都不能解决问题。第一次使用matlab,新人小白向大佬们求助,请问如何解决问题?

PS.sym改成str2sym、第11行~14行改为

NI = str2sym(strrep(L1,{'I(0)','U(0)'},{15,8}));

NU = str2sym(strrep(L2,{'I(0)','U(0)'},{15,8}));

NI = str2sym(strrep(NI,{'laplace(I(t),t,s)','laplace(U(t),t,s)'},{LI, LU}));

NU = str2sym(strrep(NU,{'laplace(I(t),t,s)','laplace(U(t),t,s)'},{LI, LU}));

后,报错信息如下:

警告: 输入必须为字符向量、字符向量元胞数组或字符串数组。

> In shiyan1 (line 11)

错误使用 strrep

图1.png

(11.21 KB, 下载次数: 1)

-12-31 19:28 上传

电路图

图2.png

(12.05 KB, 下载次数: 1)

-12-31 19:28 上传

方程

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。