黄工无刷电机学习
直播中

李明聪

7年用户 1179经验值
私信 关注
[问答]

请问一下怎么搭建电流环PI并封装成Mask?

请问一下怎么搭建电流环PI并封装成Mask?

回帖(1)

沈家春

2021-10-12 10:19:05
师傅的泡泡,泡泡的师傅,知识改变命运!   电机控制中,PID的使用是非常常见的, 而且在Simulink仿真中经常需要封装子系统,以便于在一个对话框里进行参数设定,那么今天就学学怎么用simulink仿真PID,并封装起来。
  目标:使用Simulink基础模块搭建电流环的PI控制器,然后封装成Mask
1,PID基础知识

  电机中使用的电流环IdIq是用来保持电流的恒定输出,一般都是使用Id* = 0,Iq* = Vel_Pid_Out(速度环的输出值)。那么稍微复习一下PID的相关知识。





  模拟PID的控制公式:分为比例项、积分项、微分项。





  由于计算机是一种采样控制,只能根据采样时刻的偏差计算控制量,不能连续输出控制量。因此上面公式中的积分项和微分项必须离散化处理,得到的离散PID公式如下:










  如果采样周期足够小,则两个公式的近似计算可以获得足够精确的结果,离线控制过程与连续过程十分接近。因此我们仿真选择第二公式。
2,PI模型搭建

  在明白了PID的基本原理之后,进行电流PI的仿真模型搭建。
  输出参量为误差err,比例项为Kp * err,积分项为Ki*err的积分。重点是Discrete-time integration 的配置。由于需要配置成Mask,所以必须设置好各个模块的外部设置参数。整体搭建如下:





  乘法器Gain配置如下,需要引出Kp和Ki参数。









  零阶保持器(ZOH,Zero-Order Hold)是将输入信号每过一个采样时间更新一次,并保持到下一次采样,多用于将连续信号离散化。配置如下,需要引出Ts参数。





  积分器需要引出采样时间、初始输出值、输出最大值、输出最小值。





  最后就是限制器的配置,需要引出最大值和最小值,配置如下





3,封装Mask

  那么PI的仿真框图基本就配置完了,现在需要将其封装起来Mask。
  1, 选中全部,快捷键Crtl + G:





  2,Mask–>Create Mask,或者快捷键Ctrl + M。





   3,参数设置,Parameters & Dialog–>Promote










  4,添加Promoted parameters。










   5. 更改参数属性Property editor–>Properties










  点击Ok之后,我们就创建好了一个设置参数。





  6.按照如上步骤将其他所有的参数全部引出。





  需要注意的是采样时间、输出最大值、输出最小值,需要绑定好几个模块。以输出最大值为例,他需要包含限制器跟积分器的Prompt。





  8,回到主界面,双击Subsystem,即可更改设置的参数。





  至此,就完成了电流环PI控制器的mask封装。
下个学习任务是:
创建电机控制模型,生成速度、Id、iq,配合刚完成PI控制器搭建一个闭环控制系统。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分