七段式调速控制的优势和缺点

本文介绍了使用LabVIEW实现七段式调速控制的程序设计,探讨了七段式调速相对于其他段式的优势。通过仿真得出7段式S曲线,并指出部分博主对7段式的误解。关键点包括脉冲输出点数的设计、存储需求及实时性挑战。提出了FIFO算法和FPGA硬件解决方案以应对STM32F4计算周期不足的问题。附带了STM32F4的七段式代码链接。
摘要由CSDN通过智能技术生成

七段式程序代码实现

通过labview代码编辑实现了七段式调速程序设计,根据七段式分析:
通过学习各个博主的文章,最后根据各个博主的内容进行仿真实现了全部功能。
在这里插入图片描述
根据上图,通过labview进行仿真。
在这里插入图片描述
通过labview仿真波形可以得出7段式S曲线,该曲线能够能够实现。但是有很多博主未发现一个问题,很多7段式未解释清楚,我们要的是7段式而非5段式,4段式等。因此,我们需要考虑这个问题。推理过程我就不做熬述,我会给出相关博主的推导过程链接:
7段式S曲线推导过程
通过仿真可以确定以下几点关键技术:
(1)在脉冲输出点数少于7个点的时候就需要5段式、4段式、甚至是3段式、运速,这几个关键点需要靠大家自己去设计一个恒定值去调试设备。
(2)由于公式计算量比较大,产生的点数也比较多,因此,需要很大的存储量,因此,利用FIFO的算法还是比较合适。
(3)我附上的算法式STM32F4系列的算法,计算周期50us之内。不能够满足200kHz脉冲最高频率速度的要求,需要更好硬件计算,实时性上要求较高。
解决办法:一种是刚说的FIFO;另外一种是换成FPGA的方式生成PWM波,硬件性能可以提高很多,因此,我将更换方案改为国内生产的FPGA作为方案进行设计。
STM32F4七段式代码已经附上:

void CalF_PulseFunc(CalF_Pulse *FuncPto)
{
   
	float TempAmaxORG = 0;
	FuncPto->D = (float)FuncPto->SumstepS_per_r/FuncPto->SumstepPulses_per_r/1000.0;//计算出单脉冲行程 mm/pulse
	//这里最好是计算出整数
	FuncPto->Sumsteps=(FuncPto->q1-FuncPto->q0)/FuncPto->D;//计算出脉冲总数 N
	//判断是否存在最大加速度
	if(((FuncPto->RelAmax-FuncPto->v0)*FuncPto->RelJmax)< pow(FuncPto->RelAmax,2)) //计算出平方
	{
   
	//==============================================
		//
	//==============================================
		if(FuncPto->v0 > FuncPto->RelVmax)
		{
   
			FuncPto->Ta =0;
			FuncPto->Tj1 =0;
			FuncPto->alima=0;
		}
		else
		{
   
			FuncPto->Tj1=sqrtf((FuncPto->RelVmax-FuncPto->v0)*FuncPto->RelJmax);
			FuncPto->Ta= FuncPto->Tj1*2.0;
			FuncPto->alima= FuncPto->Tj1*FuncPto->RelJmax;
		}
		
	}
	else
	{
   
		  FuncPto->Tj1=FuncPto->RelAmax/FuncPto->RelJmax;
			FuncPto->Ta= FuncPto->Tj1+(FuncPto->RelVmax-FuncPto->v0)/FuncPto->RelAmax;
			FuncPto->alima= FuncPto->RelAmax;	
	}
	//
 if(((FuncPto->RelAmax-FuncPto->v1)*FuncPto->RelJmax)< pow(FuncPto->RelAmax,2)) //计算出平方
	{
   
	//==============================================
		//
	//==============================================
		if(FuncPto->v1 > FuncPto->RelVmax)
		{
   
			FuncPto->Td =0;
			FuncPto->Tj2 =0;
			FuncPto->alimd=0;
		}
		else
		{
   
			FuncPto->Tj2=sqrtf((FuncPto->RelVmax-FuncPto->v1)*FuncPto->RelJmax);
			FuncPto->Td= FuncPto->Tj2*2.0;
			FuncPto->alimd= FuncPto->Tj2*FuncPto->RelJmax;
		}
		
	}
	else
	{
   
		  FuncPto->Tj2=FuncPto->RelAmax/FuncPto->RelJmax;
			FuncPto->Td= FuncPto->Tj2+(FuncPto->RelVmax-FuncPto->v1)/FuncPto->RelAmax;
			FuncPto->alimd= FuncPto->RelAmax;	
	}
	//判断是否存在匀速段
	FuncPto->Tv = (FuncPto->q1-FuncPto->q0)/FuncPto->RelVmax - FuncPto->Ta/2*(1.0+FuncPto->v0/FuncPto->RelVmax)-FuncPto->Td/2*(1.0+FuncPto->v1/FuncPto->RelVmax);
	FuncPto->T=FuncPto->Ta+FuncPto->Tv+FuncPto->Td;
	if(FuncPto->Tv>=0) //存在匀速段
	{
   		
		FuncPto->vlim = FuncPto->RelVmax;		
	}
	else  //不存在匀段
	{
   
				FuncPto->Tv = 0;//Tv = 0 ;
				TempAmaxORG=FuncPto->RelAmax;
				FuncPto->Delta =pow(FuncPto->RelAmax,4)/pow(FuncPto->RelJmax,2) + 
												2.0*(pow(FuncPto->v0,2.0)+pow(FuncPto->v1,2.0))+
												FuncPto->RelAmax*(4.0*(FuncPto->q1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
五段 SVPWM(Space Vector Pulse Width Modulation)和七段 SVPWM 是两种常见的电力电子调制技术,用于控制交流电机的输出电压和频率。它们各自有不同的优点和缺点,下面是它们的对比: 五段 SVPWM 优点: 1. 简单易实现:五段 SVPWM 的实现相对简单,计算量较小,易于控制器实现。 2. 处理能力强:五段 SVPWM 能够处理大范围的负载变化,对电机的响应速度较快。 3. 占空比控制精度高:五段 SVPWM 可以实现较高的占空比控制精度,输出电压波形较为平滑。 4. 适用范围广:五段 SVPWM 适用于大多数交流电机控制应用,特别是中低功率应用。 五段 SVPWM 缺点: 1. 谐波含量高:五段 SVPWM 在某些频率范围内可能产生较高的谐波,可能会对电机和其他设备造成干扰。 2. 低频区域性能差:五段 SVPWM 在低频区域的性能相对较差,可能会引起齿槽效应和振荡。 七段 SVPWM 优点: 1. 谐波含量低:七段 SVPWM 通过优化电压波形,可以降低谐波含量,减少对电机和其他设备的干扰。 2. 高频区域性能优秀:七段 SVPWM 在高频区域的性能相对较好,可以实现更高的输出频率和更快的响应速度。 七段 SVPWM 缺点: 1. 实现复杂:七段 SVPWM 的实现相对复杂,计算量较大,对控制器的要求较高。 2. 控制精度受限:七段 SVPWM 的占空比控制精度相对较低,输出电压波形可能不够平滑。 综上所述,五段 SVPWM 和七段 SVPWM 各有优缺点,具体选择应根据应用需求和控制要求来决定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u011304256

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值