当采用FPGA产生PWM波形时,只需FPGA内部资源就可以实现,数字比较器的一端接设定值输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数器大于设定值时输出高电平,这样[fuzzy_inference.rar] -vhdl
模糊PID
控制器模糊推理,推理结果:直接用经验值输出。[A_real-time_adaptive_PID_controller_step_motor.rar] - 传统PID控制器通常难以满足多变量、非线性、强耦合的
步进电机动态响应和精确调速要求,结合传统PID控制和模糊控制及遗传算法(GA)整定PID参数的优点,设计基于模糊遗传算法的实时自适应步进电动机PID控制器,充分发挥传统和智能控制策略各自的优势。仿真结果表明,该实时自适应步进电动机PID[Fuzzy_PID_Control_of_Stepping_Motor.rar] - 摘要:由于步进电动机调速系统具有非线性等特点,使得利用简单模糊控制与传统PID控制精度不高,因此文中提出利用模糊PID控制器实现对步进电动机调速系统进行控制的方法,并设计了模糊PID控制器。文中首先建立了步进电动机的数学模型,并根据数学模型推导了其传递函数 然后介绍了模糊PID控制器结构,以[pid_controler_latest.tar.gz] - PID控制器的verilog实现,做闭环控制器的人可以参考[fuzzy_inference.rar] -vhdl模糊PID控制器模糊推理,推理结果:直接用经验值输出。[FPGA-Based_PID_Controller_Implementation.rar] - this paper describes implementation of PID controller on FPGA platform usingvhdl.[tec_control_pgfa.rar] - 使用fpga基于积分分离的pid算法进行温控的程序,经实验证明很稳定[PIDcontrolbook2.rar] - 微分器:利用数字锁相环进行位同步信号提取的关键模块
举个简单点的例子,如下。
设计一个4bit的计数器,在记到最大值时输出一个信号
module counter_16 ( input clk, input rst_n, input cnt_in ,output reg cnt_out )
reg [3:0] cnt
always @ (posedge clk or negedge rst_n) begin
if (~rst_n) cnt <= 4'b0
else if (cnt_in) cnt <= cnt +1'b1
else cnt <= cnt
end
always @ (posedge clk or negedge rst_n) begin
if (~rst_n) cnt_out <= 1'b0
else if (cnt_in &&cnt == 4'b1111) cnt_out <= 1'b1
else cnt_out <= 1'b0
end
endmodule
这实际上设计了一个16进制计数器其中的一位,你可以例化多个相同模块,将低位的cnt_out连接到高位的cnt_in,级联成一个任意位数的16进制计数器。
你前边说
按下btn[0],做减法
按下btn[1],做加法,结果后来程序又成了s来决定加还是减,你干脆把s接到按键上,不按下加,按下减就可以了。
还有需要注意的是,你的输入input[7:0]sw 应该接到拨码开关之类的输入上面,若你只有四个拨码开关,可以在程序中零其余四个为0(接地),拨码开关给四个1排列下就有不同的数值了。
不懂再问。
评论列表(0条)