simulink pid controller传递函数怎么设置
方法如下:在Simulink模型实现一个连续或离散时间控制器(PID,PI,PD,P,I)。 PID控制器的增益是可调的手动或自动方式。自动调整需要Simulink控制设计软件(PID调谐器或SISO设计工具)。 PID Controller block块的输出是输入的加权总和的信号,输入信号的积分,和输入信号的导数。权重比例,积分和微分增益参数。一阶极点滤波器的微分动作。 PID Controller模块的配置选项包括: 控制器的类型(PID,PI,PD,P,或我) 控制器形式(并行或理想) 时域(连续或离散) 初始条件和复位触发 输出饱和的限制,并内置抗饱和机制 无波动地控制传输的信号跟踪和多回路控制 在一个公共执行方式中,PID控制器块的前馈路径中的反馈环路工作:
块的输入端通常是一个误差信号,
这是一个参考信号和所述系统的输出之间的差异。对于两个输入的块,允许给定值的加权,请参阅PID Controller (2 DOF))块。 可以生成代码来实现你的控制器可以使用任何Simulink的数据类型,包括定点数据类型。(代码生成需要Simulink编码器软件定点的实现需要定点工具箱)。
PID模块如下图所示,
设置参数时,双击该模块,会弹出如下对话框
对应设置P、I、D参数即可,这里N一般默认即可。注意matlab中的PID形式和一般意义的PID形式略有不同,我在下面这个问题回答中进行过相应的解释,你可以参考一下。
http://zhidao.baidu.com/question/488483471742574492.html?from=pubpage&msgtype=2
我的离散PID模块和你的这个界面不一样,你用的是哪个版本?
我的离散pid模块如下:
不过大体选项都差不多,你的前三个K分别为比例系数、积分系数、微分系数。注意积分系数和微分系数不是我们所说的PID参数。具体参考我这个回答中所阐述的各系数和PID参数的关系。
http://zhidao.baidu.com/question/1987840784151604947.html?oldq=1
time constant for derivative是微分时间常数的意思,我也不太明白这里为什么会有这个选项,理论上确定下面采样时间和微分系数,那么微分时间常数应该是定值啊,不懂?
接下来是控制器输出的上下限,相当于在后面加了的饱和环节,如下:
这个对应的在我的PID模块中PID Advanced选项卡中。
最后两个分别是初始化控制器输出和采样时间。
模糊PID我没做过,只懂个大概意思。就是根据误差值的变化率进行模糊推理求出PID参数。也就是说PID参数是不断改变的,我建议你用自己用传函写一个PID模块。这样可以改变PID的参数。如下是一个自己编写的pi调节器做控制器的例子,当然也可以用matlab中自带的模块:
上面一般模型是将pi写在一起了,而下面那个将pi分开。可以分开调节参数。你的模糊控制就和下面那个差不多,只是我这里是手动调节pi参数看曲线。你的应该是经过一个模糊推理求出pi参数。
ps:我大概给你解释一下simulink中的4个pid模块吧
simulink中一共有上面四个pid控制器,里面可选pid、pi、pd条件方式。
第一个为连续的基本pid模型,第二个为连续双自由度pid控制器。第三个和第四个对应的是离散时的控制器。
一般能用普通pid控制的就不要用智能pid,很麻烦。当然如果你模糊规则定的好的话,调出来的效果比普通pid要好。方法选择上你自己看吧,如果你是要做毕设、写论文之类的可以用模糊pid。毕竟这玩意不管好不好,必须要高端。要是做普通项目的话,建议你选择普通pid。毕竟你不太了解控制理论,直接用智能算法可能比较吃力。
2014-05-05