pymongo实现控制mongodb中数字字段做加法的方法

时间:2023-05-01 07:33:32 其他范文 收藏本文 下载本文

pymongo实现控制mongodb中数字字段做加法的方法(通用2篇)由网友“Lucille”投稿提供,下面是小编精心整理的pymongo实现控制mongodb中数字字段做加法的方法,希望能够帮助到大家。

pymongo实现控制mongodb中数字字段做加法的方法

篇1:pymongo实现控制mongodb中数字字段做加法的方法

作者:pythoner 字体:[增加 减小] 类型:

这个非常实用,比如我们需要给文章做访问统计,可以设置一个数字字段:hit,然后每次点击后给改字段增加1即可

import pymongo#导入pymongo 模块conn = pymongo.Connection#连接本地mongodb数据库db=conn.database #database为数据库名称collection = db.article#article为collection名称,相当于mysql里的表名collection.update({‘_id‘:ObjectId(id),‘$inc‘:{‘hit‘:1}})# 为hit字段增加1

希望本文所述对大家的Python程序设计有所帮助,

篇2:数字悬浮控制系统中的降噪方法及实现

数字悬浮控制系统中的降噪方法及实现

摘要:为抑制电磁噪声对悬浮控制系统的影响,介绍了一种通过避开噪声持续时间进行A/D采样的方法,详细讨论了该方法的原理与实现。实践表明,它能有效地防止噪声引入控制系统,提高系统的性能

关键词:悬浮控制 降噪 A/D采样 FPGA

在磁浮列车的工程实践中,电磁噪声的存在明显降低了悬浮控制系统的性能,导致列车转向架振动,同时电磁铁因为电流变化迅速会产生很大的噪声,因而必须采取措施减小噪声的影响。但是,一般的滤波器设计并不能很好地解决问题。本文在分析传感器信号中噪声特性的基础上,提出了通过避开主要噪声持续时间进行A/D采样的方法。实验证明了该方法的有效性和实用性。

(本网网收集整理)

1 系统组成

悬浮控制系统由DSP、FPGA、A/D转换器、传感器、功率斩波器和电磁铁等单元组成。控制的目的是保持电磁铁与轨道之间的距离恒定,为磁浮列车提供稳定的支撑。系统结构见图1。其中A/D转换器采用MAXIM公司的MAX125,它是一种带同步锁存的14位4输入A/D转换芯片,4路同时工作时最高采亲友速率为76ksps,用于采样传感器的输出信号。DSP采用ADI公司的ADSP2181,用于控制算法的计算。FPGA采用ALTERA公司的EPF6016,用于产生PWM波和实现一些辅助功能。传感器包括间隙传感器和电流传感器。功能驱动彩IGBT组成的半H桥网络,如图2所示。功率管T1、T2由PWM波形驱动。PWM波为高电平时导通,低电平时关断,功率管关断时通过功率二极管D1、D2续流。图中的A是吸引网络,防止反冲电压过高损坏器件。该电路的特点是:当一个周期内T1、T2导通时间小于50%时,电磁铁上电流为0。

2 降噪算法原理

在悬浮控制系统中,噪声具有其自身的显著特片。观察间隙、电流等传感器的输出信号可以看到,除了幅值不大的白噪声外,主要是与斩波器PWM频率相关的脉冲噪声。图3是试验中示波器测量到的波形,其中2通道显示的FPGA输出的PWM驱动波形,1通道显示的是间隙传感器的输出波形。从该图可以看出二者之间的对应关系:传感器输出信号上的噪声在每个PWM周期内出现两次,分别在PWM电平翻转(低-高,高-低)1μs之后开始出现,时间大约持续3μs.

该噪声是由功率管开关动作引起的,幅值很大是影响悬浮性能的主要噪声。它并不是白噪声,在时域上它是具有很大能量和一定宽度的脉冲,一旦被采样到,就会对控制性能产生较大影响,甚至会导致系统失控;在频域上,它的频谱分布在从低频到高频的较大范围内,一般的滤波方法对其无能为力。

通常采用多次采样取中间值的办法来消除强噪声的影响。这种方法在克服噪声方面是有效的,但存在两个缺点:(1)信号采集所需时间长,影响总的计算时间;(2)得出的信号序列不是等间隔的,无法对信号进行差分运算。这些缺点直接影响了控制器的设计,因而必须寻找新的解决途径。

如前所述,悬浮控制系统中强噪声出现的时刻与PWM波驱动信号密切相关。下面分析FPGA中PWM波的产生机理。FPGA中设置了两个计数器,计数器1(TM1)产生固定频率的脉冲,即PWM波的频率,系统中是20kHz;计数器2(TM2)的计数值由DSP写入,对应PWM波的高电平宽度,即控制量。参照图4,当TM1计满时会同时触发下列动作:(1)PWM波的输出翻转为高电平,驱动IGBT;(2)启动TM1从0开始计数;(3)启动TM2从0开始计数。而当TM2计满后,会触发PWM波的输出翻转为低电平,关断IGBT。

从图4中可以看出两点:(2)对应TM1的计满脉冲P11、P12...的噪声是周期性的,且与PWM周期相同;(2)对应TM2的计满脉冲P21、P22...的噪声也是每个PWM周期出现一次,但由于TM2每次计数的值不同,噪声不是周期性的。

基于以上分析,本文提出了如下A/D要样算法:

(1)在每个PWM周期内对信号进行一次A/D采样。

(2)在FPGA内设置第三个计数器TM3。

(3)当TM1的计满脉冲到来时,启动TM3从0开始计数。

(4)TM3的计数值设为5μs,用它的计满脉冲去启动A/D转换。

(5)A/D芯片完成转换后,通过中断通

知DSP读取数据。

该算法的优点是:

(1)每个PWM周期采样一次信号,则采样频率为20kHz。而磁悬浮控制系统的频带比较窄,ff system<< fsample成立,可见这样的采样频率充分满足控制的要求。

(2)PWM波的上升是周期性的,因而A/D芯片启动转换的'时间也是周期性的,采样到的数据是等间隔的。

(3)A/D芯片MAX125有锁存功能,锁存模拟信号大约需要1μs,在算法中,锁存动作在PWM上升沿后的第5μs开始,第6μs结束。从图3可以看出,这个时间段内模拟信号上的强噪声已经消失,不会被采样到。这就是算法的核心思想――避开强噪声再进行采样。

那么,会不会出现由于PWM的有效电平持续时间过短,导致A/D采样到IGBT关断动作产生的强噪声呢?存在这种可能。但这可以通过在控制算法中采取措施避免。当PWM波的高电平占空比小于50%的时候,电磁铁上没有电流。因此可以在控制算法中设定一个PWM波高电平占空比的下限,这里取30%。这样丝亮不会影响控制结果。PWM频率为20kHz,则每个PWM周期最少输出15μs的高电平。而A/D芯片在PWM波翻转成高电平后的第5μs到第6μs之间进行信号获取,完全避开了IGBT关断动作的影响。

3 算法实现

在FPGA中设置一个定时器,设置计数周期为5μs。当PWM电平由低到高翻转时,启动计数器开始计数。计满5μs以后启动A/D转换。A/D转换完成以后通过中断通知DSP读取A/D转换的结果。具体设计见图5。

图5

FPGA电路逻辑说明:

输入信号为pwm、data[7..0]、wr_addr1、clk_20m,输出信号为ad_start。其中pwm为频率20kHz的PWM波,data[7..0]是dsp的低位数据总线,初始化的时候通过它向寄存器写入数值0x64(即十进制的100,1s 20Mх100=5μs),wr_addr1是写出地址信号,clk_20m是频率为20MHz的时钟信号。输出信号ad_start用于启动A/D转换。

在一个PWM周期到来的时候,依次产生以下动作:(1)pwm信号由低变高,触发D触发器,使能计数器,开始计数。(2)当计数器计到100时,它的输出q[]全部变为0,从而触发与其相连的D触发器,Q输出变为0。(3)下一个clk_20m的时钟将该触发器的Q输出恢复成1。这样就在ad_start信号线上形成了一个脉冲,用于启动A/D转换。(4)与此同时,Q变使得与cnt_en相连的D触发器输出1,禁止计数器计数,直到下一次pwm波形变高。

本文所讨论的降噪算法及其硬件实现在磁浮列车单转向架上进行了试验。通过对比可以看出,采用降噪算法以后悬浮系统的振动明显降低,噪声也减小到能够承受的范围。以上通过分析系统中的噪声特性,设计了一种通过避开主要噪声持续时间进行采样的降噪算法,并通过FPGA进行了实现。通过实验,证明该方法明显降低了噪声对系统的影响。通过实验,证明该方法明显降低了噪声对系统的影响,提高了控制性能。该方法适用于采用半桥驱动拓扑结构一类的功率放大电路。

nosql数据库 tiger

冷挤压操作规章制度

数据挖掘工程师工作的基本职责描述

加强Windows安全性

java企业的面试笔试题

一份比较全的PHP笔试题

计算机与网络英语词汇(A2)

9月计算机二级Access考前试题及答案

9月计算机二级《公共基础》模拟试题

windows服务器防止asp木马详细教程Windows服务器操作系统

pymongo实现控制mongodb中数字字段做加法的方法
《pymongo实现控制mongodb中数字字段做加法的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【pymongo实现控制mongodb中数字字段做加法的方法(通用2篇)】相关文章:

Python使用稀疏矩阵节省内存实例2023-07-12

计算机实验报告2023-03-03

ACCESS学习日记2023-02-07

9月全国计算机等级考试二级VFP笔试试卷2022-12-03

计算机网络综合实验报告参考2022-05-26

富士康Java开发面试题目2024-01-29

Java架构师的岗位职责2023-11-12

大学大学计算机实验报告2023-04-10

python实现中文输出的两种方法2023-08-15

Ubuntu安装ibus google拼音2023-05-06

点击下载本文文档