simulink电机仿真学习 - 搭建电流环PI并封装成Mask

师傅的泡泡,泡泡的师傅,知识改变命运!

  电机控制中,PID的使用是非常常见的, 而且在Simulink仿真中经常需要封装子系统,以便于在一个对话框里进行参数设定,那么今天就学学怎么用simulink仿真PID,并封装起来。

  目标:使用Simulink基础模块搭建电流环的PI控制器,然后封装成Mask

1,PID基础知识

  电机中使用的电流环Id\Iq是用来保持电流的恒定输出,一般都是使用Id* = 0,Iq* = Vel_Pid_Out(速度环的输出值)。那么稍微复习一下PID的相关知识。
模拟PID的控制系统框图
  模拟PID的控制公式:分为比例项、积分项、微分项。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第1张图片
  由于计算机是一种采样控制,只能根据采样时刻的偏差计算控制量,不能连续输出控制量。因此上面公式中的积分项和微分项必须离散化处理,得到的离散PID公式如下:
公式1
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第2张图片
  如果采样周期足够小,则两个公式的近似计算可以获得足够精确的结果,离线控制过程与连续过程十分接近。因此我们仿真选择第二公式。

2,PI模型搭建

  在明白了PID的基本原理之后,进行电流PI的仿真模型搭建。
  输出参量为误差err,比例项为Kp * err,积分项为Ki*err的积分。重点是Discrete-time integration 的配置。由于需要配置成Mask,所以必须设置好各个模块的外部设置参数。整体搭建如下:
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第3张图片
  乘法器Gain配置如下,需要引出Kp和Ki参数。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第4张图片simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第5张图片
  零阶保持器(ZOH,Zero-Order Hold)是将输入信号每过一个采样时间更新一次,并保持到下一次采样,多用于将连续信号离散化。配置如下,需要引出Ts参数。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第6张图片
  积分器需要引出采样时间、初始输出值、输出最大值、输出最小值。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第7张图片
  最后就是限制器的配置,需要引出最大值和最小值,配置如下
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第8张图片

3,封装Mask

  那么PI的仿真框图基本就配置完了,现在需要将其封装起来Mask。
  1, 选中全部,快捷键Crtl + G:
在这里插入图片描述
  2,Mask–>Create Mask,或者快捷键Ctrl + M。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第9张图片
   3,参数设置,Parameters & Dialog–>Promote
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第10张图片
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第11张图片
  4,添加Promoted parameters。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第12张图片
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第13张图片
   5. 更改参数属性Property editor–>Properties
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第14张图片
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第15张图片
  点击Ok之后,我们就创建好了一个设置参数。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第16张图片
  6.按照如上步骤将其他所有的参数全部引出。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第17张图片
  需要注意的是采样时间、输出最大值、输出最小值,需要绑定好几个模块。以输出最大值为例,他需要包含限制器跟积分器的Prompt。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第18张图片
  8,回到主界面,双击Subsystem,即可更改设置的参数。
simulink电机仿真学习 - 搭建电流环PI并封装成Mask_第19张图片
  至此,就完成了电流环PI控制器的mask封装。
下个学习任务是:
创建电机控制模型,生成速度、Id、iq,配合刚完成PI控制器搭建一个闭环控制系统。

你可能感兴趣的:(Simulink电机仿真学习)