matlab求微分方程的系数,Matlab中系数为离散值的微分方程求解【编辑完成求解答】...

clear all

clc

global number_of_points R1 R2 L1 L2 I Idot;

%以上变量,意义同电路图里的那些变量。

M=[0.0181 6.7253 10.14954 -1.75 -0.47647;

0.0431 6.59092 10.09331 -0.625 -0.47672;

0.0681 6.45932 10.0366 0.275 -0.47723;

0.0931 6.33048 9.97939 0.725 -0.47773;

0.1181 6.20442 9.92169 0.875 -0.47823;

0.1431 6.08113 9.86351 0.725 -0.47873;

0.1681 5.96061 9.80483 0.5 -0.47924;

0.1931 5.84286 9.74566 0.575 -0.47974;

0.2181 5.72788 9.686 0.8 -0.48024;

0.2431 5.61567 9.62586 1.1 -0.48074;

0.2681 5.50624 9.56522 1.475 -0.48125;

0.2931 5.39957 9.50409 1.625 -0.48175;

0.3181 5.29568 9.44247 1.475 -0.48225;

0.3431 5.19456 9.38036 1.025 -0.48275;

0.3681 5.09621 9.31776 0.5 -0.48326;

0.3931 5.00063 9.25467 0.125 -0.48376;

0.4181 4.90782 9.19108 -0.25 -0.48426;

0.4431 4.81778 9.12701 -0.25 -0.48476;

0.4681 4.73052 9.06245 -0.1 -0.48527;

];

%以上是已知数据,第一列是时间,第二列是电阻R1曲线,第三列是电阻R2曲线,第四列是电流I波形,第五列是电流I的导数(求导之前已经滤波除去毛刺)。由于数据太多,这里截取了前面很少的一部分。

number_of_points=length(M(:,1)');       %数据点数

ts=1:number_of_points;                       %输出这些点上的函数值(原来只用过连续函数的,就能直接指定输出这些时刻的函数值。现在是离散的,就只能改成数据点了。但是自己确实不确定这样对不对。)

R1=M(ts,2)';

R2=M(ts,3)';

I=M(ts,4)';                                            %总电流,kA

Idot=M(ts,5)';                                       %总电流导数,kA/ns

L1=75;                                                 %nH

L2=60;

I1_0=[0.1];                                         %所求电流I1的初始值

[t,I1]=ode45('I_division',ts,I1_0);         %调用ode45求解

t = linspace(M(1,1),M(number_of_points,1),number_of_points);%把数据点数变回时间

plot(t,I1,t,I-I1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值