matlab 未定义 double,未定义与 'double' 类型的输入参数相对应的函数

在尝试运行MATLAB2004的程序时,在MATLAB2014B环境下遇到了错误:未找到与'double'类型输入参数对应的'ffm'函数。问题出现在代码行8,调用`mm=ffm(nstart,nend);`。博主寻求解决方案。" 106417399,4850207,Java模拟考试系统设计与实现,"['Java', '面向对象编程', '软件设计', '考试系统']

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

求大佬帮忙指正

网上抄了matlab2004的程序用maltab2014B运行 显示

未定义与 'double' 类型的输入参数相对应的函数 'ffm'。出错 Untitled (line 8)

mm=ffm(nstart,nend);

咋解决

主程序:

% bus 1,2,3,4 is PQ bus,bus 5 is PV bus,bus 6 is slack bus

u=sym('[u1,u2,u3,u4,u5,u6]');delt=sym('[d1,d2,d3,d4,d5,d6]');

global Np Nb bt p m k

Np=6;Nb=7;

bt=[2,4;1,3];p=[1/0.909,1/0.976];m=6;k=2;

nstart=[6,6,2,3,5,5,1];nend=[4,2,4,4,3,1,2];

mm=ffm(nstart,nend);

% yb1,the series admittance of transmission line

yb1r=[0.2170,0.2791,0.2771,0.0,0.2383,0.2224,0.0];

yb1i=[-0.9137,-1.2910,-1.1625,-1.6667,-0.6542,-0.3230,-3.7594];

yb1=yb1r+yb1i*j;

%yb1=zb1.^(-1);

yb=diag(conj(yb1'));

y=mm*yb*(mm)';

% yb0 ,the shunt admittances of transmission line

yb0i=[0.0099,0.0070,0.0076,0.0,0.0,0.0,0.0];

yb0=0+yb0i*j;

y0=diag(conj(yb0'));

yg=mm*y0*(mm)';

yn=diag(diag(yg));

yy=yn-yg;

y=y+yn;

[Y,YY]=fdt1(y,yy);

%**************************************************************************

G=real(Y);B=imag(Y);

p=[-.275,0,-0.150,-0.250,0.250];q=[-0.065,0,-0.090,-0.025];

k=0;precision=1;

N1=5;%the N1 is the amount of the PQ and PV bus

N2=1;%the N2 is the amount of the PV bus

for m=1:N1

for n=1:N1+1

pt(n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));

end

pp(m)=p(m)-sum(pt);

end

for m=1:N1-N2

for n=1:N1+1

qt(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));

end

qq(m)=q(m)-sum(qt);

end

J1=jacobian(pp,['d1,d2,d3,d4,d5,u1,u2,u3,u4']);

J2=jacobian(qq,['d1,d2,d3,d4,d5,u1,u2,u3,u4']);

J=vertcat(J1,J2);

uu=[1.000,1.000,1.000,1.000,1.100,1.050];dd=[0,0,0,0,0,0];

while precision>0.0000001

u1=uu(1);u2=uu(2);u3=uu(3);u4=uu(4);u5=uu(5);u6=uu(6);

d1=dd(1);d2=dd(2);d3=dd(3);d4=dd(4);d5=dd(5);d6=dd(6);

for m=1:N1

PP(m)=eval(pp(m));

end

for m=1:N1-N2

PP(N1+m)=eval(qq(m));

end

JJ=eval(J);

du=-inv(JJ)*PP';precision=max(abs(PP));

for n=1:N1

dd(n)=dd(n)+du(n);

end

for n=1:N1-N2

uu(n)=uu(n)+du(N1+n);

end

k=k+1;

end

k-1,dd*180/pi,uu

%***********************************************

% the following program is used to calculate the Sm and Smn

for n=1:N1+1

U(n)=uu(n)*(cos(dd(n))+j*sin(dd(n)));

end

Um=conj(U');

I=Y*Um;

Sm=diag(Um)*conj(I)

for m=1:N1+1

for n=1:N1+1

Smn(m,n)=U(m)*(conj(U(m))-conj(U(n)))*conj(-Y(m,n))+U(m)*conj(U(m)*YY(m,n));

end

end

Smn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值