最适中的解决办法 就是 从实际(项目应用)出发,PID的计算结果X,从而引起 PWM 100%输出的时候。相反 PID的计算结果Y,从而引起 PWM 0%输出的时候。 确定这个后, 你就清楚 PID 结果 (X:Y )就对应 PWM(100%:0%)。
确定微分时间常数Td。微分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。系统空载、带载联调,再对PID参数进行微调,直至满足要求。
在PWM波频率一定的条件下,通过改变其占空比的大小,来实现电压的调节。比如占空比为100%时,输出全电压,占空比为0时,输出电压为0。比如总的输出是30V,那么输出2-22V对应的占空比为2/30--22/30,即占空比约为7%--73%。
利用单片机通过DA芯片的输出电压抑制,将该电压加到PWM比较器的TL494正输入端,即TL494端口3,调节DA芯片的输出电压,可以控制TL494PWM的宽度。误差放大器有两个,一个用于电压控制,另一个用于过流保护,电压控制输出占空比控制。
PID就是通过系统误差利用比例、积分、微分计算出控制量进行控制的。不同厂家的公式稍有不同,但是基本上都离不开三个参数:比例、积分时间、微分时间。采样周期。在进行PID调节之前要先设定好PID的采样周期,采样周期设定主要根据被控对象的特性决定。
PID控制可根据测量信号与给定值的偏差进行比例(P)、积分(I)、微分(D)运算,从而输出某个适当的控制信号给执行机构,促使测量值恢复到给定值,达到自动控制的效果。 比例运算是指输出控制量与偏差的比例关系。
比如快速PWM方式,定点使用ICP寄存器,这时改变ICP的值,就改变了PWM频率,当然占空比也跟着变化了,需要你重新调整。
首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。
定时器工作在模式15时PWM只能从OC1B(PD4)管脚输出,而不是OC1A(PD5),OC1A在该模式下只能输出方波。所以你只要在port_init() 函数中加上DDRD|=(1PD4)就可以在PD4管脚输出PWM,频率由OCR1A确定,占空比由OCR1B确定。

占空比通过连接4英尺的10K电阻调节,连接6英尺f=1.1/(CT*RT)的5K电阻频率调节,连接115英尺。9英尺输出PWM波。利用单片机通过DA芯片的输出电压抑制,将该电压加到PWM比较器的TL494正输入端,即TL494端口3,调节DA芯片的输出电压,可以控制TL494PWM的宽度。
可以用定时器T0来控制频率,定时器T1来控制占空比,T0定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。
假如ARR值为0,即0.0001*(0+1),则输出PWM频率为10KHz,再假如输出频率为100Hz的PWM,则将ARR寄存器设置为99即可。如果想调整PWM占空比精度,则只需降低PSC寄存器的值即可。如果你的预装载值TIM_TimeBaseStructure.TIM_Period设为100TIM_SetCompare2(20),就是20%占空比了。
占空比定义:在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。
可以用两级中断来实现,该方法可实现精确占空比与频率的调整。。大致思想是:在定时器T0中开定时器T1,并使pwm=1,在定时器T1中关掉T1,即TR1=0;并使pwm=0;注:t0控制频率(周期),t1控制占空比(高电平时间),你只要装载相应的定时器初值即可。
C=10)%256,在此时,我们设置一个变量i,来表示份数.50%占空比,让前面的50份为高,即是i=50,后50份为低。50i=100,.当I100时,为0. 上面的就完成的频率1KHZ和占空比是50%的PWM,我们可以总结为定时器的C确定PWM的周期,q为占空比。
建议你先将BZQ,TSQ设成常数,再试试。看了你的代码,觉得除了设计之外,有几个问题。verilog不是C语言。实现乘除法时,直接写运算符虽然可以综合,但逻辑很深,时序会很差。例如:if(cnt(BZQ/TSQ)&&cnt=(BZQ/TSQ)*duty/100),这样的逻辑深度是可怕的,估计只能跑到几MHz。
一般的IO口通过编程都可以产生占空比可调的方波。
思路可以采用时基法,就是在特定的时间内,记下脉冲个数,比如在1秒钟记下N个,那么频率就是Nhz。这个不会很难,只要捕捉脉冲的上升沿(或下降沿)即可,也可以同时捕捉,最后求均值,这样精度会高点 如果你要计算占空比,也不难,不就是Th/T么,那么只要再计算高电平的个数就可以了。
R1 数值不能小於1k , R2 和C 决定要求方波频率,R2数值对比R1越大,占空比越接近50%。