控制工程中的程序设计.docx

上传人:b****3 文档编号:4363841 上传时间:2023-05-07 格式:DOCX 页数:13 大小:100.27KB
下载 相关 举报
控制工程中的程序设计.docx_第1页
第1页 / 共13页
控制工程中的程序设计.docx_第2页
第2页 / 共13页
控制工程中的程序设计.docx_第3页
第3页 / 共13页
控制工程中的程序设计.docx_第4页
第4页 / 共13页
控制工程中的程序设计.docx_第5页
第5页 / 共13页
控制工程中的程序设计.docx_第6页
第6页 / 共13页
控制工程中的程序设计.docx_第7页
第7页 / 共13页
控制工程中的程序设计.docx_第8页
第8页 / 共13页
控制工程中的程序设计.docx_第9页
第9页 / 共13页
控制工程中的程序设计.docx_第10页
第10页 / 共13页
控制工程中的程序设计.docx_第11页
第11页 / 共13页
控制工程中的程序设计.docx_第12页
第12页 / 共13页
控制工程中的程序设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

控制工程中的程序设计.docx

《控制工程中的程序设计.docx》由会员分享,可在线阅读,更多相关《控制工程中的程序设计.docx(13页珍藏版)》请在冰点文库上搜索。

控制工程中的程序设计.docx

控制工程中的程序设计

 

《控制工程中的程序设计》

大作业

 

班级:

学号:

姓名:

 

2015年5月1日

1.(20分)考虑以下迭代公式:

其中a、b为正数,要求:

1)编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代次数不超过500次。

2)如果迭代过程收敛于r,那么r的准确值是

,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。

a=input('a=');%输入a的值

b=input('b=');%输入b的值

x=1.0;%迭代变量,确定初值

n=0;%初始迭代次数

whileabs(x-a/(b+x))>1e-5%终止条件

ifn<=500%迭代次数限制

x=a/(b+x);

n=n+1;

end

end

n

x

r

(1)=(-b+sqrt(b*b+4*a))/2

r

(2)=(-b-sqrt(b*b+4*a))/2%输出r的准确值

s=r-x%迭代结果和准确值进行比较

实验结果:

1.

a=1

b=1

n=

12

x=

0.6180

r=

0.6180-1.6180

r=

0.6180-1.6180

s=

-0.0000-2.2361

2.

a=8

b=3

n=

12

x=

1.7016

r=

1.7016-1.6180

r=

1.7016-4.7016

s=

0.0000-6.4031

3.

a=10

b=0.1

n=

423

x=

3.1127

r=

3.1127-4.7016

r=

3.1127-3.2127

s=

-0.0000-6.3254

2.(15分)一系统可用下列方程组来表示:

从键盘输入m1、m2和θ的值,求a1、a2、N1和N2的值。

其中g取9.8,输入θ时以角度为单位。

要求:

定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。

函数fc.M文件:

functionX=fc(A,B)

%fcfc是求解线性方程的函数

%AA是未知矩阵的系数矩阵

X=A\B;

命令M文件:

clc;

m1=input('m1=');%输入m1的值

m2=input('m2=');%输入m2的值

theta=input('theta=');输入theta的值

x=theta*pi/180;

g=9.8

A=[m1*cos(x)-m1-sin(x)0

m1*sin(x)0cos(x)0

0m2-sin(x)0

00-cos(x)1];%输入矩阵A

B=[0;m1*g;0;m2*g];%输入矩阵B

X=fc(A,B)

实验结果:

m1=1

m2=1

theta=30

X=

7.8400

3.3948

6.7896

15.6800

3.(20分)绘制极坐标曲线ρ=a*sin(b+nθ),并分析参数a、b、n对曲线形状的影响。

theta=0:

pi/100:

2*pi;

a=input('输入a=');%输入a的值

b=input('输入b=');%输入b的值

n=input('输入n=');%输入n的值

rho=a*sin(b+n*theta);%极半径

polar(theta,rho,'r')%绘制二维极坐标图形。

采用控制变量法的办法,固定两个参数,变动第三个参数观察输出图象的变化。

结果:

a=b=n=2a=b=n=3

a=b=c=4

a=2,b=3,c=2a=2,b=4,c=2

a=2,b=5,c=2

a=3,b=2,c=2a=4,b=2,c=2

a=5,b=2,c=2

分析结果:

由这9个图知道,

当a,n固定时,图形的形状也就固定了,b只影响图形的旋转的角度;

当a,b固定时,n只影响图形的扇形数,特别地,当n是奇数时,扇叶数就是n,当是偶数时,扇叶数则是2n个;

当b,n固定时,a影响的是图形大小,特别地,当a是整数时,图形半径大小就是a。

4.(15分)若一个数等于它的各个真因子之和,则称该数为完数,如

6=1+2+3,所以6是完数。

求[1,500]之间的全部完数。

form=1:

500

sum=0;%sum初始化

forn=1:

m/2% 循环从1开始,步进是1,到m/2结束

ifrem(m,n)==0%无符号取余

sum=sum+n;

end

end

ifsum==m%判断如果sum和m相等

forn=1:

m/2%循环从1开始,步进是1,到m/2结束

ifrem(m,n)==0

sum=sum+n;

disp(['约数:

',num2str(n)]);%显示约数

end

end

disp(['结果************',num2str(m)]);%显示完数

end

end

运行结果:

约数:

1

约数:

2

约数:

3

结果************6

约数:

1

约数:

2

约数:

4

约数:

7

约数:

14

结果************28

约数:

1

约数:

2

约数:

4

约数:

8

约数:

16

约数:

31

约数:

62

约数:

124

约数:

248

结果************496

5.(15分)求非齐次线性方程组的通解。

A=[357;612;-8913]

B=[1-46;294;73-2]

C=[AB]%生成3*6矩阵

D=[A;B]%生成6*3矩阵

P=[C(2,1)C(2,4)C(2,5);C(3,1)C(3,4)C(3,5)]%提取C的第2和3行,1/4/5列

AA=[2731;3522;9417]%系数矩阵

b=[6;4;2]

[m,n]=size(AA)

R=rank(AA)%求系数矩阵的秩

BB=[AAb]%增广矩阵

Rr=rank(BB)%求增广矩阵的秩

formatrat

ifR==Rr&R==n%n为未知数的个数,判断是否有唯一解

x=AA\b%唯一解

elseifR==Rr&R

x=AA\b%求特解

C=null(AA,'r')%求AX=0的基础解系,所得C为n-R列矩阵,这n-R列即为对应的基础解系

%这种情形方程组通解xx=k(p)*C(:

P)(p=1n-R)

elseX='Nosolution!

'%判断是否无解

end

X='K1*C(:

1)+K2*C(:

2)+x'%非齐次线性方程组的通解

6.(15分)已知空调机组部分的数学模型为:

设采样时间T=1s,给定输入为单位阶跃信号,试采用PID控制方案。

y1(k)=0.848y1(k-1)+1.4687u1(k-1)+0.2381u2(k-1)

解:

 clear all;

close all; 

u1_1=0.0;u1_2=0.0; 

u2_1=0.0;u2_2=0.0; 

y1_1=0;y2_1=0; 

x1=[0;0];x2=[0;0];x3=[0;0]; 

kp=0.285;

ki=0.098;

kd=0.0022; 

error_1=[0;0];

ts=1;

for k=1:

1:

150

time(k)=k*ts; 

R=[0;1];%PID Decouple Controller

u1(k)=kp*x1

(1)+kd*x2

(1)+ki*x3

(1);   

u2(k)=kp*x1

(2)+kd*x2

(2)+ki*x3

(2);   

u=[u1(k),u2(k)]; 

if u1(k)>=10

   u1(k)=10;

end

if u2(k)>=10

   u2(k)=10;

end

if u1(k)<=-10

   u1(k)=-10;

end

if u2(k)<=-10

   u2(k)=-10;

end %Coupling Plant

yout1(k)= (0.848*y1_1+1.4687*u1_1+0.2381*u2_1); 

yout2(k)= (0.7678*y2_1+0.8536*u1_1+1.021*u2_1);

error1(k)=R

(1)-yout1(k);

error2(k)=R

(2)-yout2(k);

error=[error1(k);error2(k)]; 

 u1_2=u1_1;u1_1=u

(1); 

 u2_2=u2_1;u2_1=u

(2); 

y1_1=yout1(k);

y2_1=yout2(k); 

x1=error;                %Calculating P

x2=(error-error_1)/ts;   %Calculating D

x3=x3+error*ts;          %Calculating I 

error_1=error;

end

figure

(1);

plot(time,R

(1),'k',time,yout1,'b');

hold on;

plot(time,R

(2),'k',time,yout2,'r');

xlabel('time(s)');ylabel('rin,yout');

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2