网站大量收购闲置独家精品文档,联系QQ:2885784924

《网络控制系统分析与设计》仿真程序.doc

《网络控制系统分析与设计》仿真程序.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《网络控制系统分析与设计》仿真程序

《网络控制系统分析与设计function sensor_init %初始化内核模块 ttInitKernel(1,0,prioFP)%1个输入,0个输出,固定优先级 %创建传感器任务 data.y=0; offset=0; period=.010; prio=1; ttCreatePeriodicTask(sens_task,offset,period,prio,senscode,data);%由senscode函数实现 %初始化网络 ttCreateInterruptHandler(nw_handler,prio,msgRcvSensor); ttInitNetwork(3,nw_handler); %在网络中的节点号为3 2传感器节点任务代码 function [exectime,data]=senscode(seg,data) switch seg, case 1, data.y=ttAnalogIn(1); exectime=0; case 2, ttSendMsg(4,data.y,10); exectime=.001;%若exectime=0,无时延 case 3, exectime=-1; %结束 end 3 PID控制器节点初始化 function controller_init %初始化内核模块 ttInitKernel(1,0,prioFP); %1个输入,0个输出,固定优先级 h=0.010;%采样时间 Kp=1000%比例增益 Ki=1;%积分增益 Kd=42;%微分增益 %PID控制部分 data.u=0.0; data.Kp=Kp; data.Ki=Ki; data.Kd=Kd; data.Dold=0.0; data.yold=0.0; data.Eold=0.0; %创建控制器任务 deadline=h; prio=2; ttCreateTask(pid_task,deadline,prio,ctrlcode,data);%由ctrlcode函数实现PID控制 %初始化网络 ttCreateInterruptHandler(nw_handler,prio,msgRcvCtrl); ttInitNetwork(4,nw_handler);%网络节点号为4 4 PID控制器节点任务代码 function [exectime,data]=ctrlcode(seg,data) switch seg, case 1, %PID控制算法 y=ttGetMsg; r=ttAnalogIn(1); h=0.01;%采样周期 P=data.Kp*(r-y); I=data.Dold+(r-y)*h; D=(r-y-data.Eold)/h; data.u=P+data.Ki*I+data.Kd*D; data.Dold=I; data.yold=y; data.Eold=r-y; exectime=0.001; %若exectime=0,无时延 case 2, ttSendMsg(2,data.u,10); exectime=-1; end 5 执行器节点初始化 function actuator_init %初始化内核模块 ttInitKernel(0,1,prioFP); %1个输入,0个输出,固定优先级 %创建执行器任务 deadline=100; prio=1; ttCreateTask(act_task,deadline,prio,actcode); %初始化网络 ttCreateInterruptHandler(nw_handler,prio,msgRcvActuator); ttInitNetwork(2,nw_handler);%网络节点号为2 6 执行器节点任务代码 function [exectime,data]=actcode(seg,data) switch seg, case 1, data.u=ttGetMsg;%获取数据 exectime=.001%若 exectime=0,则无时延 case 2, ttAnalogOut(1,data.u);%将数据发送出去 exectime=-1; end 7 干扰节点初始化 function interference_init %初始化内核模块 tt

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档