文档库 最新最全的文档下载
当前位置:文档库 › MATLAB大作业

MATLAB大作业

MATLAB大作业
MATLAB大作业

基于M A T L A B识别图片中的文字知识点:图像识别图像处理计算机视觉

实验目的:以MATLAB为工具,识别图片中的文字。

问题描述:

交通是一个十分重要的问题,红绿灯上的摄像头可以辨别车主的身份。现在,我们是否能够用matlab设计一个图像识别的系统,通过车牌号的来识别相应的数字。

问题分析及模型建立:

第一步:确定车牌号的区域

对于一张图像

在matlab中,在处理图像元素时用(x,y,z)三坐标的形式表达的灰度集时,其中,x和y是空间坐标,z是f 在坐标(x,y)处的值,就可以表达图像在该坐标轴上的点。再将,将f(x,y)的数值简单地显示为一个矩阵,就可以定量地表达了一幅数值图像。

矩阵中的每个元素称为像素。

所以,如果我们想要截取一段车牌号的图像,我们就可以扫描图像每一个点的像素。然后我们进行恢复处理,算子边缘检测,腐蚀,闭操作,删除小对象得到

我们就可以利用RGB的值找到白色区域的边界,然后我们利用边界,截取我们的原图像就可以得到我们所需要的车牌号的区域了。

第二步:进行文字的分割

在进行分割之前,就需要将我们所获得的车牌号的区域的图像进行进一步的处理,突出我们需要的文字部分。

灰度处理

彩色的图片占用的空间比较大,处理会花费很长的时间,先将图片进行灰度处理

二值化

再将图片二值化,将图片的256个灰度级强制减少到只有{0,255}2个灰度级,更加方便了后续的文字识

别识别。

均值滤波

均值滤波是对是对图像进行局部平均, 以平均值来代表该像素点的灰度值。矩形滤波器对这个二维矢量的每一个分量进行独立的平滑处理。获得一张比较干净清晰的图像。

腐蚀和膨胀

腐蚀可以分割独立的图像元素,膨胀用于连接相邻的元素,更加利于图像的分割

进行完图像的预处理,就可以开始图像的切割了

首先进行边缘的切割,处理完后的图像为黑底白字。其中黑色为0,白色1为。这样我们就可以从四个边缘进行扫描,若行或者列像素之和0的话,就为背景,这样就可以继续向内推移,直到和不为0的位置为止。这样就进行了边缘的切割。

接下来,先进行文字的切割,文字和字母、数字在长度和宽度上有较大的差别,所以需要单独的拿出来。因为号码是平铺过来的,所以我们进行列的扫描。先从最左边进行扫描,若列像素之和不为0的话,则说明有文字,直到和为0的时候停止。但是如果扫描出来的宽度太小的话就说明背景可能有白色区域干扰。这时,应该将刚刚扫描出来的区域置黑,再次进行扫描,截取图像。同理,数字和字母可同样按着上面的方式扫描,截取。

截取后的图像

模板的配对

所有的文字数字和字母都截取下来后,我们需要将所得的图片统一的量化为同样大小的图像方便比对。

统一量化后的图像

完成了这部的操作之后,就需要建立一个小型的模板库。将车牌号常见的文字、十个数字和26个英文字母存储为上面同样大小的二值化图片,并且以对应字符的名称命名。

将所有的模板放在一起,按照一定的顺序排列。然后,我们就可以调用我们已经切割好的图片和模板内部的图片进行相减,寻找差别最小的图片进行匹配,这样就可以识别出车牌号上的字符了。

问题求解:

matlab代码:

主函数

function [d]=main(jpg)

close all

clc

I=imread('');%读入车牌图像

I1=rgb2gray(I);

I2=edge(I1,'roberts',,'both');

se=[1;1;1];

I3=imerode(I2,se);

se=strel('rectangle',[25,25]);

I4=imclose(I3,se);

I5=bwareaopen(I4,2000);

figure(1),imshow(I5);title('从对象中移除小对象');

[y,x,z]=size(I5);%图像以(y,x,z)表达灰度集,x,y为坐标,z为对应位置的值

myI=double(I5);%转化为双精度,便于确定范围

tic % 测定算法执行的时间,开始计时

Blue_y=zeros(y,1);

for i=1:y

for j=1:x

if(myI(i,j,1)==1)

% 寻找y轴方向的白色区域

Blue_y(i,1)= Blue_y(i,1)+1; % 是蓝色区域的则进行计数

end

end

end

[temp MaxY]=max(Blue_y);%Y方向车牌区域确定temp(最多点数):所有行中,最多的累积PY1=MaxY;

while ((Blue_y(PY1,1)>=5)&&(PY1>1))

PY1=PY1-1;

end %Y轴方向的上限

PY2=MaxY;

while ((Blue_y(PY2,1)>=5)&&(PY2

PY2=PY2+1;

end %Y轴方向的的下限

IY=I(PY1:PY2,:,:);

%%%%%% X方向%%%%%%%%%

Blue_x=zeros(1,x);%进一步确定x方向的车牌区域

for j=1:x

for i=PY1:PY2 %只需要扫描PY1:PY2 的部分,简化程序

if(myI(i,j,1)==1)

Blue_x(1,j)= Blue_x(1,j)+1;

end

end

end

PX1=1;

while ((Blue_x(1,PX1)<3)&&(PX1

PX1=PX1+1;

end %确定x轴的右边界

PX2=x;

while ((Blue_x(1,PX2)<3)&&(PX2>PX1))

PX2=PX2-1;

end %确定x轴的左边界

PX1=PX1-1;%对车牌区域的校正

PX2=PX2+1;

dw=I(PY1:PY2-8,PX1:PX2,:); %确定图片的截取区域t=toc; % 读取程序的运行时间

a=imread(''); %读入已经截取好的图像

A=size(a);

if length(A)==3

b=rgb2gray(a);

else

b=a;

end

figure(8);subplot(3,2,1),imshow(b),title('1.车牌灰度图像')

g_max=double(max(max(b)));

g_min=double(min(min(b)));

T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值[m,n]=size(b);

d=(double(b)>=T); % d:二值图像

imwrite(d,'2.车牌二值图像.jpg');

figure(8);subplot(3,2,2),imshow(d),title('2.车牌二值图像') figure(8),subplot(3,2,3),imshow(d),title('3.均值滤波前')

% 滤波

h=fspecial('average',3); %进行均值滤波

imwrite(d,'4.均值滤波后.jpg');

figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后')

% 某些图像进行操作

% 膨胀或腐蚀

se=eye(2); % eye(n)可返回一个2*2单位矩阵

[m,n]=size(d);%图像为二值图像,x,y为坐标

if bwarea(d)/m/n>= %计算二值图像中对象的总面积d=imerode(d,se); %实现图形的腐蚀

elseif bwarea(d)/m/n<=

d=imdilate(d,se);%实现图像的膨胀

end

imwrite(d,'5.膨胀或腐蚀处理后.jpg');

figure(8),subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后')

% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割d=qiege(d); %截掉边界黑色的部分

[m,n]=size(d); %图像已经切割的图像的坐标

figure,subplot(2,1,1),imshow(d),title(n)

k1=1;

k2=1;

s=sum(d);

j=1;

while j~=n

while s(j)==0

j=j+1;

end %扫过的地方全为黑色,则向右移动,直到不是停止

k1=j; %确定截图的左边界

while s(j)~=0 && j<=n-1

j=j+1;

end %继续扫描,扫过的地方不全为黑色,向右移动,直到不是停止

k2=j-1; %确定截图的右边界

if k2-k1>=round(n/

[val,num]=min(sum(d(:,[k1+5:k2-5])));

d(:,k1+num+5)=0; % k1+num+5列的位置赋值为黑色,分割end

end

% 再切割

d=qiege(d);

% 切割出7 个字符

y1=10;y2=;flag=0;word1=[];

while flag==0

[m,n]=size(d);

left=1;wide=0;

while sum(d(:,wide+1))~=0

wide=wide+1;

end %扫过的地方不全为黑色,向右移动,直到不是停止

if wide

d=qiege(d);

else

temp=qiege(imcrop(d,[1 1 wide m])); %返回已经切割好的区域

[m,n]=size(temp);

all=sum(sum(temp));

two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));

if two_thirds/all>y2

flag=1;word1=temp; % WORD 1

end

d(:,[1:wide])=0;d=qiege(d);

end

end

% 分割出第二个字符

[word2,d]=getword(d);%getword的函数与上面类似,字母、数字和文字在一些细节上需要去区分

% 分割出第三个字符

[word3,d]=getword(d);

% 分割出第四个字符

[word4,d]=getword(d);

% 分割出第五个字符

[word5,d]=getword(d);

% 分割出第六个字符

[word6,d]=getword(d);

% 分割出第七个字符

[word7,d]=getword(d);

subplot(5,7,1),imshow(word1),title('1');

subplot(5,7,2),imshow(word2),title('2');

subplot(5,7,3),imshow(word3),title('3');

subplot(5,7,4),imshow(word4),title('4');

subplot(5,7,5),imshow(word5),title('5');

subplot(5,7,6),imshow(word6),title('6');

subplot(5,7,7),imshow(word7),title('7');

[m,n]=size(word1);

% 将生成的图片归一化大小为40*20

word1=imresize(word1,[40 20]);

word2=imresize(word2,[40 20]);

word3=imresize(word3,[40 20]);

word4=imresize(word4,[40 20]);

word5=imresize(word5,[40 20]);

word6=imresize(word6,[40 20]);

word7=imresize(word7,[40 20]);

subplot(5,7,15),imshow(word1),title('1');

subplot(5,7,16),imshow(word2),title('2');

subplot(5,7,17),imshow(word3),title('3');

subplot(5,7,18),imshow(word4),title('4');

subplot(5,7,19),imshow(word5),title('5');

subplot(5,7,20),imshow(word6),title('6');

subplot(5,7,21),imshow(word7),title('7');

imwrite(word1,'');

imwrite(word2,'');

imwrite(word3,'');

imwrite(word4,'');

imwrite(word5,'');

imwrite(word6,'');

imwrite(word7,'');

liccode=char(['0':'9' 'A':'Z' '苏豫陕鲁晋']); %建立自动识别字符代码表SubBw2=zeros(40,20); %40*20的零矩阵

l=1;

for I=1:7

ii=int2str(I); %int2str整型转换字符串

t=imread([ii,'.jpg']);

SegBw2=imresize(t,[40 20],'nearest'); %改变图片的大小

if l==1 %第一位汉字识别

kmin=37;

kmax=41; %模板中汉字所在的位置

elseif l==2 %第二位A~Z 字母识别

kmin=11;

kmax=36; %模板中数字所在的位置

else l>=3 %第三位以后是字母或数字识别

kmin=1;

kmax=36; %模板中字母所在的位置

end

for k2=kmin:kmax

fname=strcat('字符模板\',liccode(k2),'.jpg');

SamBw2=imread(fname);

Error(k2)=sum(sum(abs(SegBw2-SamBw2)));

%将现有字符逐个与模板字符相减,认为相减误差最小的现有字符与该模板字符匹配

end

Error1=Error(kmin:kmax);

MinError=min(Error1);

findc=find(Error1==MinError);%寻找最匹配的字符

Code(l*2-1)=liccode(findc(1)+kmin-1);%将上述找到的字符位置与liccode中的字符链接上

Code(l*2)=' ';%在字符之间加空格

l=l+1;

end

figure(10),imshow(a),title (['车牌号码:', Code],'Color','b');

函数getword

function [word,result]=getword(d)

word=[];flag=0;y1=8;y2=;

while flag==0

[m,n]=size(d);

wide=0;

while sum(d(:,wide+1))~=0 && wide<=n-2

wide=wide+1;

end

temp=qiege(imcrop(d,[1 1 wide m]));

[m1,n1]=size(temp);

if widey2

d(:,[1:wide])=0;

if sum(sum(d))~=0

d=qiege(d); % 切割出最小范围

else word=[];flag=1;

end

else

word=qiege(imcrop(d,[1 1 wide m]));

d(:,[1:wide])=0;

if sum(sum(d))~=0;

d=qiege(d);flag=1;

else d=[];

end

end

end

%end

result=d;

qiege函数

function e=qiege(d)

[m,n]=size(d);

top=1; %下端

bottom=m; %下端

left=1; %左端

right=n; % 右端

while sum(d(top,:))==0 && top<=m %如果矩阵d的第top行的和为0的话top=top+1;

end

while sum(d(bottom,:))==0 && bottom>=1 %如果矩阵d的第bottom行的和为0的话

bottom=bottom-1;

end

while sum(d(:,left))==0 && left<=n %如果矩阵d的第left列的和为0的话left=left+1;

end

while sum(d(:,right))==0 && right>=1 %如果矩阵d的第right列的和为0的话right=right-1;

end

dd=right-left; %切割的宽度

hh=bottom-top; %切割的高度

e=imcrop(d,[left top dd hh]); %返回该截取的区域

结果分析:

1,这种垂直扫描的方式,图像的中车的牌照需要接近水平,如果倾斜的比较厉害,很难只截取车牌号的区域。

2,扫描字符的时候,如果扫描左右结构的字符时,比如“沪”,则会截出‘氵’和‘户’两个部分,就无法匹配字符。

3,如果遇到受污染很严重的图片,就难切割图片的和模板中的图片匹配。

参考文献

[1]艾冬梅,李艳晴,张丽静,刘琳MATLAB与数学实验[M]机械工业出版社

[2]Rafael Richard 数字图像处理[M]电子工业出版社

[3]樊昀,王润生.从图像中提取文字[J] .国防科技大学学报,2002,24 (1) :59-62.

[4] 邹浩,余龙,邹勇博,刘宇童,和振乔,李少梅.基于MATLAB的图片中文字的提取

及识别[J]. 西安电子科技大学电子工程学院,西安,710126

MATLAB大作业

选 题 说 明 本人选做第2、4、5、9、11、12、13、14、16、19、24 题。 作业内容题目2:问题描述:在[0 , 2π]范围内绘制二维曲线图y=cos(5x)*sin(x) (1)问题分析 这是一个二维绘图问题,先写出x的取值范围,再用plot函数画出y的图像。 (2)软件说明及源代码 >> x = 0:pi/100:2.*pi; y=cos(5*x).*sin(2*x); >> plot(x,y) (3)实验结果 题目4:问题描述:创建符号函数并求解,要求写出步骤和运行结果 (1)创建符号函数f=ax2+bx+c

(2)求f=0的解 (1)问题分析 这是符号计算问题,首先要确定符号变量,然后创建符号函数,最后利用subs函数求解特值。 (2)软件说明及源代码 >> syms a b c x f; f=a*x^2+b*x+c; subs(f,0) (3)实验结果 ans = c 题目5:问题描述:求积分 (1)问题分析 这是符号计算的积分求解问题,首先需要确定符号变量,然后利用int函数计算积分。 (2)软件说明及源代码 >> syms x y; y=sqrt(1-2*sin(2*x)); >> int(y,x,0,pi/2) (3)实验结果 ans = ellipticE(-pi/4, 4)*1i - ellipticE(pi/4, 4)*1i - ellipticE(-pi/6, 4)*2i + ellipticE(pi/6, 4)*2i 题目9:问题描述:按水平和竖直方向分别合并下述两个矩阵:

(1)问题分析 这是考查矩阵的基本操作,首先定义矩阵,然后合并矩阵。 (2)软件说明及源代码 >> A=[1,0,0;1,1,0;0,0,1]; B=[2,3,4;5,6,7;8,9,10]; >> a=[A,B],b=[A;B] (3)实验结果 a = 1 0 0 2 3 4 1 1 0 5 6 7 0 0 1 8 9 10 b = 1 0 0 1 1 0 0 0 1 2 3 4 5 6 7 8 9 10 题目11:问题描述:计算z=yx2+3y2x+2y3的和: (1)问题分析 这是符号计算问题,首先确定符号变量,然后构造函数,最后利用diff函数进行求导。 (2)软件说明及源代码 >> syms x y z; >> z=y*x^2+3*y^2*x+2*y^3; >> diff(z,y,1),diff(diff(z,y,1),x,1) (3)实验结果 ans = x^2 + 6*x*y + 6*y^2

实例matlab-非线性规划-作业

实例matlab-非线性规划-作业

现代设计方法-工程优化理论、方法与设计 姓名 学号 班级 研 问题 : 某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为 (元),其中x 是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c 元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低。讨论a 、b 、c 变化对计划的影响,并作出合理的解释。 问题的分析和假设: 问题分析:本题是一个有约束条件的二次规划问题。决策变量是工厂每季度生产的台数,目标函数是总费用(包括生产费用和存储费)。约束条件是生产合同,生产能力的限制。在这些条件下需要如何安排生产计划,才能既满足合同又使总费用最低。 问题假设: 1、工厂最大生产能力不会发生变化; 2、合同不会发生变更; 3、第一季度开始时工厂无存货; 4、生产总量达到180台时,不在进行生产; 5、工厂生产处的发动机质量有保证,不考虑退货等因素; 6、不考虑产品运输费用是否有厂家承担等和生产无关的因素。 符号规定: x1——第一季度生产的台数; x2——第二季度生产的台数; 180-x1-x2——第三季度生产的台数; y1——第一季度总费用; y2——第二季度总费用; y3——第三季度总费用; y ——总费用(包括生产费用和存储费)。 ()2bx ax x f +=

建模: 1、第一、二、三季度末分别交货40台、60台、80台; 2、每季度的生产费用为 (元); 3、每季度生产数量满足40 ≤x1≤100,0≤x2≤100,100≤x1+x2 ≤180; 4、要求总费用最低,这是一个目标规划模型。 目标函数: y1 2111x b x a Z ?+?= y2()4012222-?+?+?=x c x b x a Z y3()()()10018018021221213 -+?+--?+--?=x x c x x b x x a Z y x x x x x x Z Z Z Z 68644.04.04.0149201 212221321--+++=++= 40≤x1≤100 0≤x2≤100 100≤x1+x2≤180 ()2 bx ax x f +=

MATLAB大作业

MATLAB大作业 作业要求: (1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。 (2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。打印稿不要求MATLAB程序,但电子稿要包含MATLAB 程序。 (3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。 (4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。 (5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。 第一类:绘制图形。(B级) 问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据 斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线,如图所示。 问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢 尔宾斯基在1915年提出,它是一种典型的自相似集。其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三角形,然后去掉中间的那一个小三角形。接下来对其余三个小三角形重复上述操作,如图所示。

问题三:其他分形曲线或图形。分形曲线还有很多,教材介绍了科赫曲线,其他还有皮 亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。这方面的资料很多(如https://www.wendangku.net/doc/cf11504056.html,/content/16/0103/14/5315_525141100.shtml),请分析构图原理并用MATLAB实现。 问题四:模拟掷骰子游戏:掷1000次骰子,统计骰子各个点出现的次数,将结果以下表的形式显示,并绘制出直方图。 点数 1 2 3 4 5 6 出现次数166 150 164 162 184 174 问题五:利用MATLAB软件绘制一朵鲜花,实现一定的仿真效果。 提示:二维/三维绘图,对花瓣、花蕊、叶片、花杆等的形状和颜色进行详细设置。 第二类:插值与拟合。(B级) 问题一:有人对汽车进行了一次实验,具体过程是,在行驶过程中先加速,然后再保持匀速行驶一段时间,接着再加速,然后再保持匀速,如此交替。注意,整个实验过程中从未 (1)分别使用最近点插值、线性插值、三次埃尔米特插值和三次样条插值进行计算[0,110]时间段50个时间点的速度。 (2)绘制插值图形并标注样本点。 问题二:估算矩形平板各个位置的温度。已知平板长为5m,宽为3m,平板上3×5栅格 点上的温度值为44,25,20,24,30;42,21,20,23,38;25,23,19,27,40。 (1)分别使用最近点插值、线性插值和三次样条插值进行计算。 (2)用杆图标注样本点。 (3)绘制平板温度分布图。 问题三:自行车道的设计。对9条道路上的自行车道宽度以及自行车与过往机动车之间 (1)对数据进行线性拟合。 (2)绘制拟合曲线和样本点。 (3)如果自行车与过往机动车之间安全距离的最小距离是1.8m,试计算相应的自行车道宽度的最小值。 问题四:在水资源工程学中,水库的大小与为了蓄水而拦截的河道中的水流速度密切相 关。对于某些河流来说,这种长时间的历史水流记录很难获得。然而通常容易得到过去若干年间关于降水量的气象资料。鉴于此,推导出流速与降水量之间的关系式往往特别有用。只

Matlab大作业

Matlab 大作业 (组内成员:彭超杰、南彦东、江明伟) 一、研究模型 (电车)通过控制油门(保持一定角度)来调节电动机能输出稳定的转速,从而控制车速稳定。 数学依据说明如下: 由图可知存在以下关系:a d a a u w k R i dt di L =++ (w k e d d =) L M M dt dw J -= a m i k M = L a m M i k dt dw J -=

k为反电势常数,m k为电动机电磁力矩常数,这里忽略阻尼力矩。d

二、数学模型 再看整个研究对象,示意图以课本为依据,不同点是这里将数控的进给运动,转换为汽车行驶所需要的扭矩。(这里不说明扭矩的具体产生过程,仅仅说明输出车轮旋转的角速度w ) 对照课本不同,() s θ变为()s N ,1 221z z w w =,1w 为电动机的转速,2w 为轮胎的转速,1z 为电动机的光轴齿轮的齿数,2z 为与轮胎相连光轴的 齿轮齿数。 )(*10110w x w k x ==,1 21z z k = ()c a m m d b a m x K K K k s k k JRs JLs K K K k s G i 1231+++= () c a m m d M K K K k s k k JRs JLs R Ls K s G L 1231)(++++-= 同理,忽略电枢绕组的电感L ,简化系统传递函数方框图如下

()JR K K K k JR s k k s JR K K K k s G c a m m d b a m x i 121++= ()JR K K K k JR s k k s K K K K k s k k Rs R K s G c a m m d c a m m d M L 121121++-=++-=

BP神经网络matlab实例(简单而经典)

p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化 net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx'); %设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2 S S SNl:各层的神经元个数。 [ 1 2...] { 1 2...} TF TF TFNl:各层的神经元传递函数。 BTF:训练用函数的名称。 (2)网络训练 [,,,,,] (,,,,,,) = net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp'

matlab与数学实验大作业

《数学实验与MATLAB》 ——综合实验报告 实验名称:不同温度下PDLC薄膜的通透性 与驱动电压的具体关系式的研究学院:计算机与通信工程学院 专业班级: 姓名: 学号: 同组同学: 2014年 6月10日

一、问题引入 聚合物分散液晶(PDLC)是将低分子液晶与预聚物Kuer UV65胶相混合,在一定条件下经聚合反应,形成微米级的液晶微滴均匀地分散在高分子网络中,再利用液晶分子的介电各向异性获得具有电光响应特性的材料,它主要工作在散射态和透明态之间并具有一定的灰度。聚合物分散液晶膜是将液晶和聚合物结合得到的一种综合性能优异的膜材料。该膜材料能够通过驱动电压来控制其通透性,可以用来制作PDLC型液晶显示器等,具有较大的应用范围。已知PDLC薄膜在相同光强度及驱动电压下,不用的温度对应于不同的通透性,不同温度下的阀值电压也不相同。为了尽量得到不同通透性的PDLC薄膜,有必要进行温度对PDLC薄膜的特性的影响的研究。现有不同温度下PDLC 薄膜透过率与驱动电压的一系列数据,试得出不同温度下PDLC薄膜通透性与驱动电压的具体关系式,使得可以迅速得出在不同温度下一定通透性对应的驱动电压。 二、问题分析 想要得到不同温度下PDLC薄膜通透性与驱动电压的具体关系式可以运用MATLAB多项式农合找出最佳函数式,而运用MATLAB多项式插值可以得出在不同温度下一定通透性所对应的驱动电压。 三、实验数据 选择10、20、30摄氏度三个不同温度,其他条件一致。

(1)、10摄氏度 实验程序: x=2:2:40; y=[5.2,5.4,5.8,6.4,7.2,8.2,9.4,10.8,12.2,14.0,16.6,22.0, 30.4,39.8,51.3,55.0,57.5,58.8,59.6,60.2]; p3=polyfit(x,y,3); p5=polyfit(x,y,5); p7=polyfit(x,y,7); disp('三次拟合函数'),f3=poly2str(p3,'x') disp('五次拟合函数'),f5=poly2str(p5,'x') disp('七次拟合函数'),f7=poly2str(p7,'x') x1=0:1:40; y3=polyval(p3,x1); y5=polyval(p5,x1); y7=polyval(p7,x1); plot(x,y,'rp',x1,y3,'--',x1,y5,'k-.',x1,y7); legend('拟合点','三次拟合','五次拟合','七次拟合') 实验结果:

MATLAB期末大作业模版

《MATLAB》期末大作业 学院土木工程与建筑学院 专业 班级 姓名 指导教师李琳 2018 年 5 月16 日

明 作业内容题目2:问题描述:在[0 2π]范围内绘制二维曲线图y=cos(5x)*sin(x) (1)问题分析 这是一个二维绘图问题,先划定x的范围与间距,再列出y的表达式,利用plot函数绘制二维曲线。 (2)软件说明及源代码 >> x = 0:pi/10:2*pi; >>y = cos(5*x).*sin(x); >>plot(x,y) (3)实验结果 题目4:问题描述:创建符号函数并求解,要求写出步骤和运行结果 (1)创建符号函数f=ax2+bx+c (2)求f=0的解 (1)问题分析 这是一个符号函数显示以及符号函数的求解问题,第一问先定义常量与变量,在写出f表达式,利用pretty函数显示f。第二问利用solve函数求解f=0时的解。 (2)软件说明及源代码

第一问 >> syms a b c x; >> f=a*x^2+b*x+c; >> pretty(f) 第二问 >>syms a b c x; >>f=a*x^2+b*x+c; >> solve(f) (3)实验结果 1、 2、 题目5:问题描述:求积分 (1)问题分析 这是一个利用符号函数求积分的问题,先定义变量x,再列出I1表达式,利用int函数求在范围0到Pi/2上的积分。 (2)软件说明及源代码 >> syms x; >> I1=(1-2*sin(2*x))^0.5; >> int(I1,0,0.5*pi) (3)实验结果 题目6:问题描述:分别随机产生一个6×6的整数矩阵(元素可在[-20,20]之间),求该随机阵的秩,特征值和特征向量。 (1)问题分析 这是一个矩阵运算问题,先利用rand函数产生一个6*6的元素在-20到20

matlab综合大作业(附详细答案)

《MATLAB语言及应用》期末大作业报告 1.数组的创建和访问(20分,每小题2分): 1)利用randn函数生成均值为1,方差为4的5*5矩阵A; 实验程序:A=1+sqrt(4)*randn(5) 实验结果: A = 0.1349 3.3818 0.6266 1.2279 1.5888 -2.3312 3.3783 2.4516 3.1335 -1.6724 1.2507 0.9247 -0.1766 1.1186 2.4286 1.5754 1.6546 5.3664 0.8087 4.2471 -1.2929 1.3493 0.7272 -0.6647 -0.3836 2)将矩阵A按列拉长得到矩阵B; 实验程序:B=A(:) 实验结果: B = 0.1349 -2.3312 1.2507 1.5754 -1.2929 3.3818 3.3783 0.9247 1.6546 1.3493 0.6266 2.4516 -0.1766 5.3664 0.7272 1.2279 3.1335 1.1186 0.8087 -0.6647 1.5888 -1.6724 2.4286 4.2471

-0.3836 3)提取矩阵A的第2行、第3行、第2列和第4列元素组成2*2的矩阵C;实验程序:C=[A(2,2),A(2,4);A(3,2),A(3,4)] 实验结果: C = 3.3783 3.1335 0.9247 1.1186 4)寻找矩阵A中大于0的元素;] 实验程序:G=A(find(A>0)) 实验结果: G = 0.1349 1.2507 1.5754 3.3818 3.3783 0.9247 1.6546 1.3493 0.6266 2.4516 5.3664 0.7272 1.2279 3.1335 1.1186 0.8087 1.5888 2.4286 4.2471 5)求矩阵A的转置矩阵D; 实验程序:D=A' 实验结果: D = 0.1349 -2.3312 1.2507 1.5754 -1.2929 3.3818 3.3783 0.9247 1.6546 1.3493 0.6266 2.4516 -0.1766 5.3664 0.7272 1.2279 3.1335 1.1186 0.8087 -0.6647 1.5888 -1.6724 2.4286 4.2471 -0.3836 6)对矩阵A进行上下对称交换后进行左右对称交换得到矩阵E; 实验程序:E=flipud(fliplr(A)) 实验结果:

matlab函数计算的一些简单例子1

MATLAB作业一1、试求出如下极限。 (1) 23 25 (2)(3) lim (5) x x x x x x x ++ + →∞ ++ + ,(2) 23 3 1 2 lim () x y x y xy x y →- → + + ,(3) 22 22 22 1cos() lim ()x y x y x y x y e+ → → -+ + 解:(1)syms x; f=((x+2)^(x+2))*((x+3)^(x+3))/((x+5)^(2*x+5)) limit(f,x,inf) =exp(-5) (2)syms x y; f=(x^2*y+x*y^3)/(x+y)^3; limit(limit(f,x,-1),y,2) =-6; (3)syms x y; f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2); limit(limit(f,x,0),y,0) =0 2、试求出下面函数的导数。 (1 )() y x=, (2)22 atan ln() y x y x =+ 解; (1)syms x; f=sqrt(x*sin(x)*sqrt(1-exp(x))); g= diff(f,x); g== (sin(x)*(1 - exp(x))^(1/2) + x*cos(x)*(1 - exp(x))^(1/2) - (x*exp(x)*sin(x))/(2*(1 - exp(x))^(1/2)))/(2*(x*sin(x)*(1 - exp(x))^(1/2))^(1/2)) pretty(g)= (2)syms x y; f=atan(y/x)-log(x^2+y^2) pretty(-simple(diff(f,x)/diff(f,y)))= 2 x + y =------- x - 2 y (3) 假设1 cos u- =,试验证 22 u u x y y x ?? = ???? 。 解:syms x y; u=1/cos(sqrt(x/y)); diff(diff(u,x),y)-diff(diff(u,y),x)=0; 所以: 22 u u x y y x ?? = ????

matlab仿真实例

matlab 仿真实例 实验五MATLAB 及仿真实验一、控制系统的时域分析 (一)稳定性 1、系统传递函数为G(s),试判断其稳定性。 程序: >> nu m=[3,2,5,4,6]; >> den=[1,3,4,2,7,2]; >> sys=tf( nu m,de n); >> figure(1); >> pzmap(sys); >> title(' 零极点图') 由图可知:在S 右半平面有极点,因此可知系统是不稳定的。 2、用MATLA 求 出 G(s)=(s A 2+2*s+2)/(s A 4+7*s A 3+5*s+2) 的极点。 程序及结果: >> sys=tf([1,2,2],[1,7,3,5,2]); >> p=pole(sys) 矿'. 赳 _ ■ —

-6.6553 0.0327 + 0.8555i 0.0327 - 0.8555i -0.4100 (二)阶跃响应 1、二阶系统G(s)=10/s A2+2*s+10 1)键入程序,观察并记录单位阶跃响应曲线: 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线') 2)计算系统闭环跟、阻尼比、无阻尼振荡频率,并记录程序及结果: >> sys=tf(10,[1,2,10]); >> p=pole(sys)

p = -1.0000 + 3.0000i -1.0000 - 3.0000i >> [wn,z]=damp(sys) wn = 3.1623 3.1623 z = 0.3162 0.3162 3)记录实际测取的峰值大小,峰值时间和过渡过程时间,并填表实际值理论值峰值Cmax 1.35s 峰值时间tp 1.05s 过渡时间+5% 3.54s ts +2% 3.18s 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线')

MATLAB大作业

M A T L A B大作业作业要求: (1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电 子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。 (2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果 分析、本课程学习体会、列出主要的参考文献。打印稿不要求MATLAB程序,但电 子稿要包含MATLAB程序。 (3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话 则长,无话则短。不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。 (4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。 (5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。 第一类:绘制图形。(B级) 问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契 螺旋线,如图所示。 问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三

角形,然后去掉中间的那一个小三角形。接下来对其余三个小三角形重复上述操作,如图所示。 问题三:其他分形曲线或图形。分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。这方面的资料很多(如),请分析构图原理并用MATLAB 实现。 问题四:模拟掷骰子游戏:掷1000次骰子,统计骰子各个点出现的次数,将结果以下表的形式显示,并绘制出直方图。 点数 1 2 3 4 5 6 出现次数166 150 164 162 184 174 问题五:利用MATLAB软件绘制一朵鲜花,实现一定的仿真效果。 提示:二维/三维绘图,对花瓣、花蕊、叶片、花杆等的形状和颜色进行详细设置。 第二类:插值与拟合。(B级) 问题一:有人对汽车进行了一次实验,具体过程是,在行驶过程中先加速,然后再保持匀速行驶一段时间,接着再加速,然后再保持匀速,如此交替。注意,整个实验过程中从未减速。在一组时间点上测得汽车的速度如表所示。 (1)分别使用最近点插值、线性插值、三次埃尔米特插值和三次样条插值进行计算[0,110]时间段50个时间点的速度。 (2)绘制插值图形并标注样本点。

matlab函数计算的一些简单例子2

MATLAB 作业二 1、请将下面给出的矩阵A 和B 输入到MATLAB 环境中,并将它们转换成符号矩阵。若某一 矩阵为数值矩阵,另以矩阵为符号矩阵,两矩阵相乘是符号矩阵还是数值矩阵。 57651653 5501232310014325462564206441211346,3 9636623 51521210760077410120172440773 473 78 124867217110 7 681 5A B ???? ?????????? ????? ?==?????? ????? ?---????????--??? ? 解:A 转换为符号矩阵;a=sym(A) a=[5,7,6,5,1,6,5] [2,3,1,0,0,1,4][6,4,2,0,6,4,4][3,9,6,3,6,6,2][10,7,6,0,0,7,7][7,2,4,4,0,7,0][4,8,6,7,2,1,7]B 转换为符号矩阵;b=sym(B)b = [3,5,5,0,1,2,3][3,2,5,4,6,2,5][1,2,1,1,3,4,6][3,5,1,5,2,1,2][4,1,0,1,2,0,1][-3,-4,-7,3,7,8,12][1,-10,7,-6,8,1,5] 若某一矩阵为数值矩阵,另以矩阵为符号矩阵,两矩阵相乘是符号矩阵例;a*B= [48,3,64,48,159,106,194][17,-26,47,-8,62,26,59][48,-8,52,12,108,64,124][59,22,41,69,151,101,184][43,-22,91,13,175,121,220][22,39,4,53,88,94,147][75,11,115,36,151,70,151] 2、利用MATLAB 语言提供的现成函数对习题1中给出的两个矩阵进行分析,判定它们是否 为奇异矩阵,得出矩阵的秩、行列式、迹和逆矩阵,检验得出的逆矩阵是否正确。 解:由于a=det(A)=3.7396e+04;故A 是非奇异矩阵。B=det(B)=0,故B 是奇异矩阵; 由于a=rank(A)=7,故A 的秩为7;由于b=rank(B)=5,故B 的秩为5;由于a=trace(A)=27,b=trace(B)=26,故A,B 的迹为27,26;由a=inv(A)得A 的逆矩阵如下;

Matlab程序设计(2016大作业)

Matlab程序设计 课程大作业 题目名称:_________________________________ 班级:_________________________________ 姓名:_________________________________ 学号:_________________________________ 课程教师:温海骏 学期:2015-2016学年第2学期 完成时间: MATLAB优化应用 §1 线性规划模型 一、线性规划问题: 问题1:生产计划问题 假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。 问题2:投资问题 某公司有一批资金用于4个工程项目的投资,其投资各项目时所得的净收益(投入资金百分比)如下表:工程项目收益表 工程项目 A B C D 收益(%) 15 10

12 由于某种原因,决定用于项目A的投资不大于其他各项投资之和而用于项目B和C的投资要大于项目D的投资。试确定该公司收益最大的投资分配方案。 问题3:运输问题 有A、B、C三个食品加工厂,负责供给甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表: 工厂 A B C 生产数 60 40 50 四个市场每天的需求量如下表: 市场 甲 乙 丙 丁 需求量 20 35 33 34 从各厂运到各市场的运输费(元/每箱)由下表给出: 收点 发点 市场 甲 乙 丙 丁 工 厂 A 2 1 3 2 B

Matlab作业

《Matlab/Simulink电力系统建模与仿真》 上机实验报告 班级:15电气工程及其自动化二班 学号:154139240096 姓名:汤嘉旺 实验一:Powergui在简单电力系统潮流计算中的应用实例 1.1实验内容与要求 完成2机5节点电力系统的潮流计算,以2机5节点电力系统为模型进行Matlab/Simulink电力系统建模与仿真。并完成电力系统元件的模型选择、模型参数的计算及设置、计算结果及比较。 2机5节点电力系统图 1.2 Simulink建模原理图和主要模块参数设置 1、发电机模型 在该系统中的两台发电机均选用p.u.标准同步电机模块

“Synchronous Machine pu Standard”,该模块使用标幺值参数,以转子dq 轴建立的坐标系为参数,定子绕组为星形连接。 2、变压器模块 系统中的两台变压器均选用三相双绕组变压器模块 “Three-phase Transformer(Two Windings)”,采用Y-Y连接方式。 3、线路模块 系统中带有地导纳的线路选用三相“II”形等值模块 “Three Phase PI Section Line”,没有对地导纳的线路选用三相串联RLC支路模块“Three Phase Series RLC Branch”。 4、负荷模块 在SimPowerSystems库中,利用R、L、C的串联或并联组合,提供了两个静态三相负荷模块。这两种模块是用恒阻抗支路模拟负荷,在仿真时,在给定的频率下负荷阻抗为常数。 5、母线模块 选择带有测量元件的母线模型,及三相电压电流测量元 件“Three-Phase V-I Measurement”来模拟系统中的母线,同时方便测量流过线路的潮流,在线路元件的两端也设置了该元件。 2机5节点电力系统潮流计算仿真模型图

华科matlab大作业

MATLAB语言、控制系统分析与设计 大作业 升降压斩波电路MATLAB仿真 专业:电气工程及其自动化 班级: 设计者: 学号: 评分: 华中科技大学电气与电子工程学院 2016 年1月

评分栏

目录 一、引言 (4) 二、电路设计与仿真 (4) 三、仿真结果及分析 (7) 四、深入讨论 (10) 五、总结 (10) 六、参考资料 (11)

升降压斩波电路MATLAB 仿真 一.引言 Buck/Boost 变换器是输出电压可低于或高于输入电压的一种单管直流变换器,其主电路与Buck 或Boost 变换器所用元器件相同,也有开关管、二极管、电感和电容构成。与Buck 和Boost 电路不同的是,电感L 在中间,不在输出端也不在输入端,且输出电压极性与输入电压相反。开关管也采用PWM 控制方式。Buck/Boost 变换器也有电感电流连续喝断续两种工作方式,在此只讨论电感电流在连续状态下的工作模式。 二.电路设计与仿真 1、电路原理 当可控开关V 处于通态时,电源E 经V 向电感L 供电使其储存能量,此时电流为i1。同时,电容C 维持输出电压基本恒定并向负载R 供电。此后,使V 关断,电感L 中储存的能量向负载L 释放,电流为i2。负载电压极性为上正下负,与电源电压极性相反。 稳态时,一个周期T 内电感L 两端电压UL 对时间积分为零,即 当V 处于通态期间,UL=E ;而当V 处于断态期间,UL=-Uo 。于是 所以,输出电压为 =?dt T L U off o on t U Et =E E t T t E t t U on on off on o α α -=-== 1

Matlab简单实例学习

Matlab 程序代码 绘 制 1.5sin(7.75)7.75t y e t -=的函数图象。 fv clear; t=0:0.02:10; f1=10/sqrt(7.75).*exp(-1.5*t); f2=sin(sqrt(7.75).*t); y=f1.*f2; plot(t,y,'-k',t,y,'ok'); xlabel('t');ylabel('y(t) ');title('函数图像') axis([-2 10 -0.5 2]) 拉氏变换 clear; clc; syms s t fs1 fs2 fs3 ft1 ft2 ft3; L=1,C=0.1,R=[1.5 3 5]; h1=1/(L*C*s^2+R(1)*C*s+1); h2=1/(L*C*s^2+R(2)*C*s+1);

h3=1/(L*C*s^2+R(3)*C*s+1); fs1=h1*(1/s); fs2=h2*(1/s); fs3=h3*(1/s); ft1=ilaplace(fs1,s,t); ft2=ilaplace(fs2,s,t); ft3=ilaplace(fs3,s,t); ezplot(t,ft1); hold on; ezplot(t,ft2); hold on; ezplot(t,ft3); 信号编码 对[1 1 0 1 1 1 0 1 0 0 1]进行编码。clear; clc; c=[1 1 0 1 1 1 0 1 0 0 1] for i=1:length(c) if i==1 d1(i)=0;d2(i)=0; elseif i==2 d1(i)=c(i-1);d2(i)=c(i-1); elseif i==3

matlab解题实例

Matlab 综合作业:运用matlab 建模解题 导弹追踪问题 1. 位于坐标原点的甲舰向位于x 轴上点A (1, 0)处的乙舰发射导弹, 导弹头始终对准乙舰.如果乙舰以最大的速度v 0(常数)沿平行于y 轴的直线行驶,导弹的速度是5v 0,求导弹运行的曲线方程.乙舰行驶多远时,导弹将它击中? 解:假设t 时刻导弹的位置为P (x (t ), y (t )),乙舰位于),1(0t v Q 由于导弹头 始终对准乙舰,故此时直线PQ 就是导弹的轨迹曲线弧OP 在点P 处的切线, 即有 x y t v y --=1'0 即 y y x t v +-=')1(0 (1) 又根据题意,弧OP 的长度为AQ 的5倍, 即 0d 5x x v t =? (2) 由(1),(2)消去t, 整理得模型: (3) '151 ")1(2y y x +=- 值条件为: 0)0(=y 0)0('=y 令y 1=y , y 2=y 1`,将方程(3)化为一阶微分方程组. 2 151 '')1(y y x +=- ? ?????-+==)1/(151''21221x y y y y 1.建立M 文件a1.m function dy=a1(x,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1/5*sqrt(1+y(1)^2)/(1-x); 2. 取x0=0,xf=0.9999,建立主程序ff6.m 如下: x0=0,xf=0.9999 [x,y]=ode15s('a1',[x0 xf],[0 0]);

plot(x,y(:,1),'b.') hold on y=0:0.01:2; plot(1,y,'b*') 运行得图: 结论: 导弹大致在(1,0.2)处击中乙舰.

MATLAB遗传算法PID大作业

遗传算法在调节控制系统参数中的应用 【摘要】自动化控制系统多采用PID 控制器来调节系统稳定性和动态性,PID 的 Kp,Ki,Kd 参数需要合理选择方能达到目标。遗传算法是一种模拟生物进化寻求最优解的有效算法,本文通过利用GAbx 工具箱实现对控制电机的PID 进行参数优化,利用matlab 的仿真功能可以观察控制效果。 1. 直流伺服电机模型 1.1物理模型 图1 直流伺服电机的物理模型 αu ---电枢输入电压(V ) a R ---电枢电阻(Ω) S L ---电枢电感(H ) q u ---感应电动势(V ) g T ---电机电磁转矩(N m ?) J---转动惯量(2m kg ?) B---粘性阻尼系数(s m N ??) g i ---流过电枢的电流(A ) θ---电机输出的转角(rad ) 1.2传递函数 利用基尔霍夫定律和牛顿第二定律得出电机基本方程并进行拉布拉斯变换 ) ()()()()()()()()()()(2s s K s U K s I s T s Bs s Js s T s I s L R s I s U s U e q t a g g a a a a q a θθθ?=?=?+?=?+?=- 式中:t K 为电机的转动常数(m N ?)A ;e K 为感应电动势常数(s V ?)rad a a R s L +1 S 1 B Js +1 i K C K )(s U a )(s U q )(s I a )(s T g )(s Ω )(s θ

图2 直流伺服电机模型方框图 消去中间变量得系统的开环传递函数: s K K B Js R s L K s U s s G C t a d t a ]))([() () ()(+++= = θ 系统参数如下:s m uN B m mg J ??=?=51.3,23.32 A m N K K uH L R e t a a )(03.0,75.2,4?===Ω= 2. PID 校正 图3 PID 校正 s K s K K s G d i p c ++ =)( Kp,Ki,Kd 为比例,积分,微分系数 令Kp=15、Ki=0.8 、Kd=0.6 M 文件:J=3.23E-6; B=3.51E-6; Ra=4; La=2.75E-6; Kt=0.03; num= Kt; den=[(J*La) ((J*Ra)+(La*B)) ((B*Ra)+Kt*Kt) 0]; t=0:0.001:0.2; step(num,den,t); Kp=15; Ki=0.8; Kd=0.6; numcf=[Kd Kp Ki]; dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den); [numc,denc]=cloop(numf,denf); t=0:0.001:0.04; step(numc,denc,t); matlab 进行仿真,我们可以看出不恰当的PID 参数并不能使系统达到控制系统的要求,

最优化实例和matlab源程序

最优化平时作业 一、目标规划 1、题目:见书中例题P110 例 4 2、解题方法:利用Lingo 求解 3、具体步骤 (1).对应于第一优先等级,建立线性规划问题: model: min=-d1; 5*x1+10*x2<=60; x1-2*x2+d1_-d1=0; end 运行结果:-d1=0 (2 )对应于第二优先等级,将-d1=0 作为约束条件,建立线性规划问题:min=d2_; 5*x1+10*x2<=60; x1-2*x2+d1_-d1=0; 4*x1+4*x2+d2_-d2=36; -d1=0; end 运行结果:d2=0; (3).对应于第三优先等级,将-d1=0, -d1=0 作为约束条件,建立线性规划问题:min=d3_; 5*x1+10*x2<=60; x1-2*x2+d1_-d1=0; 4*x1+4*x2+d2_-d2=36; 6x1+8*x2+d3_-d3=48; -d1=0; d2=0; end 运行结果:d3=0; X1 4.800000 X2 2.400000 二、动态规划之0-1 背包问题 1、题目:给定n种物品和一背包。物品i 的重量是Wi ,其价值为Vi ,背包的容量是c,问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。 2、解题方法与思路:利用java 求解,.思想方法是回溯思想 3、需求分析 对于给定n 种物品和一背包。在容量最大值固定的情况下,要求装入的物品价值最大化 4、java 源程序及运行结果 BackTrace.java * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package sunfa; import java.util.Date;

相关文档