作业帮 > 综合 > 作业

matlab解微分方程组ode45

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 10:44:16
matlab解微分方程组ode45
用ode45 解微分方程组 以前基本都没碰过matlab,
自己试着编了一点儿,搞不定啊,  只剩这么多分了,好人一生平安,雅安加油!









@liuliangsxd 您好,下面的是我根据您给的程序,完善的我的程序,我根据要求在旁边写出了注释,麻烦您再给看一下哪里还不对,还是运行不了啊。
真的第一次用,困难重重,希望得到你的帮助。以下为M文件内容。
g=0.7;w=100;%g为放大倍数;w为给定转速;
E3=[g 0];%定义一个1行2列矩阵
E4=[w,0];%定义一个2行一列矩阵
x(1)=0;%X(1)为当前系统转速,x(2)为电流
x(2)=0;
X=[x(1),x(2)];%定义一个2行一列矩阵
for v1=20:0.5:100%v1是输入电压 要求从20变化到100,步长为0.5
if (E3*(X-E4)>=(2.2*t)/0.01)%t为运行时刻,本系统周期选为 10ms;
%系统根据是否满足If后面的这一条件 选择 系统运行状态
f=inline('[(-0.000275/0.000557)*x(1)+0.1324/0.000557*x(2)-0.39/0.00057;(-0.1356/0.0537)*x(1)-2.9/0.0537*x(2)]','t','x'); %系统运行 状态1
else
f=inline('[(-0.000275/0.000557)*x(1)+0.1324/0.000557*x(2)-0.39/0.00057;(-0.1356/0.0537)*x(1)-2.9/0.0537*x(2)+v1/0.0537]','t','x'); %系统运行状态2
end
ode45(f,2,[0 0])
end
把方程和初值条件都列出来
这一大堆东西几个人看得懂?
再问: 公式(1)(2)就是方程啊,我写的那两个就是对应的方程。 倒数第二张图片有实验数据。 还需要什么参数吗?非常抱歉,我学的专业不太扎实,问题可能有点弱智。希望明示。谢谢谢谢
再答: 假设初值都是0(不是的话要进行修改),时间为0.5 方程1:>> f=inline('[(-0.000275/0.000557)*x(1)+0.1324/0.000557*x(2)-0.38/0.00057;(-0.1356/0.0537)*x(1)-2.8/0.0537*x(2)]','t','x');>> ode45(f,0.5,[0 0])方程2:>> f=inline('[(-0.000275/0.000557)*x(1)+0.1324/0.000557*x(2)-0.38/0.00057;(-0.1356/0.0537)*x(1)-2.8/0.0537*x(2)+50/0.0537]','t','x');>> ode45(f,0.5,[0 0])