这是大规模数字集成电路在系统可编程领域的经典课程设计。
数字频率计是近代电子技术领域的重要测量工具之一,同时也是其他许多领域广泛应用的测量仪器。数字频率计是在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。数字频率计用于测量信号(方波,正弦波或其他周期信号)的频率,并用十进制数字显示,它具有精度高,测量速度快,读数直观,使用方便等优点。
一个用VHDL语言实现的实例如下:
-- Project Name: 恒精度频率计
-- Target Devices: FPGA or CPLD
-- Revision 0.01 - File Created
-- Comments: clk--系统工作时钟,2MHz
-------------reset--系统复位信号,高电平有效
-------------Fx--为待测信号
-------------FreqNx--为待测信号的计数值
-------------FreqNs--为标准信号的计数值
-------------Freq--为待测信号的频率
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
----------------------------------------------------------
entity Cymometer is
generic(clk_freq : integer := 2000000);--系统工作时钟频率
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
Fx : in STD_LOGIC; ----待测信号
FreqNs : out natural;
FreqNx : out natural);
--Freq : out natural);
end Cymometer;
----------------------------------------------------------
architecture Behavioral of Cymometer is
----------------------------------------
signal start : STD_LOGIC;--此信号为高电平时计数器开始计数
signal CTRL : STD_LOGIC;--CTRL信号为待测信号和门控信号产生的计数器启动信号
signal CNTx : natural;--待测信号计数器
signal CNTs : natural;--标准信号计数器
----------------------------------------
begin
--***************************************--
--产生一个门控信号,高电平有效
GateCtrl : process(clk)
---------------------------
variable CNT0 : integer range 0 to 2_097_152;--门控信号计数器
---------------------------
begin
if rising_edge(clk) then
if reset='1' then
CNT0 := 0;
else
CNT0 := CNT0 + 1;
end if;
---------
if reset='1' then
start <= '0';
elsif CNT0 < (clk_freq*3/4) then
start <= '1';
else
start <= '0';
end if;
end if;
end process GateCtrl;
--***************************************--
--产生CTRL信号,由待测信号和门控信号产生的计数器启动信号
CtrlGen : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CTRL <= '0';
else
CTRL <= start;
end if;
end if;
end process CtrlGen;
--***************************************--
--用两个计数器分别对标准信号clk和待测信号signal计数
----------------------------------
--计数标准信号,CTRL高电平期间有效
CountS : process(clk)
begin
if rising_edge(clk) then
if reset='1' then
CNTs <= 0;
elsif CTRL='1' then
CNTs <= CNTs + 1;
else
CNTs <= 0;
end if;
end if;
end process CountS;
----------------------------------
--计数待测信号,CTRL高电平期间有效
CountX : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CNTx <= 0;
elsif CTRL='1' then
CNTx <= CNTx + 1;
else
CNTx <= 0;
end if;
end if;
end process CountX;
--***************************************--
--CTRL下降沿将技术结果和测量值输出
CountOut : process(CTRL)
begin
if falling_edge(CTRL) then
if reset='1' then
FreqNs <= 0;
FreqNx <= 0;
-- Freq <= 0;
else
FreqNs <= CNTs;
FreqNx <= CNTx;
-- Freq <= (clk_freq / CNTs * CNTx);
end if;
end if;
end process CountOut;
end Behavioral;
下面是为上面的模块编写的测试平台,在Modelsim下仿真通过,因为数据量较大,建议不要使用Altera及ISE仿真。
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY tb IS
END tb;
ARCHITECTURE behavior OF tb IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT Cymometer
PORT(
clk : IN std_logic;
reset : IN std_logic;
Fx : IN std_logic;
FreqNs : OUT natural;
FreqNx : OUT natural;
Freq : OUT natural
);
END COMPONENT;
--Inputs
signal clk : std_logic := '0';
signal reset : std_logic := '1';
signal Fx : std_logic := '0';
--Outputs
signal FreqNs : natural;
signal FreqNx : natural;
-- signal Freq : natural;
-- Clock period definitions
constant clk_period : time := 500ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: Cymometer PORT MAP (
clk => clk,
reset => reset,
Fx => Fx,
FreqNs => FreqNs,
FreqNx => FreqNx,
-- Freq => Freq
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
--产生待测信号
Fx_process : process
begin
Fx <= '0';
wait for 2*clk_period;
Fx <= '1';
wait for 2*clk_period;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100ms.
wait for clk_period*10;
reset <= '0';
-- insert stimulus here
wait;
end process;
END;
参考原理M/T测频法。
第1节 引言 2
1.1 数字频率计概述2
1.2 频率测量仪的设计思路与频率的计算2
1.3 基本设计原理3
第2节 数字频率计(低频)的硬件结构设计4
2.1系统硬件的构成4
2.2系统工作原理图4
2.3AT89C51单片机及其引脚说明 5
2.4信号调理及放大整形模块7
2.5时基信号产生电路7
2.6显示模块8
第3节 软件设计12
3.1 定时计数 12
3.2 量程转换 12
3.3 BCD转换12
3.4 LCD显示15
第4节 结束语 16
参考文献 20
附录 汇编源程序代码28
数字频率计是一种基本的测量仪器。它被广泛应用与航天、电子、测控等领域。它利用VHDL硬件描述语言进行设计,并在EDA(电子设计自动化)工具的帮助下,用大规模可编程器件(CPLD)实现数字频率计的设计原理及相关程序。通过了Max+plusⅡ软件进行仿真、硬件调 ... 你可以去这个网 址看看
液压伺服系统设计
液压伺服系统设计
在液压伺服系统中采用液压伺服阀作为输入信号的转换与放大元件。液压伺服系统能以小功率的电信号输入,控制大功率的液压能(流量与压力)输出,并能获得很高的控制精度和很快的响应速度。位置控制、速度控制、力控制三类液压伺服系统一般的设计步骤如下:
1)明确设计要求:充分了解设计任务提出的工艺、结构及时系统各项性能的要求,并应详细分析负载条件。
2)拟定控制方案,画出系统原理图。
3)静态计算:确定动力元件参数,选择反馈元件及其它电气元件。
4)动态计算:确定系统的传递函数,绘制开环波德图,分析稳定性,计算动态性能指标。
5)校核精度和性能指标,选择校正方式和设计校正元件。
6)选择液压能源及相应的附属元件。
7)完成执行元件及液压能源施工设计。
本章的内容主要是依照上述设计步骤,进一步说明液压伺服系统的设计原则和介绍具体设计计算方法。由于位置控制系统是最基本和应用最广的系统,所以介绍将以阀控液压缸位置系统为主。
4.1 全面理解设计要求
4.1.1 全面了解被控对象
液压伺服控制系统是被控对象—主机的一个组成部分,它必须满足主机在工艺上和结构上对其提出的要求。例如轧钢机液压压下位置控制系统,除了应能够承受最大轧制负载,满足轧钢机轧辊辊缝调节最大行程,调节速度和控制精度等要求外,执行机构—压下液压缸在外形尺寸上还受轧钢机牌坊窗口尺寸的约束,结构上还必须保证满足更换轧辊方便等要求。要设计一个好的控制系统,必须充分重视这些问题的解决。所以设计师应全面了解被控对象的工况,并综合运用电气、机械、液压、工艺等方面的理论知识,使设计的控制系统满足被控对象的各项要求。
4.1.2 明角设计系统的性能要求
1)被控对象的物理量:位置、速度或是力。
2)静态极限:最大行程、最大速度、最大力或力矩、最大功率。
3)要求的控制精度:由给定信号、负载力、干扰信号、伺服阀及电控系统零飘、非线性环节(如摩擦力、死区等)以及传感器引起的系统误差,定位精度,分辨率以及允许的飘移量等。
4)动态特性:相对稳定性可用相位裕量和增益裕量、谐振峰值和超调量等来规定,响应的快速性可用载止频率或阶跃响应的上升时间和调整时间来规定;
5)工作环境:主机的工作温度、工作介质的冷却、振动与冲击、电气的噪声干扰以及相应的耐高温、防水防腐蚀、防振等要求;
6)特殊要求;设备重量、安全保护、工作的可靠性以及其它工艺要求。
4.1.3 负载特性分析
正确确定系统的外负载是设计控制系统的一个基本问题。它直接影响系统的组成和动力元件参数的选择,所以分析负载特性应尽量反映客观实际。液压伺服系统的负载类型有惯性负载、弹性负载、粘性负载、各种摩擦负载(如静摩擦、动摩擦等)以及重力和其它不随时间、位置等参数变化的恒值负载等。
4.2 拟定控制方案、绘制系统原理图
在全面了解设计要求之后,可根据不同的控制对象,按表6所列的基本类型选定控制方案并拟定控制系统的方块图。如对直线位置控制系统一般采用阀控液压缸的方案,方块图如图36所示。
图36 阀控液压缸位置控制系统方块图
表6 液压伺服系统控制方式的基本类型
伺服系统 控制信号 控制参数 运动类型 元件组成
机液
电液
气液
电气液 模拟量
数字量
位移量 位置、速度、加速度、力、力矩、压力 直线运动
摆动运动
旋转运动 1.阀控制:阀-液压缸,阀-液压马达
2.容积控制:变量泵-液压缸;变量泵-液压马达;阀-液压缸-变量泵-液压马达
3.其它:步近式力矩马达
4.3 动力元件参数选择
动力元件是伺服系统的关键元件。它的一个主要作用是在整个工作循环中使负载按要求的速度运动。其次,它的主要性能参数能满足整个系统所要求的动态特性。此外,动力元件参数的选择还必须考虑与负载参数的最佳匹配,以保证系统的功耗最小,效率高。
动力元件的主要参数包括系统的供油压力、液压缸的有效面积(或液压马达排量)、伺服阀的流量。当选定液压马达作执行元件时,还应包括齿轮的传动比。
4.3.1 供油压力的选择
选用较高的供油压力,在相同输出功率条件下,可减小执行元件——液压缸的活塞面积(或液压马达的排量),因而泵和动力元件尺寸小重量轻,设备结构紧凑,同时油腔的容积减小,容积弹性模数增大,有利于提高系统的响应速度。但是随供油压力增加,由于受材料强度的限制,液压元件的尺寸和重量也有增加的趋势,元件的加工精度也要求提高,系统的造价也随之提高。同时,高压时,泄漏大,发热高,系统功率损失增加,噪声加大,元件寿命降低,维护也较困难。所以条件允许时,通常还是选用较低的供油压力。
常用的供油压力等级为7MPa到28MPa,可根据系统的要求和结构限制条件选择适当的供油压力。
4.3.2 伺服阀流量与执行元件尺寸的确定
如上所述,动力元件参数选择除应满足拖动负载和系统性能两方面的要求外,还应考虑与负载的最佳匹配。下面着重介绍与负载最佳匹配问题。
(1)动力元件的输出特性
将伺服阀的流量——压力曲线经坐标变换
绘于υ-FL平面上,所得的抛物线即为动力元件稳态时的输出特性,见图37。
图37 参数变化对动力机构输出特性的影响
a)供油压力变化;b)伺服阀容量变化;c)液压缸面积变化
图中 FL——负载力,FL=pLA;
pL——伺服阀工作压力;
A——液压缸有效面积;
υ——液压缸活塞速度,
;
qL——伺服阀的流量;
q0——伺服阀的空载流量;
ps——供油压力。
由图37可见,当伺服阀规格和液压缸面积不变,提高供油压力,曲线向外扩展,最大功率提高,最大功率点右移,如图37a。
当供油压力和液压缸面积不变,加大伺服阀规格,曲线变高,曲线的顶点A ps不变,最大功率提高,最大功率点不变,如图37b。
当供油压力和伺服阀规格不变,加大液压缸面积A,曲线变低,顶点右移,最大功率不变,最大功率点右移,如图37c。
(2)负载最佳匹配图解法
在负载轨迹曲线υ-FL平面上,画出动力元件输出特性曲线,调整参数,使动力元件输出特性曲线从外侧完全包围负载轨迹曲线,即可保证动力元件能够拖动负载。在图38中,曲线1、2、3代表三条动力元件的输出特性曲线。曲线2与负载轨迹最大功率点c相切,符合负载最佳匹配条件,而曲线1、3上的工作点α和b,虽能拖动负载,但效率都较低。
(3)负载最佳匹配的解析法
参见液压动力元件的负载匹配。
(4)近似计算法
在工程设计中,设计动力元件时常采用近似计算法,即按最大负载力FLmax选择动力元件。在动力元件输出特性曲线上,限定
FLmax≤pLA=
,并认为负载力、最大速度和最大加速度是同时出现的,这样液压缸的有效面积可按下式计算:
(37)
图38 动力元件与负载匹配图形
按式37求得A值后,可计算负载流量qL,即可根据阀的压降从伺服阀样本上选择合适的伺服阀。近似计算法应用简便,然而是偏于保守的计算方法。采用这种方法可以保证系统的性能,但传递效率稍低。
(5)按液压固有频率选择动力元件
对功率和负载很小的液压伺服系统来说,功率损耗不是主要问题,可以根据系统要求的液压固有频率来确定动力元件。
四边滑阀控制的液压缸,其活塞的有效面积为
(38)
二边滑阀控制的液压缸,其活塞的有效面积为
(39)
液压固有频率ωh可以按系统要求频宽的(5~10)倍来确定。对一些干扰力大,负载轨迹形状比较复杂的系统,不能按上述的几种方法计算动力元件,只能通过作图法来确定动力元件。
计算阀控液压马达组合的动力元件时,只要将上述计算方法中液压缸的有效面积A换成液压马达的排量D,负载力FL换成负载力矩TL,负载速度换成液压马达的角速度 ,就可以得到相应的计算公式。当系统采用了减速机构时,应注意把负载惯量、负载力、负载的位移、速度、加速度等参数都转换到液压马达的轴上才能作为计算的参数。减速机构传动比选择的原则是:在满足液压固有频率的要求下,传动比最小,这就是最佳传动比。
4.3.3 伺服阀的选择
根据所确定的供油压力ps和由负载流量qL(即要求伺服阀输出的流量)计算得到的伺服阀空载流量q0,即可由伺服阀样本确定伺服阀的规格。因为伺服阀输出流量是限制系统频宽的一个重要因素,所以伺服阀流量应留有余量。通常可取15%左右的负载流量作为伺服阀的流量储备。
除了流量参数外,在选择伺服阀时,还应考虑以下因素:
1)伺服阀的流量增益线性好。在位置控制系统中,一般选用零开口的流量阀,因为这类阀具有较高的压力增益,可使动力元件有较大的刚度,并可提高系统的快速性与控制精度。
2)伺服阀的频宽应满足系统频宽的要求。一般伺服阀的频宽应大于系统频宽的5倍,以减小伺服阀对系统响应特性的影响。
3)伺服阀的零点漂移、温度漂移和不灵敏区应尽量小,保证由此引起的系统误差不超出设计要求。
4)其它要求,如对零位泄漏、抗污染能力、电功率、寿命和价格等,都有一定要求。
4.3.4 执行元件的选择
液压伺服系统的执行元件是整个控制系统的关键部件,直接影响系统性能的好坏。执行元件的选择与设计,除了按本节所述的方法确定液压缸有效面积A(或液压马达排量D)的最佳值外,还涉及密封、强度、摩擦阻力、安装结构等问题。
4.4 反馈传感器的选择
根据所检测的物理量,反馈传感器可分为位移传感器、速度传感器、加速度传感器和力(或压力)传感器。它们分别用于不同类型的液压伺服系统,作为系统的反馈元件。闭环控制系统的控制精度主要决定于系统的给定元件和反馈元件的精度,因此合理选择反馈传感器十分重要。
传感器的频宽一般应选择为控制系统频宽的5~10倍,这是为了给系统提供被测量的瞬时真值,减少相位滞后。传感器的频宽对一般系统都能满足要求,因此传感器的传递函数可近似按比例环节来考虑。
4.5 确定系统方块图
根据系统原理图及系统各环节的传递函数,即可构成系统的方块图。根据系统的方块图可直接写出系统开环传递函数。阀控液压缸和阀控液压马达控制系统二者的传递函数具有相同的结构形式,只要把相应的符号变换一下即可。
4.6 绘制系统开环波德图并确定开环增益
系统的动态计算与分析在这里是采用频率法。首先根据系统的传递函数,求出波德图。在绘制波德图时,需要确定系统的开环增益K。
改变系统的开环增益K时,开环波德图上幅频曲线只升高或降低一个常数,曲线的形状不变,其相频曲线也不变。波德图上幅频曲线的低频段、穿越频率以及幅值增益裕量分别反映了闭环系统的稳态精度、截止频率及系统的稳定性。所以可根据闭环系统所要求的稳态精度、频宽以及相对稳定性,在开环波德图上调整幅频曲线位置的高低,来获得与闭环系统要求相适应的K值。
4.6.1 由系统的稳态精度要求确定K
由控制原理可知,不同类型控制系统的稳态精度决定于系统的开环增益。因此,可以由系统对稳态精度的要求和系统的类型计算得到系统应具有的开环增益K。
4.6.2由系统的频宽要求确定K
分析二阶或三阶系统特性与波德图的关系知道,当ζh和K/ωh都很小时,可近似认为系统的频宽等于开环对数幅值曲线的穿越频率,即ω-3dB≈ωc,所以可绘制对数幅频曲线,使ωc在数值上等于系统要求的ω-3dB值,如图39所示。由此图可得K值。
图39 由ω-3dB绘制开环对数幅频特性
a)0型系统;b)I型系统
4.6.3 由系统相对稳定性确定K
系统相对稳定性可用幅值裕量和相位裕量来表示。根据系统要求的幅值裕量和相位裕量来绘制开环波德图,同样也可以得到K。见图40。
实际上通过作图来确定系统的开环增益K,往往要综合考虑,尽可能同时满足系统的几项主要性能指标。
4.7 系统静动态品质分析及确定校正特性
在确定了系统传递函数的各项参数后,可通过闭环波德图或时域响应过渡过程曲线或参数计算对系统的各项静动态指标和误差进行校核。如设计的系统性能不满足要求,则应调整参数,重复上述计算或采用校正环节对系统进行补偿,改变系统的开环频率特性,直到满足系统的要求。
4.8 仿真分析
在系统的传递函数初步确定后,可以通过计算机对该系统进行数字仿真,以求得最佳设计。目前有关于数字仿真的商用软件,如Matlab软件,很适合仿真分析。
一、 实验目的
1、 熟悉数字式频率计的基本工作原理。
2、 熟悉数字频率计中计数显示及控制等部分的综合设计及调试方法。
二、实验原理
数字频率计是测量电信号频率的仪器之一,其原理图如下所示:
......
被测信号经过放大整形成为脉冲信号,作为计数器的计数脉冲,计数器受控制门(闸门)的控制,闸门开启,计数器开始对输入的脉冲信号计数,若闸门开启的时间为1秒,则计数器累计的脉冲数就是被测信号的频率。在闸门关闭后,停止计数,计数器的状态写入锁存器,并通过译码器驱动数码管显示出测量值。这样,当再次测量(计数)时,数码管可以保持上一次的测得的数据。
三、 实验要求
1、 利用555定时器设计标准秒脉冲发生器电路。
2、 译码显示电路用实验箱中的四路数码管显示电路。
四、设计思路
根据实验原理框图,做如下设计:信号的放大部分可以用三极管放大电路来完成,而整形部分可用施密特触发器来完成,为简单起见,可用555来做。控制门用一个与门即可实现。两个单稳态触发器完全一样,均可用555来做。计数器用74LS160来完成,免去了接十进制计数器的麻烦(若用74LS161)。锁存电路用四路锁存器74LS75来完成。其输出可直接接到数电箱上的74LS247译码电路,进而显示结果。
在这次实验中,设计四位频率计,故需用四个74LS160和四个74LS75。
五、 实验器件
555定时器 74LS160 74LS75 74LS04 74LS00 电阻、电容若干
六、设计思路
这里主要说明一些参数的选择。
对施密特触发器只涉及到一个外接小电容,典型值为0.01uF。