估计控制增益并使用效用函数
执行速度和转矩控制环的控制参数调优,这是面向场控制(FOC)算法的一部分。电机控制块集™为您提供多种方法来计算从系统或块传递函数,可用于电机,逆变器和控制器的控制环路增益:
使用<年代p一个n class="block">场向控制自动调谐器块。
使用<年代p一个n class="entity">金宝app®控制设计™.
使用模型初始化脚本。
场向控制自动调谐器
电机控制块集的面向场控制自动调谐器块使您能够实时自动调谐面向场控制(FOC)应用程序中的PID控制环。您可以自动调优与以下循环相关的PID控制器(有关详细信息,请参阅<一个href="//www.tatmou.com/es/help/mcb/ug/how-to-use-field-oriented-control-autotuner.html" class="a">如何使用面向场控制自动调谐块):
纵轴(
d-轴)电流回路 交轴(
问-轴)电流回路 速度环
对于块调优的每个循环,<年代p一个n class="block">场向控制自动调谐器Block以闭环方式执行自动调优实验,而不使用与该循环相关的参数模型。该块使您能够指定块优化控制循环的顺序。当对一个循环运行调优实验时,该块对其他循环没有影响。有关FOC自动调谐器的详细信息,请参见<一个href="//www.tatmou.com/es/help/mcb/ref/fieldorientedcontrolautotuner.html" class="a">场向控制自动调谐器而且<一个href="//www.tatmou.com/es/help/mcb/gs/tune-pi-controllers-using-foc-autotuner.html" class="a">使用面向场控制自动调谐器调谐PI控制器.
金宝appSimulink控制设计
金宝appSimulink控制设计使您能够设计和分析在Simulink中建模的控制系统。金宝app您可以自动调优任意SISO和MIMO控制体系结构,包括PID控制器。您可以将PID自动整定部署到嵌入式软件中,以实时自动计算PID增益。
您可以找到工作点,并计算Simulink模型在不同操作条件下的精确线性化。金宝app<年代p一个n class="entity">金宝appSimulink控制设计提供工具,使您无需修改模型即可计算基于模拟的频率响应。详细信息请参见<一个href="//www.tatmou.com/es/help/slcontrol/index.html" target="_blank">//www.tatmou.com/help/slcontrol/index.html.
模型初始化脚本
本节解释电机控制块集示例如何估计实现面向场控制所需的控制增益。例如,对于连接到正交编码器的PMSM,这些步骤描述了通过使用初始化脚本从系统详细信息计算控制环路增益值的过程:
打开初始化脚本(
00实例的MATLAB文件<年代up>®.查询相关的脚本文件名: 选择<年代trong class="guilabel">建模><年代trong class="guilabel">模型设置><年代trong class="guilabel">模型属性打开模型属性对话框。
在“模型属性”对话框中,导航到<年代trong class="guilabel">回调选项卡><年代trong class="guilabel">InitFcn以查找Simulink在运行示例之前打开的脚本文件的名称。金宝app
该图显示了初始化脚本的示例(
00)文件。 使用<年代trong class="guilabel">工作空间编辑控制变量值。例如,要更新定子电阻(
Rs),使用变量 永磁同步电动机将参数值添加到 Rs字段。 与目标模型相关联的模型初始化脚本调用这些函数,并使用必要的变量设置工作空间。
模型初始化脚本 由模型初始化脚本调用的函数 描述 与目标模型相关联的脚本 mcb_SetPMSMMotorParameters
函数的输入是PMSM的类型(例如BLY171D)。
函数填充名为
永磁同步电动机在MATLAB工作空间中,模型使用该工作空间。 计算所选电机的永磁磁通和额定转矩。
你可以为新电机增加一个额外的开关箱来扩展功能。
这个函数也加载结构
motorParam,通过运行参数估计得到 永磁同步电动机.如果结构 motorParam在MATLAB工作空间中不可用,该函数加载默认参数。 mcb_SetACIMMotorParameters
函数的输入是交流感应电机的类型(例如,EM_Synergy)。
函数填充名为
奇迹课程在MATLAB工作空间中,模型使用该工作空间。 你可以为新电机增加一个额外的开关箱来扩展功能。
这个函数也加载结构
motorParam,通过运行参数估计得到 奇迹课程.如果结构 motorParam在MATLAB工作空间中不可用,该函数加载默认参数。 mcb_SetInverterParameters
功能输入为逆变器类型(例如BoostXL-DRV8305)。
函数填充名为
逆变器在MATLAB工作空间中,模型使用该工作空间。 该函数还计算所选逆变器的逆变器电阻。
您可以通过为新的逆变器添加额外的开关箱来扩展功能。
mcb_SetProcessorDetails
该功能的输入是处理器类型(例如,F28379D)和脉宽调制(PWM)开关频率。
函数填充名为
目标在MATLAB工作空间中,模型使用该工作空间。 该函数还计算PWM计数器周期,这是目标模型中ePWM块的参数。
您可以通过为新处理器添加额外的开关箱来扩展该功能。
mcb_getBaseSpeed
该功能的输入是电机和逆变器参数。
该函数计算PMSM的基本速度。
类型
帮助mcb_getBaseSpeed在MATLAB命令窗口或参见节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取基本速度欲知详情。 mcb_SetPUSystem
该功能的输入是电机和逆变器参数。
该函数设置每单位系统的电压、电流、速度、转矩和功率的基本值。
函数填充名为
PU_System在MATLAB工作空间中,模型使用该工作空间。 mcb.internal.SetControllerParameters
该功能的输入是电机和逆变器参数、单位系统基准值、PWM开关时间周期、控制系统的采样时间和速度控制器的采样时间。
该函数计算比例积分(
π)参数( Kp, Ki)用于面向现场的控制实现。 函数填充名为
PI_params在MATLAB工作空间中,模型使用该工作空间。 参见<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取控制器增益欲知详情。
mcb_updateInverterParameters
该功能的输入是电机和逆变器参数。
该功能根据所选硬件和电机更新逆变器参数。
下表解释了可以更新的每个控件参数的有用变量。
请注意
您可以尝试在Windows上以管理员模式启动MATLAB<年代up>®系统,如果您无法更新与示例模型关联的模型初始化脚本。
控制参数 | 控制参数名称 | MATLAB工作空间变量 |
---|---|---|
电机参数 | 制造商型号 | pmsm.model |
制造商序列号 | pmsm.sn |
|
双极 | pmsm.p |
|
定子电阻(欧姆) | 永磁同步电动机。Rs |
|
d轴定子绕组电感(Henry) | 永磁同步电动机。Ld |
|
q轴定子绕组电感(Henry) | 永磁同步电动机。江西 |
|
反电动势常数(V_line(峰值)/krpm) | 永磁同步电动机。柯 |
|
电机惯量(kg.m<年代up>2) | 永磁同步电动机。J |
|
摩擦常数(N.m.s) | 永磁同步电动机。F |
|
永磁磁通(WB) | 永磁同步电动机。FluxPM |
|
证明的 | 永磁同步电动机。T_rated |
|
Nbase | 永磁同步电动机。N_base |
|
所使用的最大电机转速
|
永磁同步电动机。N_max |
|
愤怒的 | 永磁同步电动机。我_rated |
|
位置解码器 | QEP指数和霍尔位置偏移校正 | 永磁同步电动机。PositionOffset |
正交编码器狭缝每转 | 永磁同步电动机。QEPSlits |
|
逆变器参数 | 制造商型号 | inverter.model |
制造商序列号 | inverter.sn |
|
逆变器直流链路电压(V) | 逆变器。V_dc |
|
逆变器最大允许电流(A) | 逆变器。I_trip |
|
mosfet的导态电阻(欧姆) | 逆变器。Rds_on |
|
电流传感分流电阻(欧姆) | 逆变器。Rshunt |
|
电机看到的逐相板电阻(欧姆) | 逆变器。R_board |
|
电流传感器的ADC偏移(I<年代ub>一个和我<年代ub>b) |
|
|
电流传感器自动校准ADC偏移的最大限制(I<年代ub>一个和我<年代ub>b) | 逆变器。CtSensOffsetMax |
|
电流传感器自动校准ADC偏移的最小限制(I<年代ub>一个和我<年代ub>b) | 逆变器。CtSensOffsetMin |
|
启用电流感应adc自动校准 | 逆变器。ADCOffsetCalibEnable |
|
由SPI配置的ADC增益因子 | 逆变器。ADCGain |
|
逆变器类型: 1 -有源高使能逆变器 0 -主动式低使能逆变器 |
逆变器。EnableLogic |
|
电流进入电机约定: 电流感应放大器将进入电机的电流感应为正 - 1 -电流感应放大器将进入电机的电流感应为负 |
inverter.invertingAmp |
|
逆变器电流传感电路参考电压(V) | 逆变器。我SenseVref |
|
逆变电流传感电路输出电压对应1安培电流(V/A) 您可以使用当前分流电阻的数据表值(
|
逆变器。我SenseVoltPerAmp |
|
逆变器电流传感电路可测量的最大峰值中性电流(A) | 逆变器。ISenseMax |
|
处理器 | 制造商型号 | target.model |
制造商序列号 | target.sn |
|
CPU频率 | 目标。CPU_frequency |
|
脉宽调制频率 | 目标。PWM_frequency |
|
PWM计数器周期 | 目标。PWM_Counter_Period |
|
ADC参考电压(V) | 目标。ADC_Vref |
|
12位ADC的最大计数输出 | 目标。ADC_MaxCount |
|
串行通信的波特率 | 目标。SCI_baud_rate |
|
单位系统 | 基极电压(V) | PU_System。V_base |
基极电流(A) | PU_System。I_base |
|
基本转速(rpm) | PU_System。N_base |
|
基准扭矩(Nm) | PU_System。T_base |
|
基本功率(瓦) | PU_System。P_base |
|
目标设备的数据类型 | 数据类型(定点或浮点)选择 | 数据类型 |
采样时间值 | 变频器开关频率 | PWM_frequency |
PWM开关时段 | T_pwm |
|
电流控制器的采样时间 | Ts |
|
速度控制器采样时间 | Ts_speed |
|
模拟采样时间 | Ts_金宝appsimulink |
|
电机仿真采样时间 | Ts_motor |
|
逆变器仿真采样时间 | Ts_inverter |
|
控制器参数 | Iq控制器的比例增益 | PI_params。Kp_i |
Iq控制器的积分增益 | PI_params。Ki_i |
|
Id控制器的比例增益 | PI_params。Kp_id |
|
Id控制器的积分增益 | PI_params。Ki_id |
|
速度控制器的比例增益 | PI_params。Kp_speed |
|
速度控制器的积分增益 | PI_params。Ki_speed |
|
磁场削弱控制器的比例增益 | PI_params。Kp_fwc |
|
场弱控制器的积分增益 | PI_params。Ki_fwc |
|
传感器延时参数 | 电流传感器延时 | 延迟。Current_Sensor |
速度传感器延迟 | 延迟。Speed_Sensor |
|
低通速度滤波器的延迟 | 延迟。Speed_Filter |
|
控制器延时参数 | 电流控制回路的阻尼系数(ζ | 延迟。OM_damping_factor |
速度控制回路的对称最优因子 | 延迟。SO_factor_speed |
请注意
对于预定义的处理器和驱动程序,模型初始化脚本使用默认值。
模型初始化脚本使用这些函数来执行计算:
控制参数 | 函数 | 功能 |
---|---|---|
电机的基本转速 | mcb_getBaseSpeed |
计算PMSM在额定电压和额定负载下的基本转速。 有关详细信息,请键入 |
电机特性为给定电机和逆变器 | mcb_getCharacteristics |
获得永磁同步电机的这些驱动特性。
有关详细信息,请键入 具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取电机特性. |
mcb_getCharacteristicsAcim |
获得感应电机的这些电机特性。
获得感应电机的这些驱动特性。
有关详细信息,请键入 具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取电机特性. |
|
控制算法参数 | mcb.internal.SetControllerParameters |
计算这些PI控制器的增益:
具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取控制器增益. |
对所使用的电机和逆变器进行控制分析 | mcb_getControlAnalysis |
对用于定向电机控制系统的PI控制器的计算增益进行频域分析。 请注意 此功能需要控制系统工具箱™。 有关详细信息,请键入 |
获取基本速度
这个函数
当您调用此函数时(例如,
PMSM参数结构。
逆变器参数结构。
这些方程描述了函数执行的计算:
逆变器电压约束通过计算
电流限位圈定义了电流约束,可以认为是:
在上式中,<年代p一个n class="inlineequation"> 为零的表面pmsm。对于内部pmsm,值为<年代p一个n class="inlineequation"> 而且<年代p一个n class="inlineequation"> 相应的MTPA被考虑。
利用前面的关系,我们可以计算出基本速度为:
地点:
为定子电压频率所对应的电转速,单位为弧度/秒。
为电机的机械基本速度(弧度/秒)。
是
d-轴电流(安培)。 是
问-轴电流(安培)。 是
d时-轴电压<年代p一个n class="inlineequation"> 为零(伏特)。 是
问时-轴电压<年代p一个n class="inlineequation"> 为零(伏特)。 是
d-轴绕组电感(亨利)。 是
问-轴绕组电感(亨利)。 为定子相绕组电阻(欧姆)。
为永磁磁链(Weber)。
是
d轴电压(伏特)。 是
问轴电压(伏特)。 为提供给电机的最大基本线到中性电压(峰值)(伏特)。
为输入到逆变器的直流电压(伏特)。
为电机的最大相电流(峰值)(安培)。
为电机极对数。
获取电机特性
这个函数
该函数返回给定PMSM的这些特征:
扭矩,而不是速度
力量而不是速度
我<年代ub>dq而不是速度
我<年代ub>峰而不是速度
这个函数
该函数返回给定感应电机的这些电机特性:
扭矩,而不是速度
力量而不是速度
函数返回给定感应电机的驱动特性:
扭矩,而不是速度
力量而不是速度
我<年代ub>dq而不是速度
我<年代ub>峰而不是速度
获取控制器增益
这个函数
可以使用此命令调用函数
PI_params = mcb.internal.SetControllerParameters(pmsm,逆变器,PU_System,T_pwm,Ts,Ts_speed);
该函数返回FOC算法中使用的这些PI控制器的增益:
纵轴(
d-轴)电流回路 交轴(
问-轴)电流回路 速度环
弱场控制回路
函数接受以下输入:
永磁同步电动机的对象
逆变器对象
PU系统参数
T_pwm
Ts_control
Ts_speed
这个函数没有画出任何特征。
补偿器的设计依赖于应用于电机控制系统的经典频响分析。对电流控制器采用了基于模量优化(MO)的设计,对速度控制器采用了基于对称优化(SO)的设计。
该函数根据输入参数自动计算其他所需参数(例如,延迟、阻尼因子)。
您可以通过指定系统延迟、阻尼因子和对称最佳因子的函数的可选输入来修改默认的系统响应:
PI_params = mcb.internal.SetControllerParameters(pmsm,逆变器,PU_System,T_pwm,Ts,Ts_speed,时延);
阻尼系数(
对称最优因子(
下面的示例介绍如何自定义参数:
传感器延迟百分比延迟。Current_Sensor = 2*Ts;<年代p一个n style="color:#228B22">%电流传感器延迟延迟。Speed_Sensor = Ts;<年代p一个n style="color:#228B22">速度传感器延迟百分比延迟。Speed_Filter = 20e-3;<年代p一个n style="color:#228B22">速度滤波器延迟百分比(LPF)控制器延迟百分比延迟。OM_damping_factor = 1/√(2);<年代p一个n style="color:#228B22">%电流控制回路阻尼因子延迟。SO_factor_speed = 1.5;<年代p一个n style="color:#228B22">%对称最优因子1 < x < 20%控制器设计PI_params = mcb.internal.SetControllerParameters(pmsm,逆变器,PU_System,T_pwm,Ts,Ts_speed,时延);
进行控制分析
这个函数
请注意
此功能需要控制系统工具箱。
当您调用此函数时(例如,
闭环电流控制系统的传递函数
根轨迹
波德图
稳定裕度(PM & GM)
阶跃响应
PZ地图
函数绘制相应的图:
参考文献
[1]
[2]