Arduino控制和读取风扇转速

任务说明:

改变风扇转速控制通风量,间接调整热交换过程。为了得到风扇转速和U值之间的关系曲线,需要读取风扇的转速。风扇有双线,三线和四线之分。双线需要通过读取电压间接计算转速,过程较复杂而且结果不精确,四线除了正负极还有tacho和PWM接口,可以读取和控制转速,但由于不易找到小尺寸风扇且价格较高,我选择使用只带tacho接口的三线风扇。

目前正在学习别人的案例并进行总结

改变ggplot中柱状图(geom_bar)的分类排序

在ggplot中使用柱状图(geom_bar),默认情况下是按照首字符排序的,而并非按照数据表格的行排序。下面这篇文章讲解了如果改变分类的排序:

http://kohske.wordpress.com/2010/12/29/faq-how-to-order-the-factor-variables-in-ggplot2/

文章有些老了,需要针对当前的R版本做适当的调整

Environment Access in R

在向ggplot传递参数的时,出现”non-numeric argument to binary operator”,就是无法辨认这个参数。

我猜测,默认情况下ggplot只在data frame内搜索,此时应该在ggplot中将environment这个参数设定为environment(),这样搜索参数的范围将扩大至整个范围。

http://www.inside-r.org/r-doc/base/environment
http://adv-r.had.co.nz/Environments.html
http://digitheadslabnotebook.blogspot.de/2011/06/environments-in-r.html

箱型图 ggplot2 boxplot

箱形图(英文:Box-plot)是一种用作显示一组数据分散情况的统计图,于1977年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、下四分位数及上四分位数。

Boxplot_vs_PDF 箱型图由一个长方形(即所谓的箱子)和两根从长方形延伸出的线组成,两根线的末端一般以一根短线结尾,它们有时候也被称为胡须或天线。位于长方形里边的线表示分布的中位数,也就是说这根线两边各存在50%的数。长方形的两端各代表下四分位数及上四分位数,也就是说,长方形内也包含了50%的数。下四分位数和上四分位数之间的距离被称为四分位间距(interquartile range),简称IQR。 根据John Tukey对天线末端位置的定义,它们距离各自箱型边界的距离不超过1.5倍IQR,当最大值或最小值在这个范围内时,则取最大值或者最小值。也就是为什么通常两根线长短不一的原因。如果在这个范围之外存在数值,被成为离群值(Outlier),它们将被单独表示出来。这种表达方法也是ggplot里boxplot默认的方法。 此外也可以选择带缺口的箱型图(notched box plot),它对基本的图形进行扩展,标示出1.58 * IQR / sqrt(n)位置,大约是所有数值95%的区间。 通过观察箱型图,人们可以迅速地了解数据的大致分布,比如50%数据分布的位置,大多数数据集中的范围,从中位线位置看出数据分布的对称性等。

References

McGill, R., Tukey, J. W. and Larsen, W. A. (1978) Variations of box plots. The American Statistician 32, 12-16.

40 years of boxplots

Box Plot: Display of Distribution

Grasshopper数据管理(Data Management)

数据类型(Types of Data)

参数(Patameters)用来储存信息,参数可以大致分为两类:可变数据(Volatile data)和不可变数据(Persistent data). 可变数据是从一个或者多个源参数(source parameters)继承的,并且在每次新答案(new solution)开始时被销毁和重新采集.不可变数据是由用户设定的某些固定值,在计算过程中不发生改变.如果参数和某个源物体连接,不可变参数将被忽略,但是不会被销毁.

不可变数据通过组件(Component)的菜单进行设置,不同类型的数据有各自相应的菜单.

 

数据继承(Data Inheritance)

如果参数不包含固定记录,它必须从别处获得继承. 除输出参数(output parameters)外的所有参数定义它从何处获得数据,大部分Grasshopper参数并不指明类型,也就是说类型之间的转换将自动完成,比如你可以将双精度类型参数(double parameter)连接到整数类型参数(integer source). 如果两种数据类型之间不存在预定义的转换方法,那么接收数据的参数将产生一个转换错误(conversion error). 比如你将一个面(Surface)指定给一个点(Point), 点参数会给出一个错误信息 (具体信息将在菜单中现实)并且标示为红色. 与此组件相连的下游组建也将被标示为错误(显示为红色),因为它们无法得到正确的值,即使他们本身不存在错误.

连接管理(Connection management)

在Grasshopper中,通过拖拽的方式将参数相连,从某个参数按住鼠标左键拖拽出一根连接线的动作被称为“grip”,此时连接线为虚线,当鼠标到达某个目标参数时,连接线变实,将鼠标左键松开,连接过程完成.从反方向同样可以完成这个过程.默认情况下,新的连接会取代原来存在的连接.但在按住Shift键的同时进行连接,那意味着给参数增加一个连接,按下Control键的同时进行操作将取消一个连接.取消某个连接可以通过菜单操作.

 

Reference:

Grasshopper Data Persistent Data Management

Grasshopper Volatile Data Inheritance

Grasshopper Data Stream Matching

New Data Matching in 0.9+

Comment from David Rutten