永磁同步电机伺服控制仿真:三环PI参数自整定Matlab模型探秘
永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介 模型为永磁同步电机伺服控制仿真采用 Matlab R2018a Simulink搭建。 模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等模块其中SVPWM、Clark、Park、Ipark模块采用Matlab funtion编写其与C语言编程较为接近容易进行实物移植。 模型均采用离散化仿真其效果更接近实际数字控制系统。 2.算法简介 伺服控制由位置环、速度环、电流环三环结构构成其中电流环采用PI控制并具有电流环解耦功能转速环采用抗积分饱和PI控制位置环采用P前馈的复合控制能够更好地跟踪指令信号。 本仿真中最大的亮点是三环PI参数自整定只需输入正确的电机参数电阻、电感、转动惯量等参数无需手动调节PI参数能够节省调试时间。 3.仿真效果 位置响应波形如下图所示。 转速响应波形如下图所示。 转矩电流响应波形如下图所示。 4. 可提供模型内相关算法的参考文献避免大量阅读文献浪费时间最近在研究永磁同步电机伺服控制仿真这块发现了一个超有意思的Matlab模型今天就来跟大家唠唠。一、模型搭建这个模型是基于Matlab R2018a的Simulink搭建的就像是搭乐高一样把各种模块拼起来实现特定功能。里面有DC直流电压源、三相逆变器、永磁同步电机这些基础模块还有采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等等。像SVPWM、Clark、Park、Ipark这些模块是用Matlab function编写的为啥用这个写呢因为它和C语言编程很接近呀后续要是想把这个仿真模型应用到实际硬件上移植起来那叫一个方便。而且整个模型采用离散化仿真这就好比把时间切成一小段一小段来模拟这样得到的效果就跟实际的数字控制系统更贴近了。永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介 模型为永磁同步电机伺服控制仿真采用 Matlab R2018a Simulink搭建。 模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等模块其中SVPWM、Clark、Park、Ipark模块采用Matlab funtion编写其与C语言编程较为接近容易进行实物移植。 模型均采用离散化仿真其效果更接近实际数字控制系统。 2.算法简介 伺服控制由位置环、速度环、电流环三环结构构成其中电流环采用PI控制并具有电流环解耦功能转速环采用抗积分饱和PI控制位置环采用P前馈的复合控制能够更好地跟踪指令信号。 本仿真中最大的亮点是三环PI参数自整定只需输入正确的电机参数电阻、电感、转动惯量等参数无需手动调节PI参数能够节省调试时间。 3.仿真效果 位置响应波形如下图所示。 转速响应波形如下图所示。 转矩电流响应波形如下图所示。 4. 可提供模型内相关算法的参考文献避免大量阅读文献浪费时间比如说SVPWM模块代码大概像这样以下为示意代码非完整精确代码function svpwm_output svpwm_function(u_d, u_q, Vdc) % 根据输入的d轴和q轴电压u_d, u_q以及直流母线电压Vdc计算SVPWM输出 % 这里面涉及复杂的坐标变换和扇区判断 % 例如计算参考电压矢量的幅值和角度 mag sqrt(u_d^2 u_q^2); theta atan2(u_q, u_d); % 然后根据这些值判断处于哪个扇区并计算相应的开关时间 % 省略具体计算过程 svpwm_output [t1, t2, t3]; % 最终输出三个开关时间 end在这段代码里通过输入的d轴和q轴电压以及直流母线电压经过一系列计算得出SVPWM的输出也就是三个开关时间这些开关时间决定了逆变器的工作状态进而控制永磁同步电机。二、算法解析伺服控制采用的是经典的三环结构分别是位置环、速度环和电流环。电流环电流环采用PI控制而且还有解耦功能。简单来说就是让电机的d轴和q轴电流相互不干扰各自完成自己的控制任务。代码实现上PI控制就是根据当前电流与目标电流的差值通过比例和积分环节来调整输出让电流尽快稳定在目标值。function i_out current_pi_control(i_ref, i_act, Kp, Ki, dt) error i_ref - i_act; integral integral error * dt; i_out Kp * error Ki * integral; end这里iref是目标电流iact是实际电流Kp和Ki分别是比例和积分系数dt是采样时间间隔。通过不断计算误差并进行比例和积分运算输出调整后的电流值。转速环转速环用的是抗积分饱和PI控制。为啥要用抗积分饱和呢因为在实际控制中如果电机长时间处于某个极限状态PI控制的积分项可能会积累得特别大导致控制输出异常抗积分饱和就能避免这种情况。function omega_out speed_pi_control(omega_ref, omega_act, Kp, Ki, dt, max_limit, min_limit) error omega_ref - omega_act; integral integral error * dt; % 抗积分饱和处理 if integral max_limit integral max_limit; elseif integral min_limit integral min_limit; end omega_out Kp * error Ki * integral; end这里除了常规的PI计算还加入了对积分项的限制确保它不会超出设定的最大最小值。位置环位置环采用P 前馈的复合控制这种控制方式可以更好地跟踪指令信号。前馈部分能根据输入的指令提前做出响应和比例控制结合起来让电机的位置控制更精准。最厉害的是这个模型的三环PI参数自整定功能。以前调PI参数那可得费老劲了得一点一点试。但在这个仿真里只要把电机的参数像电阻、电感、转动惯量这些输对了PI参数就自己调整好了能节省超多调试时间。三、仿真效果展示从位置响应波形、转速响应波形和转矩电流响应波形可以看出这个模型的控制效果还是很不错的。位置能快速准确地跟踪指令转速也能稳定在设定值附近转矩电流也在合理范围内波动。可惜这里没办法直接展示图片但大家自己运行模型就能看到啦。四、参考文献支持这个模型还提供了相关算法的参考文献不用自己再大海捞针似的去找文献了能节省不少阅读文献的时间对于想要深入研究背后算法原理的小伙伴来说简直太贴心了。总之这个永磁同步电机伺服控制仿真的三环PI参数自整定Matlab模型无论是在模型搭建的巧妙性还是算法的实用性上都非常值得学习和研究。感兴趣的小伙伴不妨自己动手试试~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2409212.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!