主要内容

估计控制增益并使用效用函数

执行速度和转矩控制环的控制参数调优,这是面向场控制(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,这些步骤描述了通过使用初始化脚本从系统详细信息计算控制环路增益值的过程:

  1. 打开初始化脚本(00实例的MATLAB文件<年代up>®.查询相关的脚本文件名:

    1. 选择<年代trong class="guilabel">建模><年代trong class="guilabel">模型设置><年代trong class="guilabel">模型属性打开模型属性对话框。

    2. 在“模型属性”对话框中,导航到<年代trong class="guilabel">回调选项卡><年代trong class="guilabel">InitFcn以查找Simulink在运行示例之前打开的脚本文件的名称。金宝app

  2. 该图显示了初始化脚本的示例(00)文件。

  3. 使用<年代trong class="guilabel">工作空间编辑控制变量值。例如,要更新定子电阻(Rs),使用变量永磁同步电动机将参数值添加到Rs字段。

  4. 与目标模型相关联的模型初始化脚本调用这些函数,并使用必要的变量设置工作空间。

    模型初始化脚本 由模型初始化脚本调用的函数 描述
    与目标模型相关联的脚本

    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

所使用的最大电机转速mcb_getCharacteristics(永磁同步电动机、逆变器)函数

永磁同步电动机。N_max= 2永磁同步电动机。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)

逆变器。CtSensAOffset

逆变器。CtSensBOffset

电流传感器自动校准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)

您可以使用当前分流电阻的数据表值(逆变器。Rshunt)和逆变器的电流感应放大器增益。

逆变器。我SenseVoltPerAmp逆变器。Rshunt9电流检测放大器增益

逆变器。我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_getBaseSpeed在MATLAB命令提示符或参见节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取基本速度.

电机特性为给定电机和逆变器 mcb_getCharacteristics

获得永磁同步电机的这些驱动特性。

  • 扭矩,而不是速度特性

  • 功率而不是速度特性

  • 我<年代ub>dq而不是速度特性

  • 最大相电流(<年代p一个n class="inlineequation"> p e 一个 k d 2 + 2 ),而不是速度特性

有关详细信息,请键入帮助mcb_getCharacteristics在MATLAB命令提示符。

具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取电机特性.

mcb_getCharacteristicsAcim

获得感应电机的这些电机特性。

  • 扭矩,而不是速度特性

  • 功率而不是速度特性

获得感应电机的这些驱动特性。

  • 扭矩,而不是速度特性

  • 功率而不是速度特性

  • 我<年代ub>dq而不是速度特性

  • 最大相电流(<年代p一个n class="inlineequation"> p e 一个 k d 2 + 2 ),而不是速度特性

有关详细信息,请键入帮助mcb_getCharacteristicsAcim在MATLAB命令提示符。

具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取电机特性.

控制算法参数 mcb.internal.SetControllerParameters

计算这些PI控制器的增益:

  • 电流(转矩)控制回路增益(K<年代ub>p,K<年代ub>我)表示电流我<年代ub>d而且我<年代ub>问

  • 速度控制回路增益(K<年代ub>p,K<年代ub>我)

  • 磁场削弱控制增益(K<年代ub>p,K<年代ub>我)

具体操作请参见章节<一个href="//www.tatmou.com/es/help/mcb/gs/estimate-control-gains-from-motor-parameters.html" class="intrnllnk">获取控制器增益.

对所使用的电机和逆变器进行控制分析 mcb_getControlAnalysis

对用于定向电机控制系统的PI控制器的计算增益进行频域分析。

请注意

此功能需要控制系统工具箱™。

有关详细信息,请键入帮助mcb_getControlAnalysis在MATLAB命令提示符。

获取基本速度

这个函数mcb_getBaseSpeed计算给定电源电压下永磁同步电机的基本转速。基准转速是电机在额定电压和额定负载下,在弱磁场区域之外的最大转速。

当您调用此函数时(例如,base_speed = mcb_getBaseSpeed(pmsm,逆变器)),它返回给定组合的PMSM和逆变器的基本速度(rpm)。该函数接受以下输入:

  • PMSM参数结构。

  • 逆变器参数结构。

这些方程描述了函数执行的计算:

逆变器电压约束通过计算d设在和问设在电压:

v d o ω e l

v o ω e l d d + λ p

v 一个 x v d c 3. R 年代 一个 x v d o 2 + v o 2

电流限位圈定义了电流约束,可以认为是:

一个 x 2 d 2 + 2

在上式中,<年代p一个n class="inlineequation"> d 为零的表面pmsm。对于内部pmsm,值为<年代p一个n class="inlineequation"> d 而且<年代p一个n class="inlineequation"> 相应的MTPA被考虑。

利用前面的关系,我们可以计算出基本速度为:

ω b 一个 年代 e 1 p v 一个 x l 2 + l d d + λ p 2

地点:

  • ω e 为定子电压频率所对应的电转速,单位为弧度/秒。

  • ω b 一个 年代 e 为电机的机械基本速度(弧度/秒)。

  • d d-轴电流(安培)。

  • 问-轴电流(安培)。

  • v d o d时-轴电压<年代p一个n class="inlineequation"> d 为零(伏特)。

  • v o 问时-轴电压<年代p一个n class="inlineequation"> 为零(伏特)。

  • l d d-轴绕组电感(亨利)。

  • l 问-轴绕组电感(亨利)。

  • R 年代 为定子相绕组电阻(欧姆)。

  • λ p 为永磁磁链(Weber)。

  • v d d轴电压(伏特)。

  • v 问轴电压(伏特)。

  • v 一个 x 为提供给电机的最大基本线到中性电压(峰值)(伏特)。

  • v d c 为输入到逆变器的直流电压(伏特)。

  • 一个 x 为电机的最大相电流(峰值)(安培)。

  • p 为电机极对数。

获取电机特性

这个函数mcb_getCharacteristics计算转矩,功率和电流的永磁同步电机的特性,这有助于您开发电机的控制算法。

该函数返回给定PMSM的这些特征:

  • 扭矩,而不是速度

  • 力量而不是速度

  • 我<年代ub>dq而不是速度

  • 我<年代ub>峰而不是速度

这个函数mcb_getCharacteristicsAcim计算电机和感应电机的驱动特性,帮助您开发电机的控制算法。

该函数返回给定感应电机的这些电机特性:

  • 扭矩,而不是速度

  • 力量而不是速度

函数返回给定感应电机的驱动特性:

  • 扭矩,而不是速度

  • 力量而不是速度

  • 我<年代ub>dq而不是速度

  • 我<年代ub>峰而不是速度

获取控制器增益

这个函数mcb.internal.SetControllerParameters计算用于磁场定向电机控制系统的PI控制器的增益。

可以使用此命令调用函数mcb.internal.SetControllerParameters:

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,时延);

阻尼系数(ζ)定义了二阶系统标准形式的动态行为,其中0<ζ<1[1]。欠阻尼系统比临界阻尼或过阻尼系统更快地接近最终值。在响应无振荡的系统中,临界阻尼系统的响应最快。过阻尼系统对任何输入的响应总是很慢。该参数的默认值为<年代p一个n class="inlineequation"> 1 2

对称最优因子(一个)定义交叉频率在两个转角频率的几何平均值处的位置,以获得导致速度环的最佳阻尼的最大相位裕度,其中一个>1[2]。该参数的默认值为1.2.

下面的示例介绍如何自定义参数:

传感器延迟百分比延迟。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,时延);

进行控制分析

这个函数mcb_getControlAnalysis对永磁同步电机FOC电流控制系统进行了基本的控制分析。该函数对用于磁场定向电机控制系统的PI控制器增益进行频域分析。

请注意

此功能需要控制系统工具箱。

当您调用此函数时(例如,mcb_getControlAnalysis(永磁同步电动机、逆变器、PU_System PI_params, Ts, Ts_speed)),对当前控制回路或分系统执行以下功能:

  • 闭环电流控制系统的传递函数

  • 根轨迹

  • 波德图

  • 稳定裕度(PM & GM)

  • 阶跃响应

  • PZ地图

函数绘制相应的图:

参考文献

[1]绪方,K.(2010)。现代控制工程。普伦蒂斯霍尔。

[2]莱昂哈德(2001)。电气驱动的控制。施普林格科学与商业媒体。86页。