基于LabVIEWFPGA的三相锁相环设计与实现摘要:针对传统 FPGA 模式开发的锁相环在实时人机交互方面的不足,设 计 了 基 于 LabVIEW FPGA 技术的三相锁相环;方 案 以 sbRIO-9631模块为硬件平台,利用 LabVIEW 编程控制 FPGA 逻辑,在 FPGA 中分三级流水线实现了基于dq变换的锁相环算法,并通 过 FIFO 实时上传采集信号、锁定相位至 PC机,最后在 PC机上实现对锁相环性能分析、PI参数调控和1 三相锁相环模型 三相锁相环是基于静止坐标变换和旋转坐标变换 (dq变 换)的矢量变换实现的 VCO 反馈控制。基于dq变换的改进型 锁相环模型,在dq变换的基础上提取正序分量进行 VCO 反馈 控制,以抑制电压不 平 衡 的 扰 动[4-5],如 图1所示。三相 信 号 首先经过静止坐标变换到aβ坐标系μa、μβ,然后经过 T/4延时 单元和计算单元计算出三相信号的正序分量变换到aβ坐 标 系 上的μap 、μβp ,此时μap 、μβp 是不带电压畸变干扰的分量,对 其进行旋转坐标变换得到μd、μq。 uq =k*sin(ωt-ω0t) (1) μq 的表达如式 (1)所 示,k为与输入电压有关的数,w、 w0 分别为输入信号角频率和锁定信号角频率。当μq 由交流变 量变为直流分量时,w=w0,锁 相环完 成 鉴 相,经 过 VCO 控 制最终锁定相位θ。 2 方案设计 系统方案如图2所示,包括三相信号的输入、信号锁相和 实时调控3个部分。其中信号采集和锁相处理在sbRIO-9631 模块 实现,利 用sbRIO-9631高速运行的特点,对 三 相信 号 进行采集、锁相和输出;PI参数和θ作为 FPGA 和 PC机的共 享变量实现数据交互,由PC机设置PI参数、
上传时间: 2022-02-18
上传用户:XuVshu
闭环步进参数:主控芯片:航顺HK32F030C8T6驱动芯片:两颗东芝TB67H450(最大电流3.5A)编码器芯片:麦歌恩超高速零延时AMR编码器MT6816高速光耦:东芝双通道TLP2168工作电压:12-30V(推荐24V)工作电流:额定2A(42步进)2.5A(57步进)最大3.5A控制精度:小于0.08度电子齿轮:4、8、16、32(可任意设置)原理图:PCB:
上传时间: 2022-02-28
上传用户:
电子书-十天学会单片机实例100.pdf//实例 4:用单片机控制一个灯闪烁:认识单片机的工作频率 #include<reg51.h> //包含单片机寄存器的头文件 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) //两个 void 意思分别为无需返回值,没有参数传递 { unsigned int i; //定义无符号整数,最大取值范围 65535 for(i=0;i<20000;i++) //做 20000 次空循环 ; //什么也不做,等待一个机器周期 } /******************************************************* 函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数) ********************************************************/ void main(void) { while(1) //无限循环 { P1=0xfe; //P1=1111 1110B, P1.0 输出低电平 delay(); //延时一段时间 P1=0xff; //P1=1111 1111B, P1.0 输出高电平 www.91
标签: 单片机
上传时间: 2022-03-19
上传用户:kingwide
参考 FreeRTOs,orq怎样工作小节获取多任务的基本概念任务和联合程序文档提供了怎样判断何时适合以及何时不适合使用联合程序的方法,下面是简单的总结。注意一个系统可以只使用任务、或者只使用联合程序、或混合使用-但是任务和联合程序使用不同的API函数,因此一个队列(或者信号)不能用于从任务传递数据到联合程序,反之亦然。任务"的特性FreeRTOS低于V4.0.0.0的版本只允许实时系统的结构以一组任务的方式组成,这是RTOS调度的传统模式。简评 In brief:一个使用RTos的实时应用系统可以由一组独立的任务组成,每个任务执行它自己的内容而不依赖于其他任务或者调度器。在任何时候只有个任务可以被执行,调度器负责决定哪个任务应当被执行。调度器反复启动和停止任务(切换任务),因为个任务不清楚调度器的活动,所以在任务切换时保证处理器内容不变(寄存器值、堆栈等)就是实时内核调度器的工作。要做到这点每个任务都需要使用自己的堆栈,当任务切换时运行的参数保存到堆栈中任务再次运行时就可以从堆栈中恢复参数。参考 FreeRTOs怎样工作小节获得更多内容。就绪的任务是那些可以执行(没有被阻塞或暂停),但是因为其他相同或更高优先级任务正在运行造成还没有运行的任务。阻塞当一个任务等待临时事件或外部事件时它就是处于阻塞状态。例如,任务调用 VAsk Delay(),它将被阻塞(置为阻塞状态)直到超过延时时间个临时事件。任务也可以阻塞等待队列和信号事件。阻塞状态的任务般有一个超时时间,超时后任务将解锁。阻塞的任务不会参与调度。
标签: freertos
上传时间: 2022-03-19
上传用户:kingwide
HX711_1Kg#include "HX711.h"float Weight = 0;void setup(){ Init_Hx711(); //初始化HX711模块连接的IO设置 Serial.begin(9600); Serial.print("Welcome to use!\n"); delay(3000); Get_Maopi(); //获取毛皮}void loop(){ Weight = Get_Weight(); //计算放在传感器上的重物重量 Serial.print(float(Weight/1000),3); //串口显示重量 Serial.print(" kg\n"); //显示单位 Serial.print("\n"); //显示单位 delay(1000); //延时1s}
上传时间: 2022-03-20
上传用户:
随着科技的飞速发展,自动化已经运用在了生活中的方方面面,而路灯就是一个很好的例子。如何能够利用51单片机作为中央处理器实现路灯的节能是本设计的主要内容。通过书本知识学习、指导老师的辅导以及资料文献的查阅,确定51单片机为主要芯片,然后因为要实现声光控功能,那就必须使用到光敏电阻和驻极体话筒电阻来实现光和声音转换为电信号,利用单片机最小系统模块、声控模块、光控模块等几大模块为主的硬件来实现本次设计。本设计分别通过利用声控和光控模块的驻极体话筒和光敏电阻将声音信号和光信号通过转换为51单片机能够识别的电信号来实现声光控功能。通过运用所学知识和必要绘图仿真编程软件绘制出系统原理图、整体电路图程序流程图,完成系统电路设计、光敏传感器模电变換设计、声控整流滤波放大并进行程序编写、仿真、硬件调试等,终于设计实现了利用51单片机使白天由光控电路起作用控制灯不亮,晚上由声控电路起作用控制开关闭合灯亮,并且延时一段时间熄灭从而达到节能环保的目的,最终达到本次论文的要求。关键词:51单片机光控电路声控电路光敏电阻驻极体话筒在学校,机关,厂矿企业等单位的公共场所以及居民区的公共楼道,长明灯现象十分普遍,这造成了能源的极大浪费。另外,由于频繁开关或者人为因素,墙壁开关的损坏率很高,增大了维修量,浪费了资金。而本课题正是声光控制路灯的设计,它设计出一种电路新颖,安全节电,结构简单,安装方便,使用寿命长的声光双控白炽灯节能路灯,同时,这可加强对模拟电子技术和数字电子技术的理解和巩固。以此达到节能环保的作用
上传时间: 2022-03-30
上传用户:
本文介绍了基于SG3525的全桥逆变SWPM控制波形电路,包括正弦波发生电路、整流电路、SWPM脉冲产生电路、延时死区调整电路。该电路简单、易于实现,为正弦波逆变器SWPM电路设计提供一种借鉴。
上传时间: 2022-04-03
上传用户:
宏晶 STC15F2K60S2开发板配套软件源码 基础例程30例/**********************基于STC15F2K60S2系列单片机C语言编程实现使用如下头文件,不用另外再包含"REG51.H"#include <STC15F2K60S2.h>***********************/#include "STC15F2K60S2.H"//#include "REG51.H" //sfr P4 = 0xC0;#define uint unsigned int #define uchar unsigned char /**********************引脚别名定义***********************/sbit SEL=P4^3; // LED和数码管选择引脚 高:LED有效 低:数码管有效 // SEL连接的单片机引脚必须为带有上拉电阻的引脚 或将其直接连接VCC#define data P2 // 数据输入定义 /**********************函数名称:Delay_1ms功能描述:延时入口参数:unsigned int t 表示要延时t个1ms 出口参数:无备注:通过参数t,控制延时的时间长短***********************/void Delay_1ms(uint t){ uchar j; for(;t>0;t--) for(j=110;j>0;j--) ;}/**********************函数名称:Led_test功能描述:对8个二极管进行测试,依次轮流点亮8个二极管入口参数:无出口参数:无备注: ***********************/void Led_test(){ uchar G_value=0x01; // 给变量赋初值 SEL=1; //高电平LED有效 while(1) { data=G_value; Delay_1ms(10000); G_value=G_value<<1; if(G_value==0x00) { data=G_value; Delay_1ms(10000); G_value=0x01; } }}/***********************主函数************************/void main(){ ///////////////////////////////////////////////// //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为 // 高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用 //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 // P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 ///////////////////////////////////////////////// P4M1=0x00; P4M0=0x00; P2M0=0xff; P2M1=0x00; //将P2设为推挽 Led_test(); }
标签: STC15F2K60S2
上传时间: 2022-05-03
上传用户:
一、 实验目的使用 51单片机的八位数码管顺序显示自己的学号。掌握 C 语言、汇编语言两种编程单片机控制程序的方法。掌握使用 Keil 4 或 Keil 5 软件编写、编译、调试程序的方法。掌握使用 Proteus 软件绘制电路原理图、硬件仿真和程序调试。二、实验设备笔记本电脑51 单片机(普中科技)八位数码管(单片机上已集成)应用程序:Proteus 8.0、Keil uVision5、stc-isp-v6.88E三、实验原理(1)数码管数码管按段数可分为七段数码管和 8 段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容。按能显示多少个(8),可分为 1 位、2位、3位、4位、5 位、6位、7 位等数码管。按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。(2)51单片机单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU、随机存储器 RAM、只读存储器ROM、多种 I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。MSC-51 单片机指以 8051为核心的单片机,由美国的 Intel 公司在 1980 年推出,80C51 是 MCS-51系列中的一个典型品种;其它厂商以 8051为基核开发出的CMOS 工艺单片机产品统称为 80C51 系列。本实验中我使用普中科技的 51 单片机来点亮八位数码管并使其显示我的学号(20198043)。四、 实验 过程(1)熟悉数码管使用 Proteus 软件构建电路图,学会如何点亮数码管,熟悉如何使数码管显示不同的数字(0-9)。我们可以按照上面的原理图让对应的段导通,以显示数字。对于共阳数码管,若显示数字 0,可以让标号为 A,B,C,D,E,F 的段导通,标号为 G,H 的段不导通,然后将阳极通入高电压,即显示数字 0。代码举例如下:最后效果如下,成功点亮一个数码管。经过更多尝试和学习,学会使多位数码管显示多位数字。结果举例如下:(2)多位数码管显示学号为了显示我们学号,就不能只使用一位数码管,需要使用八位数码管,相较于单位数码管,多位数码管更加复杂,驱动函数有很大区别。多位数码管使用同一组段选,不同的位选,因此就不能够一对一地固定显示,这就需要动态扫描。动态扫描:利用人眼视觉暂留,多位数码管每次只显示一位数字,但是切换频率大于 200HZ(50 × 4),这样就能让人产生同时显示多个数字的错觉。具体操作是轮流向数码管送字形码和相应的位选。一个完整的驱动程序不只以上这些,一个完整的数码管驱动有 6部分:1. 码表(ROM):存储段码(一般放在 ROM中,节省 RAM空间),例如数字 0的段码就是 0xC0,码表则包含 0-9的段码2. 显存(RAM):保存要显示的数字,取连续地址(便于查表)3. 段选赋值:通过查表(码表)操作,将显存映射到段码4. 位选切换:切换显示的位置5. 延时:显示的数字短暂保持,提升亮度6. 消影:消除切换时不同位置互相影响而产生的残影
上传时间: 2022-06-08
上传用户:canderile
本文所研究的课题为电磁感应加热控制系统的设计与实现。文章介绍了电磁感应加热的工作原理,系统预设功能要求及具体实现方案,分析了系统硬件电路和控制软件设计的整个过程,最终研制出一款功能完备、人机交互友好、工作稳定、性能优良的电磁感应加热系统。 该系统硬件电路部分主要包括主工作电路,IGBT驱动电路,同步电路和功率整定电路,锅具检测电路,电源电路,各种保护电路及主控制电路。保护电路具体包括上电延时保护IGBT,整流桥输出过压保护,IGBT集电极过压保护,市电过压、欠压保护,负荷电流过大保护,IGBT过温保护,锅底过温保护。主控制电路采用三星单片机作为主控芯片,通过调节PWM信号占空比控制输出功率。系统主要实现了功率控制、定时/预约、无锅检测、暂停、异常报警(无锅报警、市电过压/欠压报警、负荷电流过大报警、IGBT温度传感器失效报警、IGBT温度过高报警、锅底温度传感器失效报警、锅底温度过高报警)等功能,设置了6个按键可供用户操控,配置的液晶显示屏可以实时显示系统当前状态信息。 该系统控制软件设计部分,依据模块化程序设计思想,把系统预设功能需求划分为各个功能模块,然后分别设计了各功能模块的软件,最终完成了系统控制软件的设计。实现了系统的智能化,包括功率自动调节匹配,锅具自动检测,定时控制,预约时间到自动开机,异常自动保护报警,液晶屏实时显示系统状态信息。经过反复对系统软硬件联调,测试系统性能,结果表明本控制系统运行安全、稳定、可靠,达到了设计要求。
上传时间: 2022-06-09
上传用户:20125101110