双轮自平衡智能车行走伺服控制算法设计报告

双轮自平衡智能车行走伺服控制算法设计报告
双轮自平衡智能车行走伺服控制算法设计报告

自动控制原理课程设计

目录

一.引言 (4)

二.系统模型的建立 (4)

三.系统控制的优化 (9)

3.1 PID调节参数的优化 (9)

3.2 积分分离PID的应用 (13)

四,结语 (16)

双轮自平衡智能车行走伺服控制算法

摘要:全国第八届“飞思卡尔”智能汽车大赛已经结束。光电组使用大赛提供的D车模,双轮站立前进,相对于以前的四轮车,双轮车的控制复杂度大大增加。行走过程中会遇到各种干扰,经过多次的实验,已经找到了一套能够控制双轮车的方法。双轮机器人已经广泛用于城市作战,排爆,反恐,消防以及空间消防等领域。实验使用单片机控制双电机的转速,达到了预期的效果。

关键词:自平衡;智能;控制算法

Motion Servo Control Algorithm for Dual

Wheel Intelligent Car

Abstract: The 8th freescale cup national Intelligent Car competition of has been end.The led team must used D car which has only 2tires.It is more difficult to control prefer to control A car which has 4tires.There is much interference on the track. A two-wheeled robots have been widely used in urban warfare, eod, counter-terrorism, fire control and space fire control and other fields。We has searched a good ways to control it.We used MCU to control the speed of motors and get our gates.

Key Words: balance by self; intelligent; control algorithm

一.引言

双轮自平衡车是智能汽车中一个重要的组成部分。由于其是两轮站立,在很多场合有比四轮车更灵活,更方便控制的特点。基于双轮车的机器人已经用于在城市作战,排爆,反恐,消防,空间探测等领域。

双轮自平衡车的控制过程与倒立摆相似。本次研究主要是对双轮车直立的研究。由于车在前进过程中还可能遇到弯道和路障,所以本文还对整个系统的稳定性做了比较深入的研究。

在理论证明正确的前提下,再次进行仿真验证,仿真验证的结果与实验结果相符合。二.系统模型的建立

智能汽车竞赛使用的是D车模。D 车模是双电机,双轮的车模。单电机控制双轮时可以满足车身保持平衡和前进的要求,而之所以使用双电机是为了前进过程中转弯的需要。本文只讨论跟直立和干扰有关的内容,鉴于此,本文余下内容默认是单电机控制的车模。自平衡车在没有电机控制的情况下属于不稳定系统,在极小的干扰下,就会偏离平衡位置而失去平衡。因此,控制系统必须使用反馈控制。图1是站立在赛道上的双轮车模。

图1 站立在赛道上的自平衡双轮车

自平衡双轮车在只研究直立的情况下与倒立摆相似,因此这里将借助倒立摆的研究方式研究双轮车的平衡控制。

控制车模平衡的主观经验。一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。通过手掌移动抵消木棒的倾斜角和趋势,从而保持直立。这两个条件缺一不可,实际上就是控制中的负反馈控制,见图2。

图2 在手上不倒的木棍

世界上没有一个天才杂技演员可以蒙着双眼使得木棒在自己指尖上直立,因为没了双眼就没了负反馈的环节。经过简单的分析可以得到图3所示的控制结构图。

图3 不倒的木棍的控制结构图

同样,双轮直立车的控制也是通过负反馈来实现的,与上面保持木棍直立则比较简单。因为车模有2个轮子着地,车体只会在轮子滚动的防线上发生倾斜。控制轮子转动,抵消在一个

维度上倾斜的趋势便可以保持车体的平衡了。如图4,5, 6所示。

图4 车体平衡,车轮静止

图5 车体后倾,车轮向后加速

图6 车体前倾,车体向前加速

将双轮车简化成高度为L,质量为m的简单倒立摆,它可以放置在左右移动的车轮上。

与空气中的单摆类似,车身偏离平衡位置后要想能迅速的回到平衡位置,车身应该受到与位移方向相反的的回复力。

在平衡点附近,角度θ很小,即有sinθ≈θ。假设车身偏离平衡角度后,将受到电机产生的与角度成比例的力:

f = mk1θ(1)

由于重力原因,车身偏离平衡位置后受到的回复力为:

F = mgθ– mk1θ(2)

从上式中可以看出回复力要想与位移相反,必须有k1 > g。假设外力干扰引起车模产生角速度x(t)。沿着垂直于车模底盘的方向进行受力分析,可以得到车模倾角与车轮加速度a(t)以

及外力干扰加速度x(t)之间的的运动

方程。受力分析如图7所示。

图7 车模受力分析

(4)

车模静止不向前运动时,a(t) = 0,即:

(5)

对应车模静止时,系统输入输出的传递函数为:

(6)

此时系统具有2个极。一个极点位于s平面的右半平面,车模不稳定。在此处假设,k1 = 20用matlab仿真此系统:

Matlab代码如下:

%程序目的:在没有微分量的情况下仿

%真系统的阶跃响应

%author:程顺均

%时间:2013.8.28

sys = tf([1], [1 0 100]);

t = 0:0.01:3;

figure(1)

step(sys,t);grid on

仿真截图如图8所示:

0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

0.02

Time (sec)

A

m

p

l

i

t

u

d

e

图8 比例控制系统的阶跃响应

从图来看,与分析结果一样,系统的阶跃响应为等幅振荡,不稳定。原因是在阶跃响应中没有阻尼,也就是说实际中的车不会倒向一边,而是在平衡位置附近来回震荡。这显然不是我们需要得到的效果。

因此在系统中我们加入为微分量,也就是阻尼。在实际中变现为阻碍车模转动的力,类似于摩擦阻力,大小方向与车身角速度有关。即阻力

(7)

经过拉式变换,得到带阻尼的系统的控制结构图,如图9所示:

图9 加入比例微分反馈控制的系统

系统传递函数为:

(8)

此时系统的极点为:

(9)

根据自动控制原理稳定性分析知识知道,只有系统的2个极点都在s平面的左半平面时系统才是稳定的。因此系统必须满足。

假设k2 = 0.5,k1 = 20。利用matlab仿真。

仿真代码如下:

%程序目的:在比例微分控制的情况下仿

%真系统的阶跃响应

%author:程顺均

%时间:2013.8.28

sys = tf([1],[1,5,100]);

t = 0:0.01:3;

figure(1)

step(sys,t);grid on;

title('比例微分控制时的阶跃响应');

阶跃响应曲线如下:

0.005

0.01

0.015

Time (sec)

A

m

p

l

i

t

u

d

e

图10 比例微分控制的阶跃响应曲线

从响应的曲线来看比例—微分控制曲线能够比较收敛下来。在宏观看来,就是车身能够很快到我们需要的角度,而不是一直在设定角度的前后震荡。

研究到此也智能算是解决了直立控制的问题。在实际中往往有很多干扰因素,例如飞思卡尔竞赛中赛道上就设有比赛道高的路障。如果稳定性较差的直立车在通过路障的时候,会直接倒下。假设干扰信号为D(s),D(s)与

的关系为:

(10)

这里我们把路障一类的干扰看成是脉冲干扰,D(s) = 1。仿真参数不变,对

两轮自平衡小车毕业设计毕业论文

两轮自平衡小车毕业设计毕业论文 目录 1.绪论 (1) 1.1研究背景与意义 (1) 1.2两轮自平衡车的关键技术 (2) 1.2.1系统设计 (2) 1.2.2数学建模 (2) 1.2.3姿态检测系统 (2) 1.2.4控制算法 (3) 1.3本文主要研究目标与内容 (3) 1.4论文章节安排 (3) 2.系统原理分析 (5) 2.1控制系统要求分析 (5) 2.2平衡控制原理分析 (5) 2.3自平衡小车数学模型 (6) 2.3.1两轮自平衡小车受力分析 (6) 2.3.2自平衡小车运动微分方程 (9) 2.4 PID控制器设计 (10) 2.4.1 PID控制器原理 (10) 2.4.2 PID控制器设计 (11) 2.5姿态检测系统 (12) 2.5.1陀螺仪 (12) 2.5.2加速度计 (13) 2.5.3基于卡尔曼滤波的数据融合 (14) 2.6本章小结 (16) 3.系统硬件电路设计 (17) 3.1 MC9SXS128单片机介绍 (17) 3.2单片机最小系统设计 (19) 3.3 电源管理模块设计 (21) I

3.4倾角传感器信号调理电路 (22) 3.4.1加速度计电路设计 (22) 3.4.2陀螺仪放大电路设计 (22) 3.5电机驱动电路设计 (23) 3.5.1驱动芯片介绍 (24) 3.5.2 驱动电路设计 (24) 3.6速度检测模块设计 (25) 3.6.1编码器介绍 (25) 3.6.2 编码器电路设计 (26) 3.7辅助调试电路 (27) 3.8本章小结 (27) 4.系统软件设计 (28) 4.1软件系统总体结构 (28) 4.2单片机初始化软件设计 (28) 4.2.1锁相环初始化 (28) 4.2.2模数转换模块(ATD)初始化 (29) 4.2.3串行通信模块(SCI)初始化设置 (30) 4.2.4测速模块初始化 (31) 4.2.5 PWM模块初始化 (32) 4.3姿态检测系统软件设计 (32) 4.3.1陀螺仪与加速度计输出值转换 (32) 4.3.2卡尔曼滤波器的软件实现 (34) 4.4平衡PID控制软件实现 (36) 4.5两轮自平衡车的运动控制 (37) 4.6本章小结 (39) 5. 系统调试 (40) 5.1系统调试工具 (40) 5.2系统硬件电路调试 (40) 5.3姿态检测系统调试 (41) 5.4控制系统PID参数整定 (43) II

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

现代设计黄金分割法复合形法实验报告word文档良心出品

《现代设计理论与方法》实验报告 、实验目的 机械优化设计是一门实践性较强的课程,学生通过实际上机计算可以达到以 下目的: 1. 加深对机械优化设计方法的基本理论和算法步骤的理解; 2. 培养学生独立编制或调试计算机程序的能力; 3. 掌握常用优化方法程序的使用方法; 4 .培养学生灵活运用优化设计方法解决工程实际问题的能力。 、实验项目、学时分配及对每个实验项目的要求 1.明确黄金分割法基本原理、计算步骤及程序框图; 吐 入「土 2?编制或调试黄金分割法应用程序; 1 黄金分割法 2 八' " 3 ?用测试题对所编程序进行测试; 4?撰写实验报告。 1.明确复合形法基本原理、计算步骤及程序框图 等; 2 复合形法 4 2?编制或调试复合形法应用程序; 3 ?用测试题对所编程序进行测试; 4?撰写实验报告。 二、测试题 1. 黄金分割法程序测试题 1 )rn"何二?-10r+36,取坷=0 ,卜皿1, 沪 程序如下: #in clude #in clude #in clude #defi ne e 0.00001 序实验项目 学时 号 实验要求

#define tt 0.01 float function(float x) float y=pow(x,2)-10*x+36;// return(y); void finding(float a[3],float f[3]) float t=tt,a1,f1,ia; int i; f[0]=function(a[0]); for(i=0;;i++) a[1]=a[0]+t;f[1]=function(a[1]); if(f[1]=e) t=-t;a[0]=a[1];f[0]=f[1]; else{ if(ia==1) return; t=t/2;ia=1; for(i=0;;i++) a[2]=a[1]+t;f[2]=function(a[2]); if(f[2]>f[1]) break; t=2*t; a[0]=0;/ / 初始区间的下界值 求解的一维函数

单片机控制单轴双轮自动平衡小车设计开题报告

毕业设计(论文) 开题报告 题目:单片机控制单轴双轮自动平衡小车设计系别:电气工程系 专业:电气工程及其自动化 班级: 学号 学生姓名: 指导教师: 2016年 3月

中原工学院信息商务学院 毕业论文(设计)开题报告 论文(设计)题目单片机控制单轴双轮自动平衡小车 姓名系别电气工程系专业 班级 电气121学号6 1选题目的和意义: 平衡车是一个不稳定、强耦合、非线性系统,对平衡车的研究有利于我们更熟练得运用自动控制理论,并且发展更可靠稳定的控制方法。在实际应用中,平衡车由于体积小,灵活方便,不管是在军用或者民用领域都有广阔的应用空间,两轮自平衡小车可以作为一种小范围的移动式服务平台。通过本课题的研究学习,会使自己更加了解单片机,熟悉电子电路,提升自己的对整个设计的把握,更透彻的掌握自动控制方法。 2本选题在国内外的研究状况及发展趋势: 国外方面:JOE 是瑞士研制的用DSP和FPGA 控制并基于倒立摆理论双轮车。通过倾斜传感器和倾角传感器来检测车体。通过电机上的编码盘检测电机的速度。采用了基于状态反馈的线性控制策略,车的运动被分解成直线和旋转运动,然后分析直线运动和旋转运动,得到电机需要的控制量,最终把控制量耦合叠加。他主要的设计思想依然是:使车子朝车体倾斜的方向运动来保持车身的平衡。主控芯片是HC11 微处理器,此处理器是David P.Anderson 专门的针对nBot 车设计的。传感器在得到车的车身信息后,再比例整合,当作模糊控制器的输入,按照之前设定的控制原则得到两个电机需要的PWM 电压。该控制只能能让小车平衡运动,而不能让小车自主直立。Segway 拥有更多的姿态传感器,它有5个陀螺仪传感器,然而事实是检测车身前倾斜只需要3个传感器就够了,其他的两个传感器只是增加安全性。传感器的信息会被传送到一个电路板,这个电路板是微处理器的集群,效率是个人电脑的三倍。这个集群是为了保证本载人平衡车在其中任何一个处理器出现问题时能报告错误,给驾驶者以处理问题的时间余量,保证了平衡车的安全性。 国内方面:哈工大尹亮制作的双轮移动车Sway,车身倾斜度采用AD 推出的双轴加速度传感器ADXL202 及反射式红外线距离传感器来获得。基于PWM 动态控制直流电机的速度。车与上位机间的数据通信使用PTR2000 超小型超低功耗高速无线收发数传MODEM。人机交互界面使用图形液晶点阵、方向摇杆、按键。依靠这些可靠并且完备

北京理工大学《数据结构与算法设计》实验报告实验一

《数据结构与算法设计》 实验报告 ——实验一 学院: 班级: 学号: 姓名:

一、实验目的 1.通过实验实践、巩固线性表的相关操作; 2.熟悉VC环境,加强编程、调试的练习; 3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作; 4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。 二、实验内容 1、采用单向环表实现约瑟夫环。 请按以下要求编程实现: ①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的 结点编号依次为1,2,……,m。 ②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到 第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点 的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出 了这个环表的全部结点为止。 三、程序设计 1、概要设计 为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。 (1)、单向环表的抽象数据类型定义为: ADT Joseph{ 数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0} 数据关系:R1={ |ai∈D,i=1,2,……,n} 基本操作: create(&L,n) 操作结果:构造一个有n个结点的单向环表L。 show(L) 初始条件:单向环表L已存在。 操作结果:按顺序在屏幕上输出L的数据元素。 Josephf( L,m,s,n) 初始条件:单向环表L已存在, s>0,n>0,s

基于单片机的两轮自平衡车控制系统设计

基于单片机的两轮自平衡车控制系统设计 摘要 两轮自平衡车是一种高度不稳定的两轮机器人,就像传统的倒立摆一样,本质不稳定是两轮小车的特性,必须施加有效的控制手段才能使其稳定。本文提出了一种两轮自平衡小车的设计方案,采用重力加速度陀螺仪传感器MPU-6050检测小车姿态,使用互补滤波完成陀螺仪数据与加速度计数据的数据融合。系统选用STC 公司的8位单片机STC12C5A60S2为主控制器,根据从传感器中获取的数据,经过PID算法处理后,输出控制信号至电机驱动芯片TB6612FNG,以控制小车的两个电机,来使小车保持平衡状态。 整个系统制作完成后,小车可以在无人干预的条件下实现自主平衡,并且在引入适量干扰的情况下小车能够自主调整并迅速恢复至稳定状态。通过蓝牙,还可以控制小车前进,后退,左右转。 关键词:两轮自平衡小车加速度计陀螺仪数据融合滤波 PID算法 Design of Control System of Two-Wheel Self-Balance Vehicle based on Microcontroller Abstract Two-wheel self-balance vehicle is a kind of highly unstable two-wheel robot. The characteristic of two-wheel vehicle is the nature of the instability as traditional inverted pendulum, and effective control must be exerted if we need to make it stable. This paper presents a design scheme of two-wheel self-balance vehicle. We need using gravity accelerometer

机电产品设计实验报告

课程名称:机电产品现代设计方法上课时间:2015年春季 机电产品现代设计方法实验报告 姓名: 学号: 班级: 所在学院:机电工程学院 任课教师:张旭堂

一、实验项目与实验目的 实验项目: 典型机电产品多学科协同优化设计。 试验目的: (1) 掌握典型机电产品多学科协同优化设计软件环境组成,包括建模软件、分析软件、协同平台。 (2)自主设计产品模型、分析过程、优化目标。 (3) 对得到的优化结果进行定性分析,解释结果的合理性,编写上机实验报告。 二、实验环境 网络协同设计环境,如下图所示:包括产品CAD建模、有限元分析FEM、动力学仿真ADAMS和控制仿真MATLAB。计算机网络硬件环境和相应软件环境。图形工作站和路由器,安装协同设计仿真软件。

型 协同设计仿真平台组成 三、实验原理 典型机电产品协同设计仿真工作流程如下图所示。 1)利用CAD建模工具,建立产品模型; 2)利用ADAMS建立产品运动学模型; 3)根据CAD和ADAMS传过来的结构模型和边界条件分析零件应力场和应变场; 4)用ADAMS分析得到的运动参数(位移、速度)。

协同设计仿真平台组成 四、实验内容与步骤 (1)总体方案设计 SysML语言是UML语言(Unified Modeling Language,统一建模语言,一种面向对象的标准建模语言,用于软件系统的可视化建模)在系统工程应用领域的延续和扩展,是近年提出的用于系统体系结构设计的多用途建模语言,用于对由软硬件、数据和人综合而成的复杂系统的集成体系结构进行可视化的说明、分析、设计及校验。 在这里我们绘制参数图如下。在下面的参数图中,我们确定了系统中各部件的相互约束情况。

两轮自平衡小车控制系统的设计

两轮自平衡小车控制系统的设计 摘要:介绍了两轮自平衡小车控制系统的设计与实现,系统以飞思卡尔公司的16位微控制器MC9S12XS128MAL作为核心控制单元,利用加速度传感器MMA7361测量重力加速度的分量,即小车的实时倾角,以及利用陀螺仪ENC-03MB测量小车的实时角速度,并利用光电编码器采集小车的前进速度,实现了小车的平衡和速度控制。在小车可以保持两轮自平衡前提下,采用摄像头CCD-TSL1401作为路径识别传感器,实时采集赛道信息,并通过左右轮差速控制转弯,使小车始终沿着赛道中线运行。实验表明,该控制系统能较好地控制小车平衡快速地跟随跑道运行,具有一定的实用性。 关键词:控制;自平衡;实时性 近年来,随着经济的不断发展和城市人口的日益增长,城市交通阻塞以及耗能、污染问题成为了一个困扰人们的心病。新型交通工具的诞生显得尤为重要,两轮自平衡小车应运而生,其以行走灵活、便利、节能等特点得到了很大的发展。但是,昂贵的成本还是令人望而止步,成为它暂时无法广泛推广的一个重要原因。因此,开展对两轮自平衡车的深入研究,不仅对改善平衡车的性价比有着重要意义,同时也对提高我国在该领域的科研水平、扩展机器人的应用背景等具有重要的理论及现实意义。全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。小车设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械及能源等多个学科的知识。 1 小车控制系统总体方案 小车以16位单片机MC9S12XS128MAL作为中央控制单元,用陀螺仪和加速度传感器分别检测小车的加速度和倾斜角度[1],以线性CCD采集小车行走时的赛道信息,最终通过三者的数据融合,作为直流电机的输入量,从而驱动直流电机的差速运转,实现小车的自动循轨功能。同时,为了更方便、及时地观察小车行走时数据的变化,并且对数据作出正确的处理,本系统调试时需要无线模块和上位机的配合。小车控制系统总体架构。 2 小车控制系统自平衡原理 两轮小车能够实现自平衡功能,并且在受到一定外力的干扰下,仍能保持直立状态,是小车可以沿着赛道自动循线行走的先决条件。为了更好地控制小车的行走方式,得到最优的行走路径,需要对小车分模块分析与控制。 本控制系统维持小车直立和运行的动力都来自小车的两个轮子,轮子转动由两个直流电机驱动。小车作为一个控制对象,它的控制输入量是两个电机的转动速度。小车运动控制可以分解成以下3个基本控制任务。 (1)小车平衡控制:通过控制两个电机正反方向运动保持小车直立平衡状态; (2)小车速度控制:通过调节小车的倾斜角度来实现小车速度控制,本质上是通过控制电机的转速来实现小车速度的控制。 (3)小车方向控制:通过控制两个电机之间的转动差速实现小车转向控制。 2.1 小车平衡控制 要想实现小车的平衡控制,需要采取负反馈控制方式[2]。当小车偏离平衡点时,通过控制电机驱动电机实现加、减速,从而抵消小车倾斜的趋势,便可以保持车体平衡。即当小车有向前倾的趋势时,可以使电机正向加速,给小车一个向前的加速度,在回复力和阻尼力的作用下,小车不至于向前倾倒;当小车有向后倾的趋势时,可以使小车反向加速,给小车一个向后的加速度,从而不会让小车向后倾倒,。

算法设计与实验报告讲解

算法设计与分析实验报告 学院:信息学院 专业:物联网1101 姓名:黄振亮 学号:20113379 2013年11月

目录 作业1 0-1背包问题的动态规划算法 (7) 1.1算法应用背景 (3) 1.2算法原理 (3) 1.3算法描述 (4) 1.4程序实现及程序截图 (4) 1.4.1程序源码 (4) 1.4.2程序截图 (5) 1.5学习或程序调试心得 (6) 作业2 0-1背包问题的回溯算法 (7) 2.1算法应用背景 (3) 2.2算法原理 (3) 2.3算法描述 (4) 2.4程序实现及程序截图 (4) 2.4.1程序源码 (4) 2.4.2程序截图 (5) 2.5学习或程序调试心得 (6) 作业3循环赛日程表的分治算法 (7) 3.1算法应用背景 (3) 3.2算法原理 (3) 3.3算法描述 (4) 3.4程序实现及程序截图 (4)

3.4.1程序源码 (4) 3.4.2程序截图 (5) 3.5学习或程序调试心得 (6) 作业4活动安排的贪心算法 (7) 4.1算法应用背景 (3) 4.2算法原理 (3) 4.3算法描述 (4) 4.4程序实现及程序截图 (4) 4.4.1程序源码 (4) 4.4.2程序截图 (5) 4.5学习或程序调试心得 (6)

作业1 0-1背包问题的动态规划算法 1.1算法应用背景 从计算复杂性来看,背包问题是一个NP难解问题。半个世纪以来,该问题一直是算法与复杂性研究的热点之一。另外,背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、网络信息安全等应用中具有重要的价值。如果能够解决这个问题那么则具有很高的经济价值和决策价值,在上述领域可以获得最大的价值。本文从动态规划角度给出一种解决背包问题的算法。 1.2算法原理 1.2.1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi ∈{0,1}, ?∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。 1.2.2、最优性原理: 设(y1,y2,…,yn)是 (3.4.1)的一个最优解.则(y2,…,yn)是下面相应子问题的一个最优解: 证明:使用反证法。若不然,设(z2,z3,…,zn)是上述子问题的一个最优解,而(y2,y3,…,yn)不是它的最优解。显然有 ∑vizi > ∑viyi (i=2,…,n) 且 w1y1+ ∑wizi<= c 因此 v1y1+ ∑vizi (i=2,…,n) > ∑ viyi, (i=1,…,n) 说明(y1,z2, z3,…,zn)是(3.4.1)0-1背包问题的一个更优解,导出(y1,y2,…,yn)不是背包问题的最优解,矛盾。 1.2.3、递推关系:

机电产品现代设计方法实验报告

课程名称:机电产品现代设计方法 上课时间:2014年春季 机电产品现代设计方法实验报告 姓名: 学号: 班级: 所在学院:机电工程学院 任课教师:金天国张旭堂

实验名称机电产品现代设计方法 姓名学号班级 实验地点实验日期评分 指导教师张旭堂同组成员其他 1 静态存储器扩展实验 1.1 实验目的 (1)掌握典型机电产品多学科协同优化设计软件环境组成,包括建模软件、分析软件、协同平台; (2)自主设计产品模型、分析过程、优化目标; (3)对得到的优化结果进行定性分析,解释结果的合理性,编写上机实验报告。 1.2 实验内容 (1) 轴的有限元分析 (2) 基于Adams的运动学分析与仿真 1.3实验相关情况介绍(包含使用软件或实验设备等情况) 1.3.1使用软件 本实验使用软件为Adams及abaqus,利用Adams进行运动学仿真分析,利用abaqus进行有限元分析。 1.3.2实验设备 计算机。 1.4实验结果 1.4.1基于ADAMS 的运动学仿真 (1)构造ADAMS样机机械模型 根据指导书建立铲车的三维模型。三维模型可以通过专门三维建模软件进行建模,然后导入ADAMS,也可以直接用ADAMS建模。利用ADAMS建模过程在《adams 运动仿真例子》中有详述,直接给出建模后的模型,如图1所示:

图1 铲车模型 (2)构建约束 根据要求构造四个约束:基座和座架之间的创建转动副,轴肩与座架间构建转动副,铲斗与悬臂间构建转动副,悬臂与轴肩之间构建平动副。构建后的模型如图2所示: 图2 添加约束铲车模型 (3)添加运动 根据题意分别对四个运动副添加运动函数: (a)基座和座架之间的创建转动副:360d*time;

线控两轮平衡车的建模与控制研究

线控两轮平衡车的建模 与控制研究 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

线性系统理论 上机实验报告 题目:两轮平衡小车的建模与控制研究 完成时间:2016-11-29 1.研究背景及意义 现代社会人们活动范围已经大大延伸,交通对于每个人都十分重要。交通工具的选择则是重中之重,是全社会关注的焦点。 随着社会经济的发展,人民生活水平的提高,越来越多的小汽车走进了寻常百姓家。汽车快捷方便、省时省力,现代化程度高,种类繁多的个性化设计满足了不同人的需求。但它体积大、重量大、污染大、噪声大、耗油大、技术复杂、使用不便、价格贵、停放困难,效率不高,而且还会造成交通拥堵并带来安全隐患。相比之下,自行车是一种既经济又实用的交通工具。中国是自行车大国,短距离出行人们常选择骑自行车。自行车确实方便,但在使用之前需要先学会骑车,虽然看似简单,平衡能力差的人学起来却很困难,容易摔倒,造成人身伤害。另外,自行车毕竟不适宜长距离的行驶,遥远的路程会使人感到疲劳。 那么,究竟有没有这样一种交通工具,集两者的优点于一身呢?既能像汽车一样方便快捷又如自行车般经济简洁,而且操作易于掌握,易学又易用。两轮自平衡车概念就是在这样的背景下提出来的。 借鉴目前国内外两轮自平衡车的成功经验,本文提出的研究目标是设计一款新型的、结构简单、成本低的两轮自平衡车,使其能够很好地实现自平衡功能,同时设计结果通过MATLAB进行仿真验证。

2.研究内容 自平衡式两轮电动车是一个非线性、强耦合、欠驱动的自不稳定系统,对其控制策略的研究具有重大的理论意义。我们通过分析两轮平衡车的物理结构以及在平衡瞬间的力学关系,得到两轮车的力学平衡方程,并建立其数学模型。运用MATLAB 和SIMULINK 仿真系统的角度θ、角加速度? θ、位移x 和速度的? x 变化过程,对其利用外部控制器来控制其平衡。 3.系统建模 两轮平衡车的瞬时力平衡分析如图1所示。下面将分析归纳此时的力平衡方程[1-3],并逐步建立其数学模型。 对两轮平衡车的右轮进行力学分析,如图2所示。 依据图2对右轮进行受力分析,并建立其平衡方程: =R R R R M X f H ? - (1) R R R R J C f R ??? =- (2) 同理,对左轮进行受力分析,并建立其平衡方程: =R L L L M X f H ? - (3) L L L L J C f R ??? =- (4) 两轮平衡车摆杆的受力分析如图3所示,由图3可以得到水平和垂直方向的平衡方程以及转矩方程。 水平方向的平衡方程: H H x R L p m +=? ? (5) 其中θsin L x x m p +=,则有:

银行家算法设计实验报告

银行家算法设计实验报告

银行家算法设计实验报告 一.题目分析 1.银行家算法: 我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。 当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。 2.基本要求: (1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。 (2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。

(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回 B. 所申请的资源未大于其所需资源, 但大于系统此时的可利用资源,提 示分配不合理不予分配并返回。 C. 所申请的资源未大于其所需资源, 亦未大于系统此时的可利用资源,预 分配并进行安全性检查: a. 预分配后系统是安全的,将该进 程所申请的资源予以实际分配并 打印后返回。 b. 与分配后系统进入不安全状态,提示系统不安全并返回。 (4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。 3.目的: 根据设计题目的要求,充分地分析和理解题 目,叙述系统的要求,明确程序要求实现的功能以及限制条件。 明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。

双轮自平衡小车机器人系统设计与制作

燕山大学 课程设计说明书题目:双轮自平衡小车机器人系统设计与制作 学院(系):机械工程学院 年级专业:12级机械电子工程 组号:3 学生: 指导教师:史艳国建涛艳文史小华庆玲 唐艳华富娟晓飞正操胡浩波 日期: 2015.11

燕山大学课程设计(论文)任务书院(系):机械工程学院基层教学单位:机械电子工程系

摘要 两轮自平衡小车是一种非线性、多变量、强耦合、参数不确定的复杂系统,他体积小、结构简单、运动灵活,适合在狭小空间工作,是检验各种控制方法的一个理想装置,受到广大研究人员的重视,成为具有挑战性的课题之一。 两轮自平衡小车系统是一种两轮左右并行布置的系统。像传统的倒立一样,其工作原理是依靠倾角传感器所检测的位姿和状态变化率结合控制算法来维持自身平衡。本设计通过对倒立摆进行动力学建模,类比得到小车平衡的条件。从加速度计和陀螺仪传感器得出的角度。运用卡尔曼滤波优化,补偿陀螺仪的漂移误差和加速度计的动态误差,得到更优的倾角近似值。通过光电编码器分别得到车子的线速度和转向角速度,对速度进行PI控制。根据PID控制调节参数,实现两轮直立行走。通过调节左右两轮的差速实现小车的转向。 制作完成后,小车实现了在无线蓝牙通讯下前进、后退、和左右转向的基本动作。此外小车能在正常条件下达到自主平衡状态。并且在适量干扰下,小车能够自主调整并迅速恢复稳定状态。 关键词:自平衡陀螺仪控制调试

前言 移动机器人是机器人学的一个重要分支,对于移动机器人的研究,包括轮式、腿式、履带式以及水下式机器人等,可以追溯到20世纪60年代。移动机器人得到快速发展有两方面原因:一是其应用围越来越广泛;二是相关领域如计算、传感、控制及执行等技术的快速发展。移动机器人尚有不少技术问题有待解决,因此近几年对移动机器人的研究相当活跃。 近年来,随着移动机器人研究不断深入、应用领域更加广泛,所面临的环境和任务也越来越复杂。机器人经常会遇到一些比较狭窄,而且有很多大转角的工作场合,如何在这样比较复杂的环境中灵活快捷的执行任务,成为人们颇为关心的一个问题。双轮自平衡机器人概念就是在这样的背景下提出来的。两轮自平衡小车是一个高度不稳定两轮机器人,是一种多变量、非线性、强耦合的系统,是检验各种控制方法的典型装置。同时由于它具有体积小、运动灵活、零转弯半径等特点,将会在军用和民用领域有着广泛的应用前景。因为它既有理论研究意义又有实用价值,所以两轮自平衡小车的研究在最近十年引起了大量机器人技术实验室的广泛关注。 本论文主要叙述了基于stm32控制的两轮自平衡小车的设计与实现的整个过程。主要容为两轮自平衡小车的平衡原理,直立控制,速度控制,转向控制及系统定位算法的设计。通过此设计使小车具备一定的自平衡能力、负载承载能力、速度调节能力和无线通讯功能。小车能够自动检测自身机械系统的倾角并完成姿态的调整,并在加载一定重量的重物时能够快速做出调整并保证自身系统的自我平衡。能够以不同运动速度实现双轮车系统的前进、后退、左转与右转等动作,同时也能够实现双轮自平衡车系统的无线远程控制操作

现代设计方法实验报告

《现代机械设计方法学》实验报告 班级: 学号: 姓名: 成绩:

实验一、有限元分析 (一)目的: 1、初步掌握有限元软件分析力学问题的过程,包括几何建模、网格划分等前处理功能,掌握各种计算结果的阅读。 2、掌握材料数据、载荷、约束的添加方法。 (二)要求:学生独立完成一个算例的有限元分析,并阅读其计算结果,提交一个算例的分析报告。 (三)计算实例 1、问题的描述 为了考察铆钉在冲压时,发生多大的变形,对铆钉进行分析。 铆钉圆柱高:10mm 铆钉圆柱外径:6mm 铆钉下端球径:15mm 弹性模量:2.06E11 泊松比:0.3 铆钉材料的应力应变关系如下: 应变0.003 0.005 0.007 0.009 0.011 0.02 0.2 618 1128 1317 1466 1510 1600 1610 应力 /Mpa

1、有限元模型。

3、应力云图,可选主应力或σx、σy、τxy、V on Mises应力、Tresca应力之一输出结果图片,指明你所选的应力的最大值及其位置。 (三)思考题: 1、如果要提高边界处计算精度,一般应如何处理? 答:在边界处划分网格 2、有限元网格划分时应注意哪些问题? 答:选取的时候要将编号显示出来,这样就可以更好的选择,网格尽可能的小,这样结果就越准确。

实验二、优化实验 (一)目的: 初步掌握利用ANSYS软件或MATLAB软件对问题进行分析。 (二)要求: 学生独立完成一个算例的分析,并给出算例的计算结果。。 (三)算例 1.实际问题 梁的形状优化,优化目的是使梁的体积最小,同时要求梁上的最大应力不 超过30000psi,梁的最大挠度不大于0.5in,沿长度方向梁的厚度可以变化,但梁端头的厚度为定值t,采用对称建模。 使用两种方法进行优化,两种方法优化结果。 子问题近视法目标ANSYS 百分比(TVOL)体积in3 3.60 3.62 1.004 (DEFL)挠度max in 0.500 0.499 0.998 (STRS)应力max,psi 30000 29740 0.991 第一阶法目标ANSYS 百分比(TVOL)体积in3 3.6 3.61 1.003 (DEFL)挠度max in 0.5 0.5 1.001 STRS)应力max,psi 30000 29768 0.992

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

物体运动的方式实验报告

物体运动的方式实验报告 (文章一):实验报告四年级4课.小吊车活动1:做小吊车(分组实验)制作目的:做小吊车并研究小吊车原理制作材料及工具:小纸盒吊车臂吊臂支架线绳两个铁丝钩一个剪刀锥子胶水钩码制作过程: 1.小组分工合作 2.观察小吊车模型组装各部分①四个点要对称,固定牢固;②绳子要从前往后穿,不要穿反了; 3.调试小吊车分别拉动两根线,看看小吊车的臂能否灵活运动. 实验现象:小吊车能提起或放下钩码实验结论:放松上牵引绳,拉紧下牵引绳,吊臂向下运动;拉紧上牵引绳,放松下牵引绳,吊臂向上运动。活动2:收与放实验目的:推断动物与人的肢体运动原理(分组实验) 实验过程: 1. 弯曲手臂,感受上臂上下肌肉的长短松紧变化。 2.伸直手臂,感受上臂上下肌肉的长短松紧变化。 3.反复几次体会与小吊车的原理的联系。实验现象:手臂骨骼就像小吊车的吊臂,肌肉就像绳子,手臂运动时,当肱二头肌收缩,肱三头肌舒张时,肱二头肌牵动前臂向内收缩;当肱三头肌收缩,肱二头肌舒张时,肱三头肌牵动前臂向外伸展. 实验结论:前臂收缩类似小吊车抬起重物。前臂伸展类似小吊车放下重物。6课.做沙盘(分组实验)制作目的:通过制作校园沙盘模型培养学生的设计制作能力。制作材

料:硬纸板学校平面图橡皮泥潮湿的沙土废旧泡沫包装纸小木棍颜料盒剪刀制作步骤:对校园建筑的布局进行观测2.用大的硬纸板做底座。在纸板上画好学校平面图。(明确建筑物.树木等的位置) 3.用橡皮泥旧泡沫等材料做出立体的楼房等校园建筑物,根据平面图摆放好位置。(可以用长方体或正方体的泡沫做楼房,硬纸板做围墙,小木棍做旗杆等)。4.要注意建筑物的比例。(四年级的学生还不能很精确地计算出比例尺,教师适当指导。)8课.快与慢实验目的:研究小车运动的快慢(分组实验) 实验材料:秒表(或电子手表)、长尺、玩具车(学生自带),橡皮泥,马达、电池等(学生自带)实验过程: 1.小组做好分工:赛车手、计时员、测量员、记录员。 2.找好起点(必要时确定好终点); 3.秒表做好归零; 4.在相同时间内必须进行多次测量(不少于3次),并做好记录 5. .在相同距离内必须进行多次测量(不少于3次),并做好记录实验结论:1:相同时间内经过的距离越长,物体运动的速度越快2:相同距离下所用的时间越短,物体运动的速度越快活动2:玩小车实验目的:研究小车运动的快慢与载重物及路面光滑程度是否有关?(对比试验) 实验材料:秒表(或电子手表), 木板, 玩具车(学生自带),钩码, 毛巾. 实验方法:1做好小组分工:赛车手、计时员、记录员; 2先测量空车时小车在木板上运动时间; 3别的条件不变,向小车上加钩

自平衡小车设计报告

2012年省电子竞赛设计报告 项目名称:自平衡小车 姓名:连文金、林冰财、陈立镔 指导老师:吴进营、苏伟达、李汪彪、何志杰日期:2012年9月7日

摘要: 本组的智能小车底座采用的是网上淘宝的三轮两个电机驱动的底座,主控芯片为STC89C52,由黑白循迹采集模块对车道信息进行采集,将采集的信息传送到主控芯片,再由主控芯片发送相应的指令到电机驱动模块L298N,从而控制电机的运转模式。 关键词: STC89C52 L298N 色标传感器 E18-F10NK 自动循迹 引言: 近现代,随着电子科技的迅猛发展,人们对技术也提出了更高的要求。汽车的智能化在提高汽车的行驶安全性,操作性等方面都有巨大的优势,在一些特殊的场合下也能满足一些特殊的需要。智能小车系统涉及到自动控制,车辆工程,计算机等多个领域,是未来汽车智能化是一个不可避免的大趋势。本文设计的小车以STC89C52为控制核心,用色标传感器 E18-F10NK作为检测元件实现小车的自动循迹前行。 一、系统设计 本组智能小车的硬件主要有以STC89C52 作为核心的主控器部分、自动循迹部分、电机驱动部分。 1.1方案论证及选择: 根据设计要求,可以有多种方法来实现小车的功能。我们采用模块化思想,从各个单元电路选择入手进行整体方案的论证、比较与选择。 本方案以STC89C52作为主控芯片,通过按键进行模式的选择切换,按键一选择三轮循迹,按键二进行两轮循迹。 1.1.1模式一(三轮循迹): 模式一(按键一控制):三轮循迹的时候,通过色标传感器和激光传感器进行实时的数据采集,反馈给主控芯片,主控芯片通过驱动L298来控制两路直流减速电机,从而保证路线的准确性。

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

相关文档
最新文档