主要内容

构建可调模型

此示例展示如何创建用于的控制系统的可调模型systunelooptune

背景

你可以调整增益和参数的控制系统systunelooptune.要使用这些命令,您需要构造一个控制系统的可调模型,该模型识别并参数化其可调元素。这是通过将固定元素的数值LTI模型与可调元素的参数模型结合起来实现的。

使用预定义的可调元素

您可以使用以下“参数”块之一来建模常见的可调元素:

  • tunableGain:可调增益

  • tunablePID:可调PID控制器

  • tunablePID2:可调二自由度PID控制器

  • tunableTF:可调传递函数

  • 可调参数:可调状态空间模型。

例如,创建图1中前馈/反馈配置的可调模型 C 是可调PID控制器和 F 是可调的一阶传递函数。

图1:前馈和反馈路径控制系统

首先对框图中的每个块建模,使用合适的参数块进行 C 而且 F

G = tf(1,[1 1]);C =可调谐pid (“C”“pid”);%可调PID块F =可调F(“F”0 1);%可调一阶传递函数

然后使用连接建立模型的整体框图。要指定块如何连接,请标记每个块的输入和输出,并使用求和连接建模sumblk

G.u =“u”;G.y =“y”;C.u =“e”;陈守惠=加州大学的;F.u =“r”;F.y =佛罗里达大学的求和连接S1 = sumblk('e = r-y');S2 = sumblk('u = uF + uC');T =连接(G,C,F,S1,S2,“r”“y”
T =广义连续时间状态空间模型,有1个输出,1个输入,3个状态,和以下块:C:可调谐PID控制器,1次出现。F:可调的单iso传递函数,0个零,1个极点,1次出现。输入“ss(T)”查看当前值,输入“get(T)”查看所有属性,输入“T. blocks”与块交互。

这将创建一个广义状态空间模型T闭环传递函数的ry.该模型依赖于可调块C而且F.你可以使用systune自动调整PID增益和前馈系数a、b视您的性能要求而定。使用showTunable查看可调块的当前值。

showTunable (T)
C = 1 Ki *——s with Ki = 0.001名称:C连续时间I-only控制器。----------------------------------- = 10 - s + 10的名字:F连续时间传递函数。

与可调参数交互

您可以调整可调元素的参数化 C 而且 F 通过与对象交互C而且F.使用得到查看它们的属性列表。

得到(C)
Kp: [1x1参数。连续] Ki: [1x1 param.Continuous] Kd: [1x1 param.Continuous] Tf: [1x1 param.Continuous] IFormula: '' DFormula: '' Name: 'C' Ts: 0 TimeUnit: 'seconds' InputName: {'e'} InputUnit: {''} InputGroup: [1x1 struct] OutputName: {'uC'} OutputUnit: {''} OutputGroup: [1x1 struct] Notes: [0x1 string] UserData: []

PID控制器有四个可调参数Kp、Ki Kd,特遣部队.可调块C包含每个参数的描述。参数属性包括当前值、最小值和最大值,以及参数是自由值还是固定值。

C.Kp
ans =名称:'Kp'值:0最小值:-无穷大最大值:无穷大Free: 1 Scale: 1 Info: [1x1 struct] 1x1参数。连续

设置相应的属性以覆盖默认值。例如,你可以固定时间常数特遣部队到值0.1 by

C.Tf.Value = 0.1;C.Tf.Free = false;

创建自定义可调元素

对于上面列出的预定义块中没有涵盖的可调元素,您可以根据基本实参数创建自己的参数化(realp).考虑低通滤波器

F 年代 一个 年代 + 一个

其中系数 一个 是可调的。要对这个可调元素建模,请创建一个实参数 一个 和定义 F 作为传递函数,它的分子和分母是 一个 .这将创建一个广义状态空间模型F由可调标量参数化的低通滤波器一个

A = realp(“一个”1);% real可调参数,初始值1F = tf(a,[1 a])
F =广义连续时间状态空间模型,有1个输出,1个输入,1个状态,以及以下块:a:标量参数,出现2次。输入“ss(F)”查看当前值,输入“get(F)”查看所有属性,输入“F. blocks”与块交互。

类似地,您可以使用真实参数来建模陷波滤波器

N 年代 年代 2 + 2 ζ 1 ω n 年代 + ω n 2 年代 2 + 2 ζ 2 ω n 年代 + ω n 2

系数可调 ω n ζ 1 ζ 2

Wn = realp“wn”, 100);Zeta1 = realp(“zeta1”1);zeta1。最大值= 1;% zeta1 <= 1zet2 = realp(“zeta2”1);zeta2。最大值= 1;% zeta2 <= 1N = tf([1 2*zeta1*wn wn^2],[1 2*zeta2*wn wn^2]);%可调陷波滤波器

您还可以使用矩阵值参数创建可调元素。例如,建模基于观测器的控制器 C 年代 与方程

d x d t 一个 x + B u + l y - C x u - K x

和可调增益矩阵 K 而且 l

有6个状态,2个对照,3个测量[A,B,C] = ssdata(rss(6,3,2));K = realp(“K”0 (2,6));L = realp“L”, 0 (6,3));C = ss(A-B*K-L*C,L,-K,0)
C =广义连续时间状态空间模型,有2个输出,3个输入,6个状态,和以下块:K:可调2x6矩阵,出现2次。L:可调6x3矩阵,2次。输入“ss(C)”查看当前值,输入“get(C)”查看所有属性,输入“C. blocks”与块交互。

启用开环需求

systuneCommand采用整个控制系统的闭环模型,类似于可调模型T在本例开始时构建。这样的模型不容易支持开环分析或开环规格,如环形状和稳定金宝app裕度。要获得对开环响应的访问权限,请插入AnalysisPoint如图2所示。

图2:分析点块

AnalysisPointBlock可用于标记感兴趣的内部信号以及打开反馈循环和测量开环响应的位置。此块计算为单位增益,对模型响应没有影响。例如,构造一个闭环模型T的反馈回路,其中 C 是可调PID。

G = tf(1,[1 1]);C =可调谐pid (“C”“pid”);AP =分析点(“X”);T =反馈(G*C,AP);

您现在可以使用getLoopTransfer计算在“X”位置测量的(负反馈)循环传递函数。注意,这个循环传递函数为 l G C 为图2的反馈循环。

L = getLoopTransfer(T,“X”1);%循环传输在“X”clf,波德(L,“b”C、G *,“r——”

图中包含2个轴对象。标题为From: X To: X的轴对象1包含2个类型为line的对象。这些对象代表L, untitled1。坐标轴对象2包含2个line类型的对象。这些对象代表L, untitled1。

的目标循环形状或稳定裕度时,也可以参考位置“X”systune.该要求适用于在此位置测量的环路传输。

%用于在“X”处传输循环的目标循环形状Req1 = TuningGoal。LoopShape (“X”[1 0],特遣部队(5));“X”处环路传输的目标稳定裕度Req2 = TuningGoal。利润(“X”6、40);

方法中指定了循环开口位置位置的属性AnalysisPoint块。对于单通道分析点,块名作为默认位置名。对于多通道分析点,将索引附加到块名后,以形成默认的位置名称。

AP =分析点(“Y”2);%双通道分析点AP.Location
ans =2 x1细胞{“Y”(1)}{“Y”(2)}

控件可以覆盖默认位置名称,并使用更具描述性的名称位置财产。

将循环开口位置重命名为“内环”和“外环”。AP.Location = {“InnerLoop”“远核圈”};AP.Location
ans =2 x1细胞{' InnerLoop}{“远核圈”}

另请参阅

相关的话题