| 查看: 684 | 回复: 4 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
gyq274706322银虫 (正式写手)
|
[求助]
大家看看我的程序怎么了?
|
|
|
我的M函数文件是 function xdot=dianci1(t,x) global w m=19.6;g=9.8;la=0.116;lb=0.144;l=la+lb; Jox=0.393;Joy=0.393;Joz=0.023; ca=0.0004;cb=0.0004; Ioxa=4;Ioya=4;Ioxb=4;Ioyb=4; ra=0.0442;Da=0.08;Ara=pi*Da*ra; rb=0.0442;Db=0.08;Arb=pi*Db*rb; axy=0.16; Nra=57;Nrb=57;miu0=4e-7*pi; K=1;%K=7800; KP=3.8;KI=200;KD=0.01; m1=lb*m/l;m2=la*m/l; e1=0;e2=0; ixa=K*(KP*x(1)+KI*x(2)+KD*x(1)); iya=K*(KP*x(3)+KI*x(4)+KD*x(3)); ixb=K*(KP*x(5)+KI*x(6)+KD*x(5)); iyb=K*(KP*x(7)+KI*x(8)+KD*x(7)); %u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller; %x(1)=error(k); %Calculating P %x(2)=(error(k)-error_1)/ts; %Calculating D %x(3)=x(3)+error(k)*ts; %Calculating I %xi(k)=x(3); fra=miu0*Nra^2*Ara*(Ioxa+ixa)^2/(4*(ca+x(1))^2); fla=miu0*Nra^2*Ara*(Ioxa-ixa)^2/(4*(ca-x(1))^2); fta=miu0*Nra^2*Ara*(Ioya+iya)^2/(4*(ca+x(3))^2); fba=miu0*Nra^2*Ara*(Ioya-iya)^2/(4*(ca-x(3))^2); frb=miu0*Nrb^2*Arb*(Ioxb+ixb)^2/(4*(cb+x(5))^2); flb=miu0*Nrb^2*Arb*(Ioxb-ixb)^2/(4*(cb-x(5))^2); ftb=miu0*Nrb^2*Arb*(Ioyb+iyb)^2/(4*(cb+x(7))^2); fbb=miu0*Nrb^2*Arb*(Ioyb-iyb)^2/(4*(cb-x(7))^2); Fxa=fra-fla+axy*(x(1)/ca)*(fta+fba); Fya=fta-fba+axy*(x(3)/ca)*(fra+fla); Fxb=frb-flb+axy*(x(5)/cb)*(ftb+fbb); Fyb=ftb-fbb+axy*(x(7)/cb)*(frb+flb); fx=m1*e1*w^2*cos(w*t)+m2*e2*w^2*cos(w*t); fy=-m1*e1*w^2*sin(w*t)+m2*e2*w^2*sin(w*t); A=-Fxa-Fxb+fx; B=-Fya-Fyb+m*g+fy; C=Fxa*la-Fxb*lb-Joz/l*w*x(2)+Joz*w/l*x(4); D=Fya*la-Fyb*lb+Joz/l*w*x(6)+Joz*w/l*x(8); xdot=[x(2); (Joy*A*l-C*l*la*m)/(Joy*la*m+Joy*lb*m); x(4); (Joy*A*l+ C*l*lb*m)/(Joy*la*m+Joy*lb*m); x(6); (Jox*B*l-D*l*la*m)/(Jox*la*m+Jox*lb*m); x(8); (Jox*B*l+D*l*lb*m)/(Jox*la*m+Jox*lb*m)]; 在matlab中运行程序 clc; clear; %global w w=100; x0=[0,0,0,0,0,0,0,0]; for n=1:60 [t,x]=ode45('dianci1',[0 10],x0); x0=x(end, ;hold on plot(x(:,1),x(:,2)); end 但是结果怎么会出错 错误是 ??? Error using ==> odearguments at 116 DIANCI1 returns a vector of length 4, but the length of initial conditions vector is 8. The vector returned by DIANCI1 and the initial conditions vector must have the same number of elements. Error in ==> ode45 at 173 [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... Error in ==> jiedianci at 7 [t,x]=ode45('dianci1',[0 10],x0); 我很纠结。我的方程是8个,为什么说是返回4个? 这个我该怎么调式,才能出结果? 希望大家给点建议。 谢谢了。 |
» 猜你喜欢
295求调剂。一志愿报考郑州大学化学工艺学硕,总分295分
已经有4人回复
289求调剂
已经有4人回复
江苏省农科院招调剂1名
已经有4人回复
290分材料工程085601求调剂 数二英一
已经有3人回复
0856调剂
已经有7人回复
化工专硕348,一志愿985求调剂
已经有9人回复
0856化工专硕求调剂
已经有14人回复
282求调剂
已经有5人回复
诚招农业博士
已经有3人回复
材料学硕318求调剂
已经有9人回复
» 本主题相关价值贴推荐,对您同样有帮助:
大家帮我看一个fortran的程序,我总是计算不出正确的结果
已经有20人回复
【活动】大家找工作更看重啥
已经有114人回复
大家看看这个投稿过程怪不怪?
已经有16人回复
请大家帮我看看我的电猫怎么回事
已经有4人回复
【求助】急~~~~请大家帮忙看看这台液相是怎么了!!!
已经有9人回复
【求助】【求助】大家帮我看看,这是怎么回事?推荐信~~~~
已经有8人回复
【求助】大家看看,matlab安装过程的截图,找出错
已经有14人回复
【求助/交流】大家看看我的蛋白胶是怎么了?
已经有29人回复
投了篇CPL,请大家看看是怎么回事?
已经有5人回复
gyq274706322
银虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 2727.2
- 散金: 200
- 帖子: 747
- 在线: 255.8小时
- 虫号: 1084211
- 注册: 2010-08-29
- 性别: GG
- 专业: 机械动力学
3楼2011-09-08 10:17:39
gyq274706322
银虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 2727.2
- 散金: 200
- 帖子: 747
- 在线: 255.8小时
- 虫号: 1084211
- 注册: 2010-08-29
- 性别: GG
- 专业: 机械动力学
2楼2011-09-08 10:17:02
信彼南山
木虫 (著名写手)
- 应助: 33 (小学生)
- 金币: 4142.9
- 散金: 1221
- 红花: 16
- 帖子: 1178
- 在线: 233.5小时
- 虫号: 1133529
- 注册: 2010-10-27
- 专业: 导航、制导与传感技术
4楼2011-09-11 11:51:08
信彼南山
木虫 (著名写手)
- 应助: 33 (小学生)
- 金币: 4142.9
- 散金: 1221
- 红花: 16
- 帖子: 1178
- 在线: 233.5小时
- 虫号: 1133529
- 注册: 2010-10-27
- 专业: 导航、制导与传感技术
5楼2011-09-11 17:39:14













;
回复此楼
;
10