文档库 最新最全的文档下载
当前位置:文档库 › 交流伺服电机试验报告

交流伺服电机试验报告

交流伺服电机试验报告
交流伺服电机试验报告

实验五交流伺服电机实验一、实验设备及仪器

被测电机铭牌参数:

P N=25W, U N=220V, I N=0.55A,μN=2700rpm

使用设备规格(编号):

1.MEL系列电机系统教学实验台主控制屏(MEL-I、MEL-IIA、B);2.电机导轨及测功机、转速转矩测量(MEL-13);

3.交流伺服电动机M13;

4.三相可调电阻90Ω(MEL-04);

5.三相可调电阻900Ω(MEL-03);

6.隔离变压器和三相调压器(试验台右下角)

二.实验目的

1.掌握用实验方法配圆磁场。

2.掌握交流伺服电动机机械特性及调节特性的测量方法。

三.实验项目

1.观察伺服电动机有无“自转”现象。

2.测定交流伺服电动机采用幅值控制时的机械特性和调节特性。

三相调压器输出的线电压U uw经过开关S(MEL—05)接交流伺服电机的控制绕组。

G为测功机,通过航空插座与MEL—13相连。

1.观察交流伺服电动机有无“自转”现象

测功机和交流伺服电机暂不联接(联轴器脱开),调压器旋钮逆时针调到底,使输出位于最小位置。合上开关S。

接通交流电源,调节三相调压器,使输出电压增加,此时电机应启动运转,继续升高电压直到控制绕组U c=127V。

待电机空载运行稳定后,打开开关S,观察电机有无“自转”现象。

将控制电压相位改变180°电角度,观察电动机转向有无改变。

没有自转现象。

2.测定交流伺服电动机采用幅值控制时的机械特性和调节特性

(1)测定交流伺服电动机a=1(即U c=U N=220V)时的机械特性

把测功机和交流伺服电动机同轴联接,调节三相调压器,使U c=U cn=220V,保持U f、U c电

压值,调节测功机负载,记录电动机从空载到接近堵转时的转速n及相应的转矩T并填入

Uf=UfN=220V Uc=Ucn=220V

(2)测定交流伺服电动机a=0.75(即U c=0.75U N=165V)时的机械特性

调节三相调压器,使U c=0.75U cn=165V,保持U f、U c电压值,调节测功机负载,记录电动机从空载到接近堵转时的转速n及相应的转矩T并填入表中

Uf=UfN=220V Uc=0.75Ucn=165V

(3)测定调节特性

保持电机的励磁电压U f=220V,测功机不加励磁。

调节调压器,使电机控制绕组的电压U c从220V逐渐减小至到0V,记录电机空载运行的转速n及相应的控制绕组电压U c,并填入表中

Uf=UfN=220V T=0N*m

(4)测定负载下的调节特性

仍保持U f=220V,调节调压器使U c为220V,调节测功机负载,使电机输出转矩T=0.03N.m 并保持不变,重复上述步骤,记录转速n及相应控制绕组电压Uc并填入表中。

Uf=Ufn=220V T=0.03N.m

六.实验报告

1.根据幅值控制实验测得的数据作出交流伺服电动机的机械特性n=f(t)和调节特性n=f(Uc)曲线。

(1)机械特性n=f(t)

图像应该为曲线,但是无论用几次的线性拟合都不符合所得到的数据,只能采用一次直线拟合来表示最后结果。

(2)调节特性n=f(Uc)

2.分析实验过程中发生的现象。

根据以上的理论:首先在实验一中,电机在断电后马上停止了回转,这是因为定子中的两个相反方向旋转的旋转磁场与转子作用所产生的合成转矩是制动转矩,所以导致不能自转。

其次,在实验二中机械特性n=f(t)的图像,应该是如上述资料中的图6.10的几条曲线的样子,但是实际测得的数据反而接近一次相关,这应该是实验仪器的误差以及测量误差造成的。反而实验三中的图像与理论期望值相近。通过实验二机械特性n=f(t)和实验三调

节特性n=f(Uc)的图像,我们可以得到交流伺服电机的

大致性能参数,也总结了交流伺服电机线性度差的特点。

3.实验感想:

直流伺服电机实验报告

实验六 直流伺服电机实验 一、实验设备及仪器 被测电机铭牌参数: P N =185W ,U N =220V ,I N =1.1A , 使用设备规格(编号): 1.MEL 系列电机系统教学实验台主控制屏(MEL-I 、MEL-IIA 、B ); 2.电机导轨及测功机、转速转矩测量(MEL-13); 3.直流并励电动机M03(作直流伺服电机); 4.220V 直流可调稳压电源(位于实验台主控制屏的下部); 5.三相可调电阻900Ω(MEL-03); 6.三相可调电阻90Ω(MEL-04); 7.直流电压、毫安、安培表(MEL-06); 二、实验目的 1.通过实验测出直流伺服电动机的参数r a 、e κ、T κ。 2.掌握直流伺服电动机的机械特性和调节特性的测量方法。 三、实验项目 1.用伏安法测出直流伺服电动机的电枢绕组电阻r a 。

2.保持U f=U fN=220V,分别测取U a =220V及U a=110V的机械特性n=f(T)。3.保持U f=U fN=220V,分别测取T2=0.8N.m及T2=0的调节特性n=f(Ua)。4.测直流伺服电动机的机电时间常数。 四、实验说明及操作步骤 1.用伏安法测电枢的直流电阻Ra

表中Ra=(R a1+R a2+R a3)/3; R aref=Ra*a ref θ θ + + 235 235 (3)计算基准工作温度时的电枢电阻 由实验测得电枢绕组电阻值,此值为实际冷态电阻值,冷态温度为室温。按下式换算到基准工作温度时的电枢绕组电阻值: R aref=Ra a ref θ θ + + 235 235

伺服电机的调试步骤

伺服电机的调试步骤 1、初始化参数 在接线之前,先初始化参数。在控制卡上:选好控制方式;将PID参数清零;让控制卡上电时默认使能信号关闭;将此状态保存,确保控制卡再次上电时即为此状态。在伺服电机上:设置控制方式;设置使能由外部控制;编码器信号输出的齿轮比;设置控制信号与电机转速的比例关系。一般来说,建议使伺服工作中的最大设计转速对应9V的控制电压。比如,松下是设置1V电压对应的转速,出厂值为500,如果你只准备让电机在1000转以下工作,那么,将这个参数设置为111。 2、接线 将控制卡断电,连接控制卡与伺服之间的信号线。以下的线是必须要接的:控制卡的模拟量输出线、使能信号线、伺服输出的编码器信号线。复查接线没有错误后,电机和控制卡(以及PC)上电。此时电机应该不动,而且可以用外力轻松转动,如果不是这样,检查使能信号的设置与接线。用外力转动电机,检查控制卡是否可以正确检测到电机位置的变化,否则检查编码器信号的接线和设置3、试方向 对于一个闭环控制系统,如果反馈信号的方向不正确,后果肯定是灾难性的。通过控制卡打开伺服的使能信号。这是伺服应该以一个较低的速度转动,这就是传说中的“零漂”。一般控制卡上都会有抑制零漂的指令或参数。使用这个指令或参数,看电机的转速和方向是否可以通过这个指令(参数)控制。如果不能控制,检查模拟量接线及控制方式的参数设置。确认给出正数,电机正转,编码器计数增加;给出负数,电机反转转,编码器计数减小。如果电机带有负载,行程有限,不要采用这种方式。测试不要给过大的电压,建议在1V以下。如果方向不一致,可以修改控制卡或电机上的参数,使其一致。 4、抑制零漂 在闭环控制过程中,零漂的存在会对控制效果有一定的影响,最好将其抑制住。使用控制卡或伺服上抑制零飘的参数,仔细调整,使电机的转速趋近于零。由于零漂本身也有一定的随机性,所以,不必要求电机转速绝对为零。 5、建立闭环控制 再次通过控制卡将伺服使能信号放开,在控制卡上输入一个较小的比例增益,至于多大算较小,这只能凭感觉了,如果实在不放心,就输入控制卡能允许的最小值。将控制卡和伺服的使能信号打开。这时,电机应该已经能够按照运动指令大致做出动作了。 6、调整闭环参数 细调控制参数,确保电机按照控制卡的指令运动,这是必须要做的工作,而这部分工作,更多的是经验,这里只能从略了。

约瑟夫环实验报告

一.需求分析 1.约瑟夫环(Joseph)问题的一种描述是:编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,有用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在其后。 3.程序执行的命令包括: 1)输入初始密码和人数2)输入所有人的密码3)显示输入的所有人的编号及相应的密码4)输出出列密码及编号5)结束 4.测试数据 (1)m=20, n=7, 7个人的密码依次为3,1,7,2,4,8,4 (2)m=20,n=1 (3)m=20,n=0 前面一组为常规数据,后面两组为边缘数据 二、概要设计 为实现上述功能,应以有序单向循环链表表示约瑟夫环。为此,需要有一个抽象数据类型。该抽象数据类型的定义为: ADT LinkList { 数据对象:D={ ai | ai ∈termset,i=1,2,……n,n>=0}, termset中每个元素包含编号,密码,和一个指向下一节点的指针数据关系:R1={ | ai-1, ai ∈D , i=2,……n} 基本操作: LinkList EvaluList(int n);//对单向循环链表进行尾插入赋值 int size(LinkList L);//求链表的节点个数 Status ScanList(LinkList L);//遍历单向循环链表 Status Joseph(LinkList &L,int m);//约瑟夫环的实现 } 此抽象数据类型中的一些常量如下:#define TRUE 1 #define FALSE 0 #define OK 1

约瑟夫环实验报告

课程实验报告 题目:2016.4.6 学生姓名:黄玲 学生学号:201408070105 专业班级:智能1401 指导老师:骆嘉伟 完成日期:2016.4.6

一.需求分析 1.本实验基本要求是用数组来实现线性表,再基于线性表的基本操作(插入、删除、修改等)来实现约瑟夫问题 2.由键盘输入总人数n和出列报数m 3.在DOS界面上显示依次出圈的人的编号和最后一个留下的人,在当前文件夹里生成一个文本文件,里面是相同的输出。 4.测试数据: 输入: 10,3 输出: 3 6 9 2 7 1 8 5 10 4//DOS 3 6 9 2 7 1 8 5 10 4//TXT 二.概要设计 §抽象数据类型 为实现上述程序的逻辑功能,应以整数存储用户的输入 用线性表实现,线性表定义如下: ADT LISt 数据对象:整数 基本操作: AList(100);//构建一个最大人数为100的顺序表(数组)来存储人 Next();//指向下一个人 moveStart();//回到第一个人继续数数 Length();//查看圈里还剩多少人 currPos();//查看当前数到人的编号 getValue();//查看当前编号的人是否还在圈内 §程序的流程 以书上的代码案例为参考,编写线性表的ADT在继承线性表的基础上编写顺序表(数组)的类文件编写主函数,创建类的对象,完成程序 三.详细设计 §物理数据类型 将大小为n的数组赋好值,其值为他本身的编号,即数组下标。 §程序思路的具体步骤实现 设一个标志点,在数组中移动,同时报数,当报到m时,当前人的值变为0,出圈,然后继续移动,重新数。当数到值为0的人时自动跳过(已出圈),当数

直流伺服电机实验报告

直流电机的特性测试 一、实验要求 在实验台上测试直流电机机械特性、工作特性、调速特性(空载)和动态特性,其中测试机械特性时分别测试电压、电流、转速和扭矩四个参数,根据测试结果拟合转速—转矩特性(机械特性),并以X 轴为电流,拟合电流—电压特性、电流—转速特性、电流—转矩特性,绘制电机输入功率、输出功率和效率曲线,即绘制电机综合特性曲线。然后在空载情况下测试电机的调速特性,即最低稳定转速和额定电压下的最高转速,即调速特性;最后测试不同负载和不同转速阶跃下电机的动态特性。 二、实验原理 1、直流电机的机械特性 直流电机在稳态运行下,有下列方程式: 电枢电动势 e E C n =Φ (1-1) 电磁转矩 e m T C I =Φ (1-2) 电压平衡方程 U E I R =+ (1-3) 联立求解上述方程式,可以得到以下方程: 2e e e m U R n T C C C = -ΦΦ (1-4) 式中 R ——电枢回路总电阻 Φ——励磁磁通 e C ——电动势常数 m C ——转矩常数 U ——电枢电压 e T ——电磁转矩 n ——电机转速

在式(1-4)中,当输入电枢电压U 保持不变时,电机的转速n 随电磁转矩e T 变化而变化的规律,称为直流电机的机械特性。 2、直流电机的工作特性 因为直流电机的励磁恒定,由式(1-2)知,电枢电流正比于电磁转矩。另外,将式(1-2)代入式(1-4)后得到以下方程: e e U R n I C C = -ΦΦ (1-5) 由上式知,当输入电枢电压一定时,转速是随电枢电流的变化而线性变化的。 3、直流电机的调速特性 直流电机的调速方法有三种:调节电枢电压、调节励磁磁通和改变电枢附加 电阻。 本实验采取调节电枢电压的方法来实现直流电机的调速。当电磁转矩一定 时,电机的稳态转速会随电枢电压的变化而线性变化,如式(1-4)中所示。 4、直流电机的动态特性 直流电机的启动存在一个过渡过程,在此过程中,电机的转速、电流及转矩 等物理量随时间变化的规律,叫做直流电机的动态特性。本实验主要测量的是转速随时间的变化规律,如下式所示: s m dn n n T dt =- (1-6) 其中,s n ——稳态转速 m T ——机械时间常数 本实验中,要求测试在不同负载和不同输入电枢电压(阶跃信号)下电机的 动态特性。 5、传感器类型 本实验中,测量电机转速使用的是角位移传感器中的光电编码器;测量电磁 转矩使用的是扭矩传感器。

约瑟夫环课程设计实验报告

《数据结构》 课程设计报告 课程名称:《数据结构》课程设计课程设计题目:joseph环 姓名: 院系:计算机学院 专业: 年级: 学号: 指导教师: 2011年12月18日

目录 1 课程设计的目的 (2) 2 需求分析 (2) 3 课程设计报告内容 (3) 1、概要设计 (3) 2、详细设计 (3) 3、调试分析 (x) 4、用户手册 (x) 5、测试结果 (6) 6、程序清单 (7) 4 小结 (10) 1、课程设计的目的 (1)熟练使用C++编写程序,解决实际问题; (2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2、需求分析 1、问题描述: 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 2、要求: 利用不带表头结点的单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 3、测试数据: m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么? 输出形式:建立一个输出函数,将正确的输出序列

3、课程设计报告内容 概要设计: 在理解了题目后,我先想到的是我们所学的单链表,利用单链表先建立循环链表进行存贮,建立完循环链表后,我将所要编写的函数分为了两块,一块是经过学过的单链表改编的循环链表的基本操作函数,还有一块是运行约瑟夫环的函数。 详细设计: 我先建立一个结构体,与单链表一样,只是多了一个存密码的code域 struct LinkNode { int data; /删除的是尾结点时(不知道为什么我写程序里总是编译出现错误){ q->next=head; //重新链接 delete a; len--; return out; } else { q->next=a->next; delete a; len--; return out; } } } } 5、测试结果:

伺服电机的调试步骤(精)

伺服电机的调试步骤伺服电机的调试步骤 1、初始化参数 在接线之前,先初始化参数。 在控制卡上:选好控制方式;将PID 参数清零;让控制卡上电时默认使能信号关闭;将此状态保存,确保控制卡再次上电时即为此状态。 在伺服电机上:设置控制方式;设置使能由外部控制;编码器信号输出的齿轮比;设置控制信号与电机转速的比例关系。一般来说,建议使伺服工作中的最大设计转速对应9V 的控制电压。比如,松下是设置1V 电压对应的转速,出厂值为500,如果你只准备让电机在1000转以下工作,那么,将这个参数设置为111。 2、接线 将控制卡断电,连接控制卡与伺服之间的信号线。以下的线是必须要接的:控制卡的模拟量输出线、使能信号线、伺服输出的编码器信号线。复查接线没有错误后,电机和控制卡(以及PC )上电。此时电机应该不动,而且可以用外力轻松转动,如果不是这样,检查使能信号的设置与接线。用外力转动电机,检查控制卡是否可以正确检测到电机位置的变化,否则检查编码器信号的接线和设置 3、试方向 对于一个闭环控制系统,如果反馈信号的方向不正确,后果肯定是灾难性的。通过控制卡打开伺服的使能信号。这是伺服应该以一个较低的速度转动,这就是传说中的“零漂”。一般控制卡上都会有抑制零漂的指令或参数。使用这个指令或参数,看电机的转速和方向是否可以通过这个指令(参数)控制。如果不能控制,检查模拟量接线及控制方式的参数设置。确认给出正数,电机正转,编码器计数增加;给出负数,电机反转转,编码器计数减小。如果电机带有负载,行程有限,不要采用这种方式。测试不要给过大的电压,建议在1V 以下。如果方向不一致,可以修改控制卡或电机上的参数,使其一致。

数据结构实验报告(约瑟夫环)

《数据结构》课程实验 实验报告 题目:Joseph问题求解算法的设计与实现专业:计算机科学与技术 班级: 姓名: 学号: 完成日期:

一、试验内容 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 二、试验目的 掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。 三、流程图 输入总人数n 创建并初始化 n个结点 输入第一个报 的数key n==0 报数过程 输出出列者 的编号及密 码 结束 n--

四、源程序代码 //Joseph问题求解算法的设计与实现 #include #include struct list { int num,code; struct list *next; }; void main() { printf("Joseph问题求解算法的设计与实现\n \n"); int i,j,m=1; int key; // 密码. int n; //人数 . list *p,*s,*head; head=(list *)malloc(sizeof(list)); //为头结点分配空间. p=head; printf("输入人的总个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { key=rand() % 100; printf("第%d个人的密码:%d\n",i,key); s=p; p=(list *)malloc(sizeof(list)); //创建新的结点. s->next=p; p->num=i; p->code=key; } p->next=head->next; p=head; head=head->next; free(p); //释放头结点. p=head; do{ printf("\n第%d号成员的密码为:%d",p->num,p->code); //输出链表. p=p->next; }while(p!=head); printf("\n\n输入第一个报的数:\n"); scanf("%d",&key); printf("\n出列顺序为:\n"); do

数据结构实验报告(约瑟夫环)

基础成绩:82分《数据结构》课程实验 实验报告 题目:Joseph问题求解算法的设计与实现 专业:网络工程 班级:网络102 姓名:张晨曦 学号: 102534 完成日期:2012/6/20 一、试验内容

- 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 二、试验目的 掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构。 三、流程图 struct list {

- int num,code; struct list *next; }; void main() { printf("Joseph问题求解算法的设计与实现\n \n"); int i,j,m=1; int key; // 密码. int n; //人数. list *p,*s,*head; head=(list *)malloc(sizeof(list)); //为头结点分配空间. p=head; //使指针指向头节点 printf("输入人的总个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("第%d个人的密码:\n",i); scanf("%d",&key); s=p; p=(list *)malloc(sizeof(list)); //创建新的结点. s->next=p; p->num=i; p->code=key; } p->next=head->next; p=head; head=head->next; free(p); //释放头结点. p=head; printf("\n\n输入初始值:\n"); scanf("%d",&key); printf("\n出列顺序为:\n"); do { j=1; p=head; while(jnext;//使P指向下一结点 j++; } //报数过程. i=p->num; key=p->code; printf("%d\n",i); s->next=p->next;

三协伺服电机的调试步骤(精选)

三协伺服电机的调试步骤(精选) 1、初始化参数 在接线之前,先初始化参数。[2] 在控制卡上:选好控制方式;将PID参数清零;让控制卡上电时默认使能信号关闭;将此状态保存,确保控制卡再次上电时即为此状态。 在三协伺服电机上:设置控制方式;设置使能由外部控制;编码器信号输出的齿轮比;设置控制信号与电机转速的比例关系。一般来说,建议使伺服工作中的最大设计转速对应9V的控制电压。 2、接线 将控制卡断电,连接控制卡与伺服之间的信号线。以下的线是必须要接的:控制卡的模拟量输出线、使能信号线、伺服输出的编码器信号线。复查接线没有错误后,电机和控制卡(以及PC)上电。此时电机应该不动,而且可以用外力轻松转动,如果不是这样,检查使能信号的设置与接线。用外力转动电机,检查控制卡是否可以正确检测到电机位置的变化,否则检查编码器信号的接线和设置 3、试方向 对于一个闭环控制系统,如果反馈信号的方向不正确,后果肯定是灾难性的。通过控制卡打开伺服的使能信号。这是伺服应该以一个较低的速度转动,这就是传说中的“零漂”。一般控制卡上都会有抑制零漂的指令或参数。使用这个指令或参数,看电机的转速和方向是否可以通过这个指令(参数)控制。如果不能控制,检查模拟量接线及控制方式的参数设置。确认给出正数,电机正转,编码器计数增加;给出负数,电机反转转,编码器计数减小。如果电机带有负载,行程有限,不要采用这种方式。测试不要给过大的电压,建议在1V以下。如果方向不一致,可以修改控制卡或电机上的参数,使其一致。 4、抑制零漂 在闭环控制过程中,零漂的存在会对控制效果有一定的影响,最好将其抑制住。使用控制卡或伺服上抑制零飘的参数,仔细调整,使电机的转速趋近于零。由于零漂本身也有一定的随机性,所以,不必要求电机转速绝对为零。 5、建立闭环控制 再次通过控制卡将伺服使能信号放开,在控制卡上输入一个较小的比例增益,至于多大

数据结构实验报告 约瑟夫环问题

信息学院 数据结构实验报告 学号:姓名:班级 课程名称:数据结构实验名称:约瑟夫环 实验性质:①综合性实验√②设计性实验③验证性实验实验时间:2017.10 试验地点: 本实验所用设备:PC及VS2010 【数据结构】: typedef struct _RingNode { int pos; // 位置 struct _RingNode *next; }RingNode, *RingNodePtr; 【算法思想】: 以单链表实现约瑟夫环 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。(约瑟夫环问题Josephus)。以环状链表实现 【算法描述】: void CreateRing(RingNodePtr pHead, int count) { RingNodePtr pCurr = NULL, pPrev = NULL; int i = 1; pPrev = pHead; while(--count > 0) { pCurr = (RingNodePtr)malloc(sizeof(RingNode)); i++; pCurr->pos = i; pPrev->next = pCurr; pPrev = pCurr; } pCurr->next = pHead; // 构成环状链表 }

void PrintRing(RingNodePtr pHead) { RingNodePtr pCurr; printf("%d", pHead->pos); pCurr = pHead->next; while(pCurr != NULL) { if(pCurr->pos == 1) break; printf("\n%d", pCurr->pos); pCurr = pCurr->next; } } void KickFromRing(RingNodePtr pHead, int m) { RingNodePtr pCurr, pPrev; int i = 1; // 计数 pCurr = pPrev = pHead; while(pCurr != NULL) { if (i == m) { // 踢出环 printf("\n%d", pCurr->pos); // 显示出圈循序 pPrev->next = pCurr->next; free(pCurr); pCurr = pPrev->next; i = 1; } pPrev = pCurr; pCurr = pCurr->next; if (pPrev == pCurr) { // 最后一个 printf("\n%d", pCurr->pos); // 显示出圈循序 free(pCurr); break; } i++; } } int main()

伺服电机的一般调试步骤

运动控制器以模拟量信号控制伺服电机的一般调试步骤 运动控制器控制伺服电机通常采用两种指令方式: 1,数字脉冲这种方式与步进电机的控制方式类似,运动控制器给伺服驱动器发送“脉冲/方向”或“CW/CCW”类型的脉冲指令信号;伺服驱动器工作在位置控制模式,位置闭环由伺服驱动器完成。日系伺服和国产伺服产品大都采用这种模式。其优点是系统调试简单,不易产生干扰,但缺点是伺服系统响应稍慢。 2,模拟信号这种方式下,运动控制系统给伺服驱动器发送+/-10 V的模拟电压指令,同时接收来自电机编码器或直线光栅等位置检测元件的位置反馈信号;伺服驱动器工作在速度控制模式,位置闭环由运动控制器完成。欧美的伺服产品大多采用这种工作模式。其优点是伺服响应快,但缺点是对现场干扰较敏感,调试稍复杂。 以下介绍运动控制器以模拟量信号控制伺服电机的一般调试步骤:1、初始化参数 在接线之前,先初始化参数。 在控制器上:选好控制方式;将PID参数清零;让控制器上电时默认使能信号关闭;将此状态保存,确保控制器再次上电时即为此状态。在伺服驱动器上:设置控制方式;设置使能由外部控制;编码器信号输出的齿轮比;设置控制信号与电机转速的比例关系。一般来说,建议使伺服工作中的最大设计转速对应9V的控制电压。比如,松下MI NAS A4系列伺服驱动器的速度指令增益参数Pr50用来设置1V指令电压对应的电机转速(出厂值为500),如果你只准备让电机在100

0转以下工作,那么,将这个参数设置为111。 2、接线 将控制器断电,连接控制器与伺服之间的信号线。以下的连线是必须的:控制器的模拟量输出线、使能信号线、伺服输出的编码器信号线。复查接线没有错误后,将电机和控制器上电。此时电机应该不动,而且可以用外力轻松转动,如果不是这样,检查使能信号的设置与接线。用外力转动电机,检查控制器是否可以正确检测到电机位置的变化,否则检查编码器信号的接线和设置 3、试方向 对于一个闭环控制系统,如果反馈信号的方向不正确,后果肯定是灾难性的。通过控制器打开伺服的使能信号。此时伺服电机应该以一个较低的速度转动,这就是所谓的“零漂”。一般控制器上都会有抑制零漂的指令或参数。使用这个指令或参数,看电机的转速和方向是否可以通过这个指令(参数)控制。如果不能控制,检查模拟量接线及控制方式的参数设置。确认给出正数,电机正转,编码器计数增加;给出负数,电机反转转,编码器计数减小。如果电机带有负载,行程有限,不要采用这种方式。测试不要给过大的电压,建议在1V以下。如果方向不一致,可以修改控制器或电机上的参数,使其一致。 4、抑制零漂 在闭环控制过程中,零漂的存在会对控制效果有一定的影响,最好将其抑制住。使用控制器或伺服上抑制零飘的参数,仔细调整,使电机的转速趋近于零。由于零漂本身也有一定的随机性,所以,不必要求

数据结构实验报告—约瑟夫问题求解

《计算机软件技术基础》实验报告 I —数据结构 实验一、约瑟夫斯问题求解 一、问题描述 1.实验题目:编号 1,2,....,n的n个人顺时针围坐一圈,每人持有一个密码(正整数)。 开始选择一个正整数作为报数上限m,从第一个人开始顺时针自 1 报数,报到m的人出列,将他的密码作为新的m值,从他在顺时针方向下一个人开始重新从 1 报数,直至所有人全部出列。 2. 基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序印出个人的编号。 3. 测试数据: n=7,7 个人的密码依次为:3,1,7,2,4,8, 4.m初值为6(正确的出列顺序 应为 6,1,4,77,2,3)。 二、需求分析 1. 本程序所能达到的基本可能: 该程序基于循环链表来解决约瑟夫问题。用循环链表来模拟n 个人围坐一圈,用链表 中的每一个结点代表一个人和他所代表的密码。在输入初始密码后m,对该链表进行遍历,直到第 m个结点,令该结点的密码值作为新的密码值,后删除该结点。重复上述过程,直至所有的结点被释放空间出列。 2. 输入输出形式及输入值范围: 程序运行后提示用户输入总人数。输入人数 n 后,程序显示提示信息,提示用户输入第 i个人的密码,在输入达到预定次数后自动跳出该循环。程序显示提示信息,提示用户输入 初始密码,密码须为正整数且不大于总人数。 3.输出形式 提示用户输入初始密码,程序执行结束后会输出相应的出列结点的顺序,亦即其编号。 用户输入完毕后,程序自动运行输出运行结果。 4.测试数据要求: 测试数据 n=7,7 个人的密码依次为:3, 1, 7, 2, 4, 8, 4。 m初值为 6(正确的出列 顺序应为6, 1, 4,7, 2, 3, 5)。 三、概要设计 为了实现上述功能,应用循环链表来模拟该过程,用结构体来存放其相应的编号和密码

伺服电机的PLC控制

伺服电机的PLC控制方法 以我司KSDG系列伺服驱动器为例,介绍PLC控制伺服电机的方法。 伺服电机有三种控制模式:速度控制,位置控制,转矩控制{由伺服电机驱动器的Pr02参数与32(C-MODE)端子状态选择},本文简要介绍位置模式的控制方法 一、按照伺服电机驱动器说明书上的"位置控制模式控制信号接线图"连接导线3(PULS1), 4(PULS2)为脉冲信号端子,PULS1连接直流电源正极(24V电源需串连2K左右的电阻),PULS2连接控制器(如PLC的输出端子)。5(SIGN1),6(SIGN2)为控制方向信号端子,SIGN1连接直流电源正极(24V电源需串连2K左右的电阻),SIGN2连接控制器(如PLC的输出端子)。当此端子接收信号变化时,伺服电机的运转方向改变。实际运转方向由伺服电机驱动器的P41,P42这两个参数控制。7(com+)与外接24V直流电源的正极相连。29(SRV-0N),伺服使能信号,此端子与外接24V 直流电源的负极相连,则伺服电机进入使能状态,通俗地讲就是伺服电机已经准备好,接收脉冲即可以运转。上面所述的六根线连接完毕(电源、编码器、电机线当然不能忘),伺服电机即可根据控制器发出的脉冲与方向信号运转。其他的信号端子,如伺服报警、偏差计数清零、定位完成等可根据您的要求接入控制器构成更完善的控制系统。 二、设置伺服电机驱动器的参数。 1、Pr02----控制模式选择,设定Pr02参数为0或是3或是4。3与4的区别在于当32(C-MODE)端子为短路时,控制模式相应变为速度模式或是转矩模式,而设为0,则只为位置控制模式。如果您只要求位置控制的话,Pr02设定为0或是3或是4是一样的。 2、Pr10,Pr11,Pr12----增益与积分调整,在运行中根据伺服电机的运行情况相应调整,达到伺服电机运行平稳。当然其他的参数也需要调整(Pr13,Pr14,Pr15,Pr16,Pr20也是很重要的参数),在您不太熟悉前只调整这三个参数也可以满足基本的要求. 3、Pr40----指令脉冲输入选择,默认为光耦输入(设为0)即可。也就是选择3(PULS1),4(PULS2),5(SIGN1),6(SIGN2)这四个端子输入脉冲与方向信号。 4、Pr41,Pr42----简单地说就是控制伺服电机运转方向。Pr41设为0时,Pr42设为3,则5(SIGN1),6(SIGN2)导通时为正方向(CCW),反之为反方向(CW)。Pr41设为1时,Pr42设为3,则5(SIGN1),6(SIGN2)断开时为正方向(CCW),反之为反方向(CW)。(正、反方向是相对的,看您如何定义了,正确的说法应该为CCW,CW). 5、Pr46,Pr4A,Pr4B----电子齿轮比设定。此为重要参数,其作用就是控制电机的运转速度与控制器发送一个脉冲时电机的行走长度。其公式为:伺服电机每转一圈所需的脉冲数=编码器分辨率×Pr4B/(Pr46×2^Pr4A)伺服电机所配编码器如果为:2500p/r5线制增量式编码器,则编码器分辨率为10000p/r如您连接伺服电机轴的丝杆间距为20mm,您要做到控制器发送一个脉冲伺服电机行走长度为一个丝(0.01mm)。 计算得知:伺服电机转一圈需要2000个脉冲。(每转一圈所需脉冲确定了,脉冲频率与伺服电机的速度的关系也就确定了)三个参数可以设定为:Pr4A=0,Pr46=10000,Pr4B=2000,约分一下则为:Pr4A=0,Pr46=100,Pr4B=20。从上面的叙述可知:设定Pr46,Pr4A,Pr4B这三个参数是根据我们控制器所能发送的最大脉冲频率与工艺所要求的精度。在控制器的最大发送脉冲频率确定后,工艺精度要求越高,则伺服电机能达到的最大速度越低。做好上面的工作,编制好PLC程序,我们就可以控制伺服运转了。

数据结构实验报告(实验二 约瑟夫环)

韶关学院 学生实验报告册 实验课程名称:数据结构与算法 实验项目名称:实验二线性表及其应用 约瑟夫环 实验类型(打√):(基础、综合、设计√) 院系:信息工程学院计算机系专业:***** 姓名:*** 学号:***** 指导老师:陈正铭 韶关学院教务处编制

一、实验预习报告内容

二、实验原始(数据)记录 实验时间:2007 年 4 月 4 日(星期三第7,8 节)实验同组人:

三、实验报告内容 2007年4 月5 日 注:1、如有个别实验的实验报告内容多,实验报告册页面不够写,或有识图,画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。 2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。

【源程序】 #include "stdio.h" #include "conio.h" #include "stdlib.h" /* 设立无头结点的单循环链表*/ typedef struct LNode{ int id; /* 编号*/ int pw; /* 密码*/ struct LNode *next; }LNode,*LinkList; void main() { int m,n,pw,i=1,j=0; /* m为初始报数值,n 为参与人数,pw为密码临时保存变量,i、j 为循环变量*/ LinkList L,p,q; /* L为链表头指针,p、q为临时指针*/ printf("输入人数n(n>0):"); scanf("%d",&n); printf("输入第1 人密码:"); scanf("%d",&pw); L=(LinkList)malloc(sizeof(struct LNode)); L->id=i; L->pw=pw; L->next=L; /* 创建首结点*/ q=L; /* q指向尾结点*/ p=L; /* p指向待删除结点前驱*/ for(i=2;i<=n;i++) /* 依次输入第2……第n个参与者密码*/ { printf("输入第%d 人密码:",i); scanf("%d",&pw); p=(LinkList)malloc(sizeof(struct LNode)); p->id=i; p->pw=pw; /* 创建第i个参与者结点p */ q->next=p; /* 在尾结点q后插入新结点p */ q=p; /* 更新q指向新的尾结点p */ p->next=L; /* 新结点p的后继指针指向首结点*/ } printf("输入约瑟夫环的初始报数值m:"); scanf("%d",&m); printf("出列顺序为:"); for(i=1;i<=n;i++) /* n个参与者依次按规则出列*/ { for(j=1;jnext; /* p 指向待删除结点前驱*/ q=p->next; /* q指向待删除结点*/ p->next=q->next; /* 删除结点q */ printf("%d\t",q->id); /* 输出被删结点编号*/ m=q->pw; /* m更新为被删结点的密码值*/ free(q); /* 释放被删结点q */ } getch(); }

实验 交流伺服电动机实验1——实验报告样板

交流伺服电机实验 一、实验目的 1.了解交流伺服电机 2.掌握交流伺服电机控制方法 二、实验内容 1.测定交流伺服电机的机械特性 2.测定交流伺服电机的调速特性 3.观察交流伺服电机的“自转”现象 三、实验原理 伺服电机又称执行电机。其功能是将输入的电压控制信号转换为轴上输出的角位移和角速度,驱动控制对象。伺服电机可控性好,反应迅速。是自动控制系统和计算机外围设备中常用的执行元件。 交流伺服电机就是一台两相交流异步电机。它的定子上装有空间互差90 的两个绕组:励磁绕组和控制绕组。工作时两个绕组中产生的电流相位差近90o,因此便产生两相旋转磁场。在旋转磁场的作用下,转子便转动起来。加在控制绕组上的控制电压反相时(保持励磁电压不变),由于旋转磁场的旋转方向发生变化,使电动机转子反转。 交流伺服电动机的特点:在电动机运行时如果控制电压变为零,电动机立即停转。 四、实验步骤 1.测定交流伺服电机机械特性,并绘制n=f(T)曲线α=1 1)启动主电源,调节三相调压器,使Uc=U N=220V;

2)调节涡流测功机的给定调节,记录力矩和转速。 n=f(T)曲线 2. 测定交流伺服电机机械特性,并绘制n=f(T)曲线 α=0.75 1)启动主电源,调节三相调压器,使Uc=0.75U N =165V ; 2)调节涡流测功机的给定调节,记录力矩和转速。 U1 V1W1N

n=f(T)曲线 3.测定交流伺服电机的调速特性,并绘制n=f(Uc)曲线1)启动主电源,调节三相调压器,使Uc=U N=220V; 2)调节三相调压器,记录控制电压和转速。

n=f(Uc)曲线 4.观察交流伺服电机的“自转”现象 1)启动主电源,调节使Uc=220V, U f=117V,观察电机有没有“自转”现象; 2)调节使Uc=0V, U f=117V,观察电机有没有“自转”现象。 五、思考题 1. 分析步骤4中有无“自转”现象?若有“自转”现象,一般如何消除?若无“自转”现象,其原因是什么? 两种状态下,该交流伺服电机均未见“自转”现象。因为建立的正、反转旋转磁场分别切割笼型绕组(或杯形壁)并感应出大小相同,相位相反的电动势和电流(或涡流),这些电流分别与各自的磁场作用产生的力矩也大小相等、方向相反,合成力矩为零,伺服电机转子转不起来。当控制信号消失时,只有励磁绕组通入电流,伺服电机产生的磁场将是脉动磁场,转子很快地停下来。

直流伺服电机实验报告

实验六直流伺服电机实验 一、实验设备及仪器 被测电机铭牌参数: P N =185W ,U N =220V ,I N =1.1A ,μN =1600rpm 使用设备规格(编号): 1.MEL 系列电机系统教学实验台主控制屏(MEL-I 、MEL-IIA 、B ); 2.电机导轨及测功机、转速转矩测量(MEL-13); 3.直流并励电动机M03(作直流伺服电机); 4.220V 直流可调稳压电源(位于实验台主控制屏的下部); 5.三相可调电阻900Ω(MEL-03); 6.三相可调电阻90Ω(MEL-04); 7.直流电压、毫安、安培表(MEL-06); 二、实验目的 1.通过实验测出直流伺服电动机的参数r a 、e κ、T κ。

2.掌握直流伺服电动机的机械特性和调节特性的测量方法。 三、实验项目 1.用伏安法测出直流伺服电动机的电枢绕组电阻r a 。 2.保持U f=U fN=220V,分别测取U a =220V及U a=110V的机械特性n=f(T)。3.保持U f=U fN=220V,分别测取T2=0.8N.m及T2=0的调节特性n=f(Ua)。4.测直流伺服电动机的机电时间常数。 四、实验说明及操作步骤 1.用伏安法测电枢的直流电阻Ra

取三次测量的平均值作为实际冷态电阻值Ra=3 13 2a a a R R R ++。 表中Ra=(R a1+R a2+R a3)/3; R aref =Ra*a ref θ++235235 (3)计算基准工作温度时的电枢电阻 由实验测得电枢绕组电阻值,此值为实际冷态电阻值,冷态温度为室温。按下式换算到基准工作温度时的电枢绕组电阻值: R aref =Ra a ref θθ++235235 式中R aref ——换算到基准工作温度时电枢绕组电阻。(Ω) R a ——电枢绕组的实际冷态电阻。(Ω) θref ——基准工作温度,对于E 级绝缘为75℃。 θa ——实际冷态时电枢绕组的温度。(℃) 2.测直流伺服电动机的机械特性

C语言实现约瑟夫环

《约瑟夫环》实验报告 专业:网络工程班级 学号姓名 一、问题描述: 约瑟夫问题的一种描述是:编号为1,2,……,n点的n个人按顺时针方向围坐一个圈,每人持有一个密码。一开始选一个正整数作为报数上限值m,从第一个人开始从顺时针方向自1开始报数,报到m时停止。报到m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始从新从1报数,如此下去,直达所有人出列。 基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各人的编号。 测试数据:m的初始值为20;n=7,7个人的密码依次是3,1,7,2,4,8,4,首先m的值为6(正确的出列顺序为6,1,4,7,2,3,5) 二、程序设计的基本思想,原理和算法描述: 采用结构体定义单链表,格式为:struct Lnode {int number; int password; struct Lnode*next; }Lnode,*p,*q,*head; 其中number是人的排列序号,password是各人所持有的密码值,next是节点指针。Lnode是节点变量,p、q是节点,head是头指针。 程序的代码:定义变量n,i,m,j 输入人的数量n If n<=0或n>30 重新输入n值 当0password 尾指针指向头指针,形成循环链表 输入初始报数上限值m 当1<=j<=n时 循环找出报m的节点p 输出报m节点的编号p->number 将p->password赋给m值 删除此节点 结束 三、源程序及注释: #include #include struct Lnode/*定义链表*/ {int number;

直流伺服电机

题目: 机器人某关节由直流伺服电动机驱动,电机参数如下: 4422min max 0.04322/0.058108.1510/(/)100, 1.035,0.010.0215/(/) 1.426,9.58()a a m a b K N m A J Kg m B N m rad s L mH R n K V rad s J Kg m J Kg m Jeff --==?=?==Ω==== 系统的结构角频率为25/rad s ,试设计控制系统并求出位置控制系统的阶跃 响应。 解答: 电枢绕组电压平衡方程为: a a a b a Ri dt di L k u +=-θ 电机轴的转矩平衡方程为: L m m m m a m n B J J τθθτ+++= )( 负载轴的转矩平衡方程为: L L L L L B J θθτ += 电动机输出转矩为: a a m K ττ= 联立可得传递函数为: ] )([) () (2b a eff a eff a eff a a eff a a m K K B R J R f L s L J s s K s U s ++++= θ 由于电机的电气时间常数远远小于其机械时间常数且电机的电感一般很小(10mH ), 电阻约1 Ω,所以可以忽略电枢电感La 的影响,上式可简化为: ) 1()()()(+= ++=s T s K K K B R J sR s K s U s m b a eff a eff a a a m θ 单位位置控制系统的闭环控制框图为:

单位反馈位置控制未引入速度反馈系统闭环传递函数: a p b a eff a eff a a p d L K nK s K K B R s J R K K s s +++=)()() (2θθ 式中: 无阻尼自然频率为: eff a a p n J R K nK = ω 阻尼比为: eff a a p b a eff a J R K nK K K B R 2+= ξ 引入速度反馈后,闭环系统传递函数为: a p v b a eff a a p d L K nK s nK K K s J R K nK s s +++=)()() (2θθ 式中: 为了安全起见,希望系统具有临界阻尼或过阻尼,即ξ≥ 1, 2 22 2n n n s s ωξωω++=2 22 2n n n w s w s w ++=ξeff a a p n J R K nK = ωeff a a p v b a eff a J R K nK nK K K B R 2)(++= ξ

相关文档