我是靠谱客的博主 贤惠大船,最近开发中收集的这篇文章主要介绍matlab差分方程转化为状态方程,怎么用matlab把传递函数转成差分方程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

[转载]怎么用matlab把传递函数转成差分方程

已有1019 次阅读 2012-2-10 17:33 |系统分类:科研笔记|关键词:方程函数matlab

以下是PID控制的部分代码(matlab的m文件):

ts=0.001;采样时间=0.001s

sys=tf(400,[1,50,0]);建立被控对象传递函数

dsys=c2d(sys,ts,'z');把传递函数离散化(问题1)

[num,den]=tfdata(dsys,'v');离散化后提取分子、分母

rin=1.0;输入为阶跃信号

u_1=0.0; u_2=0.0; 什么东西的初始状态(问题2)

y_1=0.0; y_2=0.0; 是不是输出的初始状态

error_1=0;初始误差

x=[0 0 0]';PID的3个参数Kp Ki Kd组成的数组

p=100;仿真时间100ms

for k=1:1:p

r(k)=rin;

u(k)=kpidi(1)*x(1)+kpidi(2)*x(2)+kpidi(3)*x(3)

if u(k)>=10

u(k)=10;

end

if u(k)<=-10

u(k)=-10;

end

yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;(问题3)

error(k)=r(k)-yout(k);

%返回pid参数

u_2=u_1;u_1=u(k);

y_2=y_1;y_1=yout(k);

x(1)=error(k);

x(2)=(error(k)-error_1)/ts;

x(3)=x(3)+error(k)*ts;

error_2=error_1;

error_1=error(k);

end

问题1:把传递函数离散化[SYSD,G]=C2D(SYSC,Ts,METHOD)这里面的method有好多种,而且用的method不一样得出的结果也不一样,这些参数究竟有什么区别?

最后

以上就是贤惠大船为你收集整理的matlab差分方程转化为状态方程,怎么用matlab把传递函数转成差分方程的全部内容,希望文章能够帮你解决matlab差分方程转化为状态方程,怎么用matlab把传递函数转成差分方程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部