中山大学“FUNNCHY”杯第七届DV大赛参赛人员协议书 本文关键词:中山大学,协议书,第七届,参赛,大赛
中山大学“FUNNCHY”杯第七届DV大赛参赛人员协议书 本文简介:中山大学“FUNNCHY”杯第七届DV大赛参赛人员协议书一、在2008年12月20日至2009年4月20日期间,参赛作品使用权为中山大学DV大赛第七届组委会和参赛者(团体或个人)共用。同时,组委会承诺在没有经过参赛者同意的情况下,不会随意使用作品,更不会用于商业途径。二、在2009年4月20日至20
中山大学“FUNNCHY”杯第七届DV大赛参赛人员协议书 本文内容:
中山大学“FUNNCHY”杯第七届DV大赛参赛人员协议书
一、在2008年12月20日至2009年4月20日期间,参赛作品使用权为中山大学DV大赛第七届组委会和参赛者(团体或个人)共用。同时,组委会承诺在没有经过参赛者同意的情况下,不会随意使用作品,更不会用于商业途径。
二、在2009年4
月20日至200
9年
6月
30日期间,鉴于已进入DV大赛的评奖和颁奖阶段,参赛作品使用权归FUNNCHY(梵驰)品牌的所属者广州市爱马仕实业有限公司和参赛者(团体或个人)所有,在此期间参赛者不得将参赛作品一稿多投(非此期间报名参加其他类似比赛的,如不发生参赛作品所有权权益纠纷问题的,不予追究),2009年
7月1日后版权完全归参赛者个人所有。
三、在2008年12
月
20日至2009
年6月
20日期间,参赛作品将在本次大赛指定的媒体上播放,不得在其他视频网站自行上传作品。其它媒体如要利用获奖作品片段进行宣传,需经参赛者(团体或个人),以及FUNNCHY(梵驰)品牌的所属者广州市爱马仕实业有限公司、中山大学学生会共同协商批准后方可使用,参赛者不得擅自将参赛作品推荐给电视台及音像制品公司,否则FUNNCHY(梵驰)品牌的所属者广州市爱马仕实业有限公司和中山大学学生会有权追究相关责任。
四、参赛者在2009年
4月
20日至200
9年
6月
30日间不得拿此作品参加其它类似的比赛活动,在2009年
7月
1日后可以参加类似比赛活动。
五、此条约在签定之日开始生效,参赛者在填写报名表时,需同时填写协议书。若为获奖人员且同意以上条款,则签字领取奖金,如不同意则自动取消领奖资格。
广州市爱马仕实业有限公司
中山大学学生会
2009年
月
日
2009年
月
日
(盖章)
(盖章)
是否同意
参加者
(签名)
日期
特别注明:此协议书为FUNNCHY(梵驰)品牌的所属者广州市爱马仕实业有限公司、新浪互联星空播客和中山大学学生会DV大赛第七届组委会共同认定,旨在针对发生作品所有权权益纠纷问题时有特别约束力。
另外,关于协议书上的条款,如有不明之处,请加入中山大学第七届DV大赛参赛者群:7579338。群内工作人员会为您解答相关疑问,谢谢关注!
篇2:儿科基础总结中山大学儿科学
儿科基础总结中山大学儿科学 本文关键词:中山大学,儿科学,儿科,基础
儿科基础总结中山大学儿科学 本文简介:小儿年龄分期0-40周(出生)出生—1周岁1周岁—3周岁3周岁—6、7岁6、7岁—9、11岁出生—28天脱离母体独立,发病率高,死亡率高,先天畸形表现新生儿期28周—出生7天围生期胎儿期婴儿期幼儿期学龄前期学龄期易受外界不利因素影响生长极其旺盛,易发营养消化紊乱,感染,传染病智能发育迅速,断乳,意外
儿科基础总结中山大学儿科学 本文内容:
小儿年龄分期
0-40周(出生)
出生—1周岁
1周岁—3周岁
3周岁—6、7岁
6、7岁—9、11岁
出生—28天
脱离母体独立,发病率高,死亡率高,先天畸形表现
新生儿期
28周—出生7天
围生期
胎儿期
婴儿期
幼儿期
学龄前期
学龄期
易受外界不利因素影响
生长极其旺盛,易发营养消化紊乱,感染,传染病
智能发育迅速,断乳,意外发生率高
生长发育规律
由上到下、由近到远、由粗到细,由低级到高级,有简单到复杂,双峰,速度不均一性
体格生长
出生
第3个月
1周岁
2周岁
2岁—青春期
体重/Kg
3.33±0.39
3.24±0.39
7.17±0.78
6.56±0.73
10
13
年龄×2+8
身高/cm
50
62
75
87
年龄×7+75
头围
33—34
40
46
48
胸围
32
46
头身比:1/4(新生儿)→1/8(成人)
上/下部量:出生0.67→青春期0.53
生理性体重下降:新生儿生后一周内因奶量摄入不足,加之水分丢失、胎粪排出,体重在生后3~4天达最低点,下降范围为3%~9%,至生后第7~10天恢复出生时体重。
头颅骨
前囟(1~2cm,1~1.5岁闭合)
疾病
增大
脑积水、佝偻病、甲低
膨隆
颅内感染、出血、颅内高压
早闭
小头畸形
凹陷
脱水、营养不良
牙齿
乳牙包括切牙(14)、乳磨牙(4)、单尖牙(2)。
始萌
延迟
出齐
4~10月
>12月
2.5岁(20颗)
始萌
恒磨牙
6岁
第1
第2
第3
6岁
12岁
17~18岁
握持反应3个月时消失,3~4个月的婴儿肌张力高,凯尔尼格征阳性,1岁时肌腱反射、腹壁反射和提睾反射稳定引出,2岁以下巴宾斯基征阳性。
大运动(由上到下)
头(颈曲)
俯卧抬头
1m
抬头竖直
2m
胸(胸曲)
俯卧抬胸
3m
腰(腰曲)
扶髋坐
4m
独坐
6-8m
上肢
握持玩具
4m
翻身,玩具换手
7m
下肢
爬
8m
扶腋站直
5m
扶栏杆站
8-9m
独站
10-12m
扶行
10-12m
独行,弯腰
12-15m
蹲
15m
爬台阶
18m
双脚跳
2y
跑
3y
细动作
3~4m
握持反应消失,手指自由活动
5~6m
有意识抓物,吮手
6~9m
换手,捏、敲
9~10m
对掌、拾物、撕纸
12~15m
会用食具,用杯喝水、握匙
18m~2y
手足协调,蹲着叠积木
2y
自己进食
感知觉和语言
2m
协调注视,开始头眼协调
3~4m
头随声源转动,咿呀发音,有意识笑出声(4m),味觉发育CW(4~5m)
6~8个月
唇音
双音节ba-ba,ma-ma,da-da,听力语言发育CW6个月内
12~15个月
有意识叫爸、妈,简单动、名词,再见,没了
18m
区分形状,指认家庭成员
2~3岁
简单句(主+谓)
5岁
区分颜色
儿童计划免疫
出生(T细胞足够)
卡介苗
乙肝疫苗
1m
乙肝疫苗
2m(避免2种以上减活病毒,灰髓炎致残、致死率高)
脊髓灰质炎疫苗
3m(IgG抗体)
脊髓灰质炎疫苗
百白破
4m
脊髓灰质炎疫苗
百白破
5m
百白破
6m(保持母体被动免疫)
乙肝疫苗
8m
麻疹
儿童营养基础
RNI:可以满足某一特定性别、年龄及生理状况群体中绝大多数个体需要的营养摄入量。
小儿能量代谢特点:
1.
对营养需求高,自身消化吸收功能不完善
2.
年龄越小,蛋白质供量相对越多,相对总能量需要越大
3.
基础代谢率高,随年龄增长逐渐减少
4.
食物中蛋白质丰富,所以食物动力所需要的热能高
5.
活动所需能量个体波动较大,随年龄增加而增加
6.
组织生长合成消耗能量为儿童特有,随年龄增长而减少
宏量营养素
1岁内:
1.5~3g/(kg·d)
0~6m
45%~50%
7~12m
35%~40%
消化酶:
胃蛋白酶
18m达成人水平
消化能力强
胰蛋白酶
1个月达成人水平
胃脂肪酶
发育较好
消化能力强
胰脂肪酶
2~3岁达成人水平
母乳脂肪酶
代偿
肠双糖酶
发育好
单、双糖吸收好
胰淀粉酶
3个月活性提高,2岁达成人水平
不宜过早添加淀粉类食物
母乳喂养的优点:
1.
成分完全易吸收,减少营养不良
2.
降低消化道、呼吸道患病率
3.
增进母婴感情
4.
经济、方便
篇3:电磁组中山大学电磁组2队技术报告
电磁组中山大学电磁组2队技术报告 本文关键词:电磁,山大,组中,报告,技术
电磁组中山大学电磁组2队技术报告 本文简介:第七届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:中山大学队伍名称:电磁2队参赛队员:李小锟黄志杰誉洪生带队教师:成慧钱宁关于技术报告和研究论文使用授权的说明本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和
电磁组中山大学电磁组2队技术报告 本文内容:
第七届“飞思卡尔”杯全国大学生
智能汽车竞赛
技
术
报
告
学
校:中山大学
队伍名称:电磁2队
参赛队员:
李小锟
黄志杰
誉洪生
带队教师:
成
慧
钱
宁
关于技术报告和研究论文使用授权的说明
本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日
期:
摘
要
本论文中设计的智能车系统采用飞思卡尔公司的kinetisK60作为控制核心,以IRF3205和IRF4905为电机驱动模块,通过编码器获得电机速度信息。使用由电感及放大电路组成的传感器获取赛道信息;在智能车控制方面,基于位置式及增量式的PID控制算法在高速行驶赛车的路径优化和速度控制上有着不错的效果。为了提高车的速度和稳定性,我们使用VC、无线通讯模块、等多种调试工具。结果表明,本系统可靠有效。
关键词:kinetisK60,IRT3205,IRF4905,PID
Abstract
We
design
the
smart
car
system
based
on
the
control
of
kinetisK60
in
this
paper.
We
choose
IRF3205
and
IRF4905
to
be
the
motor
drive,and
encoder
to
feedback
the
speed
of
the
motor.
We
use
electrical
inductance
to
get
the
information
of
the
track.
During
the
control
of
the
smart
car,the
positional
PID
and
Increasing
PID
perform
good
on
path
optimization
and
speed
control
in
high
speeding
pattern.
In
order
to
improve
the
speed
and
the
stability
of
the
smart
car,we
use
kinds
of
methods,such
as
VC,wireless
module
.
It
turned
out
that
the
system
is
reliable
and
effective.
Keyword:kinetisK60,IRT3205,IRF4905,PID
目录
摘要Ⅱ
AbstractⅢ
第一章
引言1
第二章
系统总体设计2
2.1
系统概述2
2.1.1
任务分解2
2.1.2
直立控制分析3
2.1.3
速度控制分析4
2.1.4
转弯控制分析4
2.2
车模倾角检测4
2.3
整车布局4
2.4
结构框图5
第三章
系统机械结构设计与实现7
3.1
车模7
3.2
车模车身简化及固定7
3.3
陀螺仪及加速度计固定结构设计8
3.4
路径传感器固定结构设计9
3.5
编码器的安装设计9
3.6主动轮松紧程度的调整10
第四章
硬件系统的设计与实现11
4.1
硬件设计总体方案11
4.2
系统电路的设计与实现11
4.2.1
电源管理电路11
4.2.2
电机驱动电路12
4.2.3
计数器电路13
4.2.4平衡传感器电路13
4.2.5
路径检测电路14
4.3
静电处理14
第五章
软件系统的设计与实现16
5.1
主程序16
5.1.1程序运行流程16
5.1.2
PWM输出16
5.1.3
直立控制19
5.1.4
速度控制19
5.1.5
转弯控制19
5.2
卡尔曼滤波19
5.3
启动方式20
第六章
开放工具与系统调试22
6.1
开发工具22
6.2
无线通信模块23
第七章
车辆参数24
第八章
总结24
致谢I
参考文献II
附录AⅢ
附录BⅢ
V
第一章
引言
全国大学生智能汽车比赛是经全国高等教育司研究,委托高等学校自动化专业教学指导分委会主办的,旨在培养创新精神、协作精神,提高工程实践能力的大学生科技创新活动。
本次大赛中,使用竞赛秘书处统一指定的C车竞赛车模套件,采用飞思卡尔半导体公司的32位微控制器kinetisK60作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动以及控制算法软件开发等。制作一个能够自主识别路线的两轮自平衡智能车,让车模以两个后轮驱动在专门设计的跑道上自动识别道路行驶。本技术报告主要对小车的整体设计思路,硬件与软件的设计及实现,机械结构的安装及优化以及赛车的调试的过程作简要的说明。
5
第二章
系统总体设计
第二章
系统总体设计
2.1系统概述
系统概述图如图2.1所示
图2.1系统概述
2.1.1任务分解
两轮赛车通过检测自身倾斜角度以及倾斜角速度的大小,通过单片机处理采集得到的角度、角速度信号,实现对赛车自身平衡以及前进的控制,再以检测通过以20KHZ、100mA的导线的电磁场为基础,通过单片机处理采集到得磁感应电压信号,实现对赛车的转向控制,进而识别赛道达到路径讯迹的目的。
车模的运行可以分为三个过程:直立、前进、转弯。但是暂时找不到其他方法可以不依赖电机而可以控制任意一个过程,所以只能由控制车模两个电机旋转方向及速度实现对车模的控制,因此将车模运动控制任务分解成以下三个基本任务:
(1)
控制车模直立:通过控制两个电机正反向运动保持车模直立状态;
(2)
控制车模速度:通过控制两个电机转速速度实现车模行进控制;
(3)
控制车模转向:通过控制两个电机之间的转动差速实现车模转向控制。
2.1.2直立控制分析
如图2.1.2所示,车身可看作是一个倒立摆,要想通过控制使得倒立摆能够像单摆一样,稳定在垂直位置,只有两个办法:一个是改变重力的方向;另一个是增加额外的受力,使得恢复力与位移
方向相反才行。但显然能够做的只有第二种方式。
控制倒立摆底部车轮,使得它作加速运动。这样站在小车上(非惯性系)看倒立摆,它就会受到额外的力(惯性力)
,该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为
(2-1)
式中,假设控制车轮加速度与偏角成正比,比例为k1。显然,如果k1>g
,(是重力加速度)那么回复
图2.1.2
力的方向便于位移方向相反了。此外,为了使得倒
立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力,与偏角的速度成正比,方向相反。因此式(2-1)可变为
(2-2)
所以车模车轮加速度的控制算法为
所以我们需要测量小车的角度θ和角速度θ’即可控制直立。
2.1.3速度控制分析
车模电机的转速与施加在其上的电压成正比。通过传统的
PID
反馈控制,便可以精确控制电机的运行速度,从而控制车模的运行速度。不过前提是保持车身平衡。
2.1.4转弯控制分析
利用电磁线偏差检测信号分别与车模速度控制信号进行加和减,左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。
2.2
车模倾角检测
通过加速度计检测回来的数据与重力加速度比较,可以得到车身倾角,再对此信号进行微分便可以获得倾角加速度。但在实际车模运行过程中,由于车模本身的运动所产生的加速度会产生很大的干扰信号叠加在上述测量信号上,使得输出信号无法准确反映车模的倾角,尽管平滑滤波可以把波动滤掉,但是也会无法准确反映车模倾角变化,所以需要在加上一个陀螺仪检测角速度。
2.3整车布局
小车整体布局如图2.3所示
1)
机械结构方面:
①
电路板紧贴车身,电池放在车身后轮子稍上,降低重心;
②
采用高强度、低质量的碳素杆作为电磁传感器支架;
③
简化支架,单杆伸出,粘上一个横放的轻杆作为电感的支撑;
④
电磁传感器引出电感,装在支架上,其他部分装在车身后面,可以尽量减轻支架的质量,使得重心尽量靠近车轮;
⑤
陀螺仪和加速度计模块装在车身中间,保持水平,使得检测回来的数据
更加精确,并且使得左右转弯差异变小;
⑥
剪短不必要的连线,减轻车重。
2)在硬件方面:
力求电路构成简单,稳定性高;传感器的安装可靠,外界对系统电路的干扰小。硬件主要设计思路如下:主电路板外形贴合车身的边沿,安装时尽量贴近车底盘,降低重心;电路板布线尽量采用单回路布线,并且将数字地与模拟地分离,并且在容易引入干扰的器件旁加入旁路电容;将容易产生静电干扰的部分,接入电路板的模拟地中。
3)在软件方面:力求控制算法适合C车的特性,精确完成转向控制和速度,并具有较高的稳定性。采用K60作为控制核心,通过电感采集赛道信息,从而对电机进行控制;通过编码器反馈速度信息,实现对速度的控制。
图2.3
整车布局
2.4结构框图
根据两轮平衡小车设计方案,小车系统包括
1)
角速度检测;
2)
角加速度检测;
3)
路径检测;
4)
串口通信;
5)
速度检测;
6)
电机驱动。
这几大模块按照设计组合在一起构成了一个完整的平衡小车控制系统具体系统的框架如图1.3所示。
图2.4整体框架
5
第三章
系统机械结构设计与实现
第三章
系统机械结构设计与实现
3.1车模
图3.1
c车车模结构
车模型号:N286
电机:RN260-CN
38-18130
3.2
车模车身简化及固定
我们采用赛制规定的C车车模进行改装,将没有用的前轮及其支撑部件去掉,又将后轮悬挂缓冲支架去掉,从而简化车模,可以有更多空位安装需要的东西以及减轻车重。原来的车模后轮支架与底盘之间采用了活动连接方式,但为了保证车模直立的稳定性,需要这个车身变成刚体结构。所以我们用热熔胶在后轮支架与底盘之间的缝隙处进行粘接。但在跑的时候车身不稳,故改用废电路板将其固死,为防螺丝松掉,又用AB胶将缝隙粘死。整车如图3.2所示。
图3.2简化加固后的车模
3.3
陀螺仪及加速度计固定结构设计
陀螺仪安装主要分为直立陀螺仪的安装及转向陀螺仪的安装。直立陀螺仪的安装共有三种选择:安装在顶部,正中和底部。经实际测试,陀螺仪安装在高处,容易受到微小抖动的干扰,影响到车身倾角的检测,而底部需要放电池及电路板等重物,因此我们选择了一个比较正中的位置进行安装。如图3.3.1所示。
而转向陀螺仪对高度并不是很敏感,因此取一个左右适中的位置即可。如图3.3.2所示。
图3.3.1
直立陀螺仪安装
图3.3.2转向陀螺仪安装
3.4
路径传感器固定结构设计
为了车身的稳定,车的重心越靠近车轮越好,所以我们采用了轻质量但高强度的碳素杆做成支架,并且只把电感引出去水平的套在支架前段,作为探路所用。如图3.4所示。
图3.4电磁传感器支架
3.5
编码器的安装设计
飞思卡尔c车车模具有双电机,为了达到更精准的控速,我们选择在两个电机分别安装编码器用来测速。在尽量保持车身重量较轻的前提下,我们应选用安装方便,较为轻便的编码器。由于光电码盘的精度不高,并且体积较大,不适用于c车的使用。我们使用了制作轻巧的300线的编码器,编码器可方便的安装在车轮上部,与马达齿轮相互咬合,来达到精确的测速。编码器的安装如图3.5所示。
图3.5
编码器安装
3.6
主动轮松紧程度的调整
在实际调试过程中,我们发现主动轮的松紧程度影响比较大,并且轮轴的有无影响也比较大。主动轮过松,会造成轮子与地盘支架之间有间隙,轮子会左右移动,对转弯性能影响较大,而轮子过紧则会造成轮子转动受阻,增加电机的负荷,不利于小车的速度及转弯控制。而去掉轮轴,则会造成轮子晃动,两个轮子不在同一直线,转弯不稳定。最终我们保持轮轴,并调整轮子的松紧度至轮子可自由转动且不会左右松动。
11
第四章
硬件系统的设计与实现
第四章
硬件系统的设计与实现
4.1
硬件设计总体方案
智能车的硬件系统,主要包括控制电路,电源管理电路,电机驱动电路以及外围传感器构成,实现了信息采集与控制实现等功能。系统采用的主芯片是龙丘公司制作的MK60DN512VLL10P100管脚的核心板KinetisK60芯片,内已封装了包括看门狗等一系列外围电路。
4.2
系统电路的设计与实现
4.2.1
电源管理电路
小车系统中有多个检测模块和驱动模块,需要不同的电源电压,所以电源管理部分要分部完成对各个模块的供电。系统存在着功率电路与数字电路,为了更好的隔离干扰,使系统的稳定性更高,所以在电源设计方面要考虑分隔开数字地与模拟地。
当小车驱动电机在运动过程中,会在一定程度上拉低电池的电压。为了提高系统的性能,我们采用低压降的稳压芯片LM2940
LM2940具有高转换效率,低静态电流等优点,适合本系统工作特点。因为K60需要3.3V供电,因此用LM1117-3.3搭了3.3V稳压电路。另外,电磁检测电路我们采用了稳压芯片7806,产生6V供电。
本系统中,采用一路LM2940为无线模块等供电,一路7806为电磁检测模块供电,一路LM1117进行供电为单片机供电。6V供电如图4.2.2.1所示,5V供电如图4.2.2.2所示,3.3V供电如图4.2.2.3所示。
图4.2.2.1
6V供电
图4.2.2.2
5V供电
图4.2.2.3
3.3V供电
4.2.2
电机驱动电路
今年C车车模我们采用了传统的用Mos管搭成的H桥全桥驱动,全桥驱动可以输出两路PWM,并且允许通过较大电流,驱动能力强,稳定性好,如图4.2.3.1所示。
图4.2.3.1
电机驱动
由于Mos管比较多,因此在电路板上排布比较密集,如图4.2.3.2所示。
图4.2.3.2电路板上电机驱动排布
4.2.3
计数器电路
K60芯片只有一路低功耗脉冲累加通道,不能满足C车电路两路测速需求.如果不想占用资源而实现硬件计数,则需要用到DMA功能,通过读取DMA的循环计数器即可获得编码器脉冲值,从而用作速度计算,所以不需要特别的计数器,只需接个上拉电阻即可,如图4.2.4所示。
图4.2.4
计数器电路
4.2.4平衡传感器电路
我们采用的陀螺仪跟加速度计是集成模块,陀螺仪电路分别如图4.2.5.1所示,加速度计电路如图4.2.5.2所示。
图4.2.5.1
陀螺仪电路
图4.2.5.2加速度计电路
4.2.5
路径检测电路
路径检测分三个部分,谐振、放大、整流三个部分结合成一个电磁检测电路。具体电路如图4.2.6所示。
图3.2.6路径检测电路
4.3
防静电处理
由于KT板的特性,当智能小车在上面摩擦过后,会在赛道表面累积大量的静电。当小车在赛道上行驶的过程中,静电放电会对电路板的稳定性产生一定的干扰,严重时,引起单片机的复位和死机等问题。在空调室内的赛道,空气更加干燥,静电现象尤为严重。
为了更好地排除外界静电对智能车系统的干扰,我们采取了以下措施:
1)
因为小车底盘较低,底盘部分裸露的螺母会成为静电的释放源。我们采用绝缘胶布粘贴小车底盘,初步隔离静电
2)
在电路设计上,通过使布线更加讲究合理,并且在电源和易受干扰的地方加入旁路电容,进一步减少静电的干扰。对地覆铜,对引入的干扰能更好的吸收。
3)此时若依旧存在较大的静电干扰,那就要将小车上静电最强烈的地方接入电路板的地中,更好的吸收引入的干扰。在实际测试中,我们检测到编码器的支架和外壳部分产生的静电干扰最为严重,我们将其与电路板的模拟地线相连,有显著的改善
15
第五章
软件系统的设计与实现
第五章
软件系统的设计与实现
5.1主程序
5.1.1程序流程
5.1.2
PWM输出
包括两个子程序:
第一个程序:vcon
void
vcon(double
pwm)
{
uint32
dPWM;
dPWM=(uint32)pwm;
if(dPWM9999)
{
dPWM=9999;
}
if(dPWM9999)
{
RdPWM=9999;
}
//左边电机PWM限制
if(LdPWM9999)
{
LdPWM=9999;
}
//右边电机PWM输出
if(RdPWM
#include
“derivative.h“/*
include
peripheral
declarations/
#include
“includes.h“#include
“math.h“#include
#define
PIT0
0
#define
PIT1
1
#define
PIT2
2
#define
PIT3
3e
uint8
data1;
uint8
data2;
uint8
data3;
uint8
data4;
uint8
data_rec;
uint8
data_rec1;
uint8
data_rec2;
uint8
data_rec3;
/**************************/
//全局变量声明
extern
int
periph_clk_khz;
#define
ADchannel
16
uint8
cycle_flags
=
0;
uint16
result0A,result0B,result1A,result1B;
uint8
isr_flag=0;//PIT中断标志,为1时发生中段
uint32
run_counter;
#define
OS_SCI1_RATE
57600
//数据发送的波特率为57600
#define
OS_BUS_CLK80//总线频率为80MHz
int
car_motion_period=20;//车调速的周期
int
dead_value=0;//死区电压
double
angle[10],angle_dot[10];//外部需要引用的变量
//******************全局变量声明********************************
int
top_key_num=0,j;
int
key_start_flag=0;
unsigned
char
sendjiaodu;
int
send_angle;
int
send_jishu=0;
int
beepflag=0;
int
sudu[20];//
记录车的速度(路程)
int
sudu_L[20];
unsigned
char
data_rec,data_rec1,data_rec2,data_rec3;//接收数据
int
vol[15][10];//
八个传感器,记录10次历史值
float
pian,pian2,pian3;
short
delv1,delv2,delv3;
long
suibianjishu=0;//suibianjishu,随便计数,检测时间.
short
d_pwm[2]
=
{0,0};
float
a,he,cha;
float
y;
float
y_value;
float
d_y[4];
float
t;
float
value1,value2;
int
PWMstart=0;
int
set_v
=
0;
double
e1,e2;
char
isStart
=
0;
int
xianzhi;
int
jiaodu=0;
double
acc[10];
double
w[10];
double
utpwm;
int
Speed_period;
float
Lcountspeed=0;
float
Rcountspeed=0;
float
zonglucheng;
int
PWM_total;
int
display_Vcon_pwm;
int
delv1_R,delv2_R,delv3_R;
short
delv1_L,delv2_L,delv3_L;
int
speed_period;
float
R_PWM=0;
int
L_PWM=0;
unsigned
char
SCI1_flag;
//接收函数的标志位
unsigned
char
reveive_data;//接收到的数据
int
RValue,LValue;
int
send_send_period;
int
turn_pwm;
int
stop_flag,forward_flag,turn_flag,send_flag;
int
sudu_rec=860;//控速相关
float
R_PPWM,newpwm,oldpwm,deltapwm;
float
vset,vstart;
int
start_count=0;
int
endl=0;
int
dazhao;
int
swit[20];//拨码开关
int
a_switch[34];
int
sudu_receive=0;
int
stand_key_count=0;//静止开关检测延时
int
i=0;
uint16
ADValue,ADValue1,ADValue2,ADValue3;
int
speed_R;
int
speed_L;
int
beepfirst_flag=0;
float
piancha_zhongzhi=0;
int
startbeepflag=0;
int
goout=0;
char
turn_beep=0;
float
lingdian=0;
int
last_beep=0;
int
boma_flag=0;
unsigned
long
L=0;
unsigned
long
R=0;
float
er=0;//E为历史平均值
char
bflag=0;
double
lingdian_jiaozheng=0;
double
lingdian_sum=0;
int
lingdian_count=700;
int
testzhouqi=0;
float
max;
float
min;
//float
lishi[2]={0};
float
guaidian[81];
char
tubian=0;
int
q_zheng=0;
int
q_fu=0;
int
h_zheng=0;
int
h_fu=0;
unsigned
long
pre=0;
unsigned
long
now=0;
//方差检测
double
dy_test[400]={
0};
double
dy_sum=0;
double
dy_ave=0;
double
dy_fangcha;
double
dy_ans;
int
gengxin=0;
int
dy_zhouqi=30;
int
dy_jiange=1;
int
wan_cd_time=0;
int
wan=0;
int
sudu_overbeep=0;
//*******
/********************关于利用增量式计算左右电机的PWM以及PWM输出的程序********************/
void
vcon_R(int
vset)
{
float
dPWM,PPWM;//PPWM是为了可以与静止的utpwm相互结合而成的一个中间变量
delv3_R=delv2_R;
delv2_R=delv1_R;
delv1_R=vset-(Rcountspeed+Lcountspeed)/2;
dPWM=3*(delv1_R-delv2_R)+0*delv1_R+1.2*(delv1_R+delv3_R-2*delv2_R);//增量式PID控速
R_PWM+=dPWM;
//
if(R_PWM>0)
//R_PWM=0;
PPWM=R_PWM;
R_PPWM=-PPWM;
oldpwm=newpwm;
newpwm=R_PPWM;
}
void
switches()
{
char
switchcount;
char
luchengcount;
char
houchengsuducount;
//char
lingdiancount;
switchcount=15-(8*swit[3]+4*swit[2]+2*swit[1]+swit[0]);//开始设定速度
luchengcount=15-(8*swit[7]+4*swit[6]+2*swit[5]+swit[4]);//路程
houchengsuducount=15-(8*swit[11]+4*swit[10]+2*swit[9]+swit[8]);//后面速度
//lingdiancount=7-(4*swit[15]+2*swit[14]+1*swit[13]);//零点
if(boma_flag==0){
if(switchcount==0)//1111
15
sudu_rec=860;
else
if(switchcount==1)//1110
14
sudu_rec=920;
else
if(switchcount==2)//1101
13
sudu_rec=980;
else
if(switchcount==3)//1100
12
sudu_rec=1000;
else
if(switchcount==4)//1011
11
sudu_rec=1040;
else
if(switchcount==5)//1010
10
sudu_rec=1080;
else
if(switchcount==6)//1001
9
sudu_rec=1120;
else
if(switchcount==7)//1000
8
sudu_rec=1160;
else
if(switchcount==8)//0111
7
sudu_rec=1200;
else
if(switchcount==9)//0110
6
sudu_rec=1240;
else
if(switchcount==10)//0101
5
sudu_rec=1260;
else
if(switchcount==11)//0100
4
sudu_rec=1280;
else
if(switchcount==12)//0011
3
sudu_rec=1300;
else
if(switchcount==13)//0010
2
sudu_rec=1320;
else
if(switchcount==14)//0001
1
sudu_rec=1380;
else
if(switchcount==15)//0000
0
鏈