现在的位置: 首页 > 综合 > 正文

划船器项目设计文档

2013年03月16日 ⁄ 综合 ⁄ 共 7039字 ⁄ 字号 评论关闭

 

 

一、商定力量和船速的关系,力量大(阻力大),换算的船速也大。这样不同级别的时间参数具有可比性。

       我的理解就是:商定不同的档位(阻尼)下速度之间的关系,即使得阻尼越大(使用的力也越大),船速也越大。

 

ps:力量大(阻力大)应该是指划船器调节到阻尼较高的档位时候的状况。

 即同样的力量下,高档位(阻尼较大)下船速的输出与低档位(阻尼较小)一样。

 

做功与速度关系?做功越多,速度也越快么?如果不是,请举个反例。

w=f×s=f×v×t

在f和t一定的情况下,w和v是正比关系。

反例:汽车爬坡,做功变大了,但速度却不一定提高了。

 

额定功率=速度*牵引力

速度和牵引力成反比。如果你速度过大,牵引力不够,你是不能够上坡的。

 

 

需要验证的:

1、在同一个档位下,完成500米距离,记录下其完成时间和做的总功,看两者是否具有线性关系??? 即总功越大,完成时间越短

 

 

1)试验目的:

验证concept2表头输出与我们自己搭建的系统平台输出的各参量是否具有高度线性相关性?

2)试验条件:

a)  concept2所带控制器PM3表头与我们自己搭建的系统平台同步采集、输出。

b)  测试距离为100米;低强度。

3)试验结论:

concept2的输出与我们自己搭建的系统平台输出参量呈现高度相关性。

Spss统计分析结果见如下表格:其中,PM3平均功率为concept2输出;功率、平均力量、平均速度为我们自己搭建的系统平台输出。

 

 

 

二、速度传感器的特性研究

目前采用的速度是力量乘以速度的立方根(根据船在水中所受的功率等于船速的三次方)

Skin Drag is proportional to the square of the velocity, so assuming that the Skin Drag dominates, the totalresistanceR can be written as

R=a*v*v

To maintain a constant velocity, the force applied must equal theresistance so there is no net acceleration or deceleration (Newton's 1st Law, actually,
just to complete the set). Hence the averagepower P required (=force x velocity) is

P=a*v*v*v

速度的计算公式:

 fDenominator=fVxLowByte*20000+fVxHighByte;
 fDenominator=fDenominator+2;
 fVx=0.1 * 2000000/fDenominator;

速度传感器的特性研究:

1、第一次连接usb时,如果飞轮此刻为静止状态,则fDenominator的输出为0;

2、飞轮开始运转,fDenominator的值会随着飞轮速度的提高不断减小。但是它有一个特性要注意:在飞轮由静到动的瞬间fDenominator值的输出非常大,大概有要大3个数量级,然后随着飞轮转速的增加,fDenominator输出越来越小(船速值就越来越大);

也就是fDenominator它的变化过程是m->m*1000->小于m的线性值这样一个过程,下面是一个实例输出:

 fDenominator=378641.000000
fVx=0.528202
fDenominator=378641.000000
fVx=0.528202
fDenominator=375961888.000000
fVx=0.000532
fDenominator=375961888.000000
fVx=0.000532
fDenominator=375961888.000000
fVx=0.000532
fDenominator=375961888.000000
fVx=0.000532
fDenominator=375961888.000000
fVx=0.000532
fDenominator=289815.000000
fVx=0.690091
fDenominator=289815.000000
fVx=0.690091
fDenominator=289815.000000
fVx=0.690091
fDenominator=289815.000000
fVx=0.690091
fDenominator=289815.000000
fVx=0.690091
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=282862.000000
fVx=0.707054
fDenominator=254734.000000
fVx=0.785127
fDenominator=254734.000000
fVx=0.785127
fDenominator=254734.000000
fVx=0.785127
fDenominator=254734.000000
fVx=0.785127
fDenominator=254734.000000
fVx=0.785127
fDenominator=231391.000000

····

 3、在不受外力的情况下,飞轮速度逐渐降至为0,此时速度传感器fVx的输出也有两种情况,第一种情况出现的概率比较大,fVx输出值在0.53左右(fDenominator输出值在380000左右);第二种情况出现的概率比较小,fVx输出值在0.13左右(fDenominator输出值在1460478左右)。且出现第二种情况的时候,fVx的输出值会在0.53和0.13这两个级别上不停跳变,但最终会输出在0.13这个级别。

经过试验验证,在0.53这个级别以下,fVx(或者fDenominator)的输出与船速无线性关系。以下是一个输出实例(0.55->0.14->0.5->0.13)

·····

fVx=0.551774
fDenominator=362465.000000          
fVx=0.551774
fDenominator=362465.000000
fVx=0.551774
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=1422023.000000
fVx=0.140645
fDenominator=361850.000000
fVx=0.552712
fDenominator=361850.000000
fVx=0.552712
fDenominator=361850.000000

·····

fVx=0.136941
fDenominator=1460478.000000
fVx=0.136941
fDenominator=1460478.000000
fVx=0.136941
fDenominator=1460478.000000
fVx=0.136941

4、在usb已经连上的情况下,再次启动定时器采集,分两种情况:其一,此刻飞轮状态为静止,则速度传感器fVx输出值(fDenominator输出值)为上次飞轮停止时fVx的输出值,如3)所述,该值有两种可能。要么在0.53这个数量级,要么在0.13这个数量级。其二,此刻飞轮在转动,则速度传感器fVx(fDenominator输出值)则直接输出当前速度值,具体多少与飞轮转速匹配。

 

 

 基于上面的讨论的第三点,可以认为fVx输出值在0.53级别(fDenominator输出值在380000左右)以下就认为是无意义的,因此我们在对原始信号进行过滤,即fDenominator值大于380000即认为无效,新的代码如下:

fDenominator=fVxLowByte*20000+fVxHighByte;
	
		if (fDenominator>400000)
		{
			fDenominator=m_fLastDenominator;
		}
		else
			m_fLastDenominator=fDenominator;
		fDenominator=fDenominator+2;
		fVx=0.1 * 2000000/fDenominator;

下面讨论在新的算法下,速度传感器的输出特性:

1、第一次连接usb时,如果飞轮此刻为静止状态,则fDenominator的输出为0;

2、飞轮开始运转,fDenominator的值会随着飞轮速度的提高不断减小。启动时候瞬间的大值被过滤了。

 3、在不受外力的情况下,飞轮速度逐渐降至为0,此时速度传感器fVx的输出仅有一种情况,即输出下限在0.53级别(fDenominator输出值在380000左右),大于380000的值被过滤了。

4、在usb已经连上的情况下,再次启动定时器采集,分两种情况:其一,此刻飞轮状态为静止,则速度传感器fVx输出值(fDenominator输出值)为上次飞轮停止时fVx的输出值,如3)所述,该值只有一种可能。在0.53这个数量级。其二,此刻飞轮还在转动,则速度传感器fVx(fDenominator输出值)则直接输出当前速度值,具体多少与飞轮转速匹配。

 

 

 在确定了速度的过滤方式后,下面就本人个体的最大参数输出如下,

最大力量拉桨看输出的力量和fVx输出的最大值:

fVx=4.686584
fForce=409.732788
fBoatVx=12.428930

fVx=4.618404
fForce=410.260132
fBoatVx=12.372572

fVx=5.010773
fForce=412.369507
fBoatVx=12.736304

 

回桨时候输出:

fVx=5.176653
fForce=1.568726
fBoatVx=2.000000

fVx=5.103603
fForce=-2.122681
fBoatVx=2.154435

fVx=4.979832
fForce=-0.013306
fBoatVx=0.000000

fVx=4.979832
fForce=0.514038
fBoatVx=1.259921

fVx=4.930723
fForce=-4.759399
fBoatVx=2.843867

fVx=3.698225
fForce=0.514038
fBoatVx=1.000000

 

 

 

距离更新算法:

fBoatMoveDis=fBoatVx*0.02;   //0.02是采样周期,即每隔0.02秒采样一次 即20毫秒采样一次 

其中,fBoatVx等于力量乘以fVx乘积的立方根

lPower=fVx*fForce;

fBoatVx=pow(lPower,1.0/3.0);

 

试验 500米用时1分34秒,相当于5.3米/秒,每0.02秒移动0.02*5.3=0.106米,部分输出如下:

fBoatVx=2.351335
fBoatMoveDis=0.047027    +
fBoatVx=2.466212
fBoatMoveDis=0.049324    +
fBoatVx=2.466212
fBoatMoveDis=0.049324   +
fBoatVx=0.000000
fBoatMoveDis=0.000000
fBoatVx=0.000000
fBoatMoveDis=0.000000
fBoatVx=4.702669
fBoatMoveDis=0.094053   +
fBoatVx=6.542133
fBoatMoveDis=0.130843    +
fBoatVx=8.508642
fBoatMoveDis=0.170173    +
fBoatVx=10.053051
fBoatMoveDis=0.201061    +
fBoatVx=10.599953
fBoatMoveDis=0.211999    +
fBoatVx=10.817940
fBoatMoveDis=0.216359   +
fBoatVx=10.902723
fBoatMoveDis=0.218054    +
fBoatVx=10.664822
fBoatMoveDis=0.213296    +
fBoatVx=10.434207
fBoatMoveDis=0.208684    +
fBoatVx=10.019960
fBoatMoveDis=0.200399    +
fBoatVx=10.138084
fBoatMoveDis=0.202762   +
fBoatVx=10.023279
fBoatMoveDis=0.200466    +
fBoatVx=10.176854
fBoatMoveDis=0.203537    +
fBoatVx=10.176854
fBoatMoveDis=0.203537   +
fBoatVx=10.360203
fBoatMoveDis=0.207204   +
fBoatVx=10.525260
fBoatMoveDis=0.210505   +
fBoatVx=10.546281
fBoatMoveDis=0.210926   +
fBoatVx=10.409656
fBoatMoveDis=0.208193   +
fBoatVx=10.394252
fBoatMoveDis=0.207885   +
fBoatVx=10.363308
fBoatMoveDis=0.207266   +
fBoatVx=10.180071
fBoatMoveDis=0.203601   +
fBoatVx=9.939636
fBoatMoveDis=0.198793   _
fBoatVx=9.847692
fBoatMoveDis=0.196954   _
fBoatVx=9.561011
fBoatMoveDis=0.191220   _
fBoatVx=9.298624
fBoatMoveDis=0.185972   _
fBoatVx=9.145774
fBoatMoveDis=0.182915   _
fBoatVx=8.954503
fBoatMoveDis=0.179090   _
fBoatVx=8.653498
fBoatMoveDis=0.173070   _
fBoatVx=8.622225
fBoatMoveDis=0.172444   _
fBoatVx=8.613248
fBoatMoveDis=0.172265   _
fBoatVx=8.499423 
fBoatMoveDis=0.169988   _
fBoatVx=8.377719
fBoatMoveDis=0.167554   _
fBoatVx=8.420246
fBoatMoveDis=0.168405   _
fBoatVx=8.339551
fBoatMoveDis=0.166791  _
fBoatVx=7.818846
fBoatMoveDis=0.156377  _
fBoatVx=7.126936
fBoatMoveDis=0.142539  _
fBoatVx=6.153450
fBoatMoveDis=0.123069  _
fBoatVx=4.431047
fBoatMoveDis=0.088621  _
fBoatVx=2.466212
fBoatMoveDis=0.049324   _
fBoatVx=1.259921
fBoatMoveDis=0.025198  _
fBoatVx=1.587401
fBoatMoveDis=0.031748   _

 

 

 

 

 

算法里面:

保存上一个采样值,当现采样值大于3800000,则将上一个采样值赋予当前采样值。这样下面的941433152输出都会默认是上一个采样值,即370548.000000。

 

 

目前船速变化:比赛开始前保持500米,

              比赛过程中,拉桨时变化大

                          回桨时变化小

 

 

全程船速:回桨时速度有时为0,因为力量为0。

 

抱歉!评论已关闭.