校正控制器(传递函数)转化为算法的简单描述    实际工程中直接使用matlab进行离散化操作,不需要手算

转化成算法的步骤:先对校正器的传递函数进行Z变换(matlab实现),转化为差分方程然后就可以用C语言写出来了。

1、传递函数的形式

以小球平面系统的超前校正器传递函数为例:

在matlab里面建立这个传递函数的命令就是:

sys=tf([0.38182 00],[1 2.009 0.002]);

2、传递函数离散化

dsys = c2d(sys,0.001);

dsys结果:

Transfer function:

0.3818 z^2 -0.7636 z + 0.3818

------------------------------

z^2 - 1.998 z + 0.998

c2d();函数使用方法(在matlab使用F1查看):

c2d

Convert from continuous- todiscrete-time models

Syntax

sysd = c2d(sys,Ts)
sysd = c2d(sys,Ts,method)
sysd = c2d(sys,Ts,opts)
[sysd,G] = c2d(sys,Ts,method)
[sysd,G] = c2d(sys,Ts,opts)

3、转化为差分方程

0.3818 z^2 - 0.7636 z + 0.3818

------------------------------

z^2- 1.998 z + 0.998

dsys =(0.3818z^2-0.7636z+0.3818)/(z^2-1.998z+0.998);

y/u =dsys; y是输出,u是输入。

转化为y的方程:

(z^2-1.998z+0.998)y = (0.3818z^2-0.7636z+0.3818)u

注意Z^(-n)表示信号在时间上要前移动n个采样周期。

y*z^2转化为 Yk+2

处理过后:

接下来就可以使用C语言进行编程, uk为当前输入,uk-1为上一次输入,yk为当前输出,yk-1为上一次采样输出。

控制算法之超前-滞后补偿器(Lead_Lag Compensator)

Manutec机器人系统校正

有些理解还是能说到点子上的

PID控制器、超前校正网络等经典传递函数的C语言实现       说了些理论计算与实际工程更好达到一致的注意事项

考虑到这是理论上的连续系统,实际上我们在C语言只能是离散系统,因此继续变成差分方程:

需要注意,一定不要漏掉I项和D项的T。这个T是程序实现差分方程的采样时间,也就是多久调用一次这个函数。比如PID控制是5ms控制一次,那么这个T就是。网上很多推导,推导最后漏掉了这两个T,虽然说这样也能调出合适的参数,只是这样调出来的Ki和Kd与理论值会差一个T倍的系数,因此为了能把理论值直接用上,这个T不要漏掉。包括之后所有的差分方程,都有一个T。

控制-超前校正-C语言实现相关推荐

  1. 机电控制基础之超前校正

    自动控制原理属于本科生学习范畴,期间没有学明白,研究生阶段再次补上,学霸君可略过. 1.系统校正问题的提出 在系统设计时,常常遇到不能满足性能指标要求的情况,甚至有时不同性能要求间相互矛盾.为了满足稳 ...

  2. matlab线性串联校正,基于MATLAB串联超前校正设计.ppt

    MATLAB是一个具有多种功能的大型软件,借助于MATLAB可靠的仿真和运算功能,可以使控制系统分析与设计问题变得简单,它为控制系统的设计和仿真提供了一个有力的工具.从而大大提高工作效率. 超前校正设 ...

  3. 滞后超前校正控制器的设计和matlab仿真 静态速度误差系数为10,自控实验六 基于频域的串联校正控制器设置 - GXUZF.COM - 林澈思的茶...

    广西大学电气工程学院 <自动控制理论>实验报告 广西大学电气工程学院 <自动控制理论>实验报告 成绩 教师签字 学生姓名 赵帆 学号 17021***** 专业班级 电自171 ...

  4. matlab根轨迹法串联超前校正,4.7基于根轨迹法的串联超前校正.ppt

    4.7基于根轨迹法的串联超前校正.ppt * * 4.7 基于根轨迹法的串联超前校正 系统的动态指标设计要求 在根轨迹上标定闭环极点的位置 求出闭环极点处相应的参数 值 求出开环放大倍数 根据闭环极点 ...

  5. 频域串联滞后校正matlab,基于MATLAB的串联超前校正、滞后校正和串联滞后-超前校正设计.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于MATLAB的串联超前校正.滞后校正和串联滞后 ...

  6. 温控仪C语言程序,模糊PID控制温控系统设计C语言程序代码

    <模糊PID控制温控系统设计C语言程序代码>由会员分享,可在线阅读,更多相关<模糊PID控制温控系统设计C语言程序代码(17页珍藏版)>请在人人文库网上搜索. 1.*模糊PID ...

  7. c语言按键控制的步进电机程序,独立按键控制步进电机运转c语言程序

    独立按键控制步进电机运转c语言程序 /* * 名称:步进电机 * * 晶振:12MHZ * * 修改:无 * * 内容: 主程序中用 3 个按键,加速.减速.启动和停止.定时器做数码* * 管动态扫描 ...

  8. 温控系统c语言源代码,模糊PID控制温控系统设计C语言程序代码

    <模糊PID控制温控系统设计C语言程序代码>由会员分享,可在线阅读,更多相关<模糊PID控制温控系统设计C语言程序代码(17页珍藏版)>请在人人文库网上搜索. 1.模糊PID控 ...

  9. 【课设必备】-Matlab设计串联滞后超前校正-纯干货

    Matlab设计串联滞后超前校正 串联滞后超前校正步骤: 1.确定原系统. 2.根据期望截止频率ωc∗ω_c^*ωc∗​,确定超前装置最大超前角φm=γ∗−γ0(ωc∗)+6°φ_m=\gamma^* ...

最新文章

  1. 磁盘配额的wmi版本(C#)
  2. 前端各阶段资源,学得完算我输
  3. Spring Boot错误处理机制以及定制自己的错误页面
  4. springboot中接口实例化_疫情爆发在家闲出屁的我,梳理一下SpringBoot知识点
  5. Photoshop CS5完全自学实战实例视频教程
  6. ERROR:Tried to register widget id ==basemapGalleryDiv but that id is already registered解决办法
  7. 用 toto 3分钟建轻量级博客
  8. Python 中的黑暗角落(一):理解 yield 关键字
  9. java编译可执行文件_Java编译器完成但没有创建可执行文件?
  10. 是什么 通信中unit_Ubuntu Linux中的特权提升漏洞Dirty Sock分析(含PoC)
  11. 《汇编语言》——王爽第三版笔记(1-3章)
  12. Spring Boot 集成maven和Spring boot的profile功能
  13. 【Java入门基础第6天】六款Java常用的开发工具 废话少说-上号
  14. Word 转 PDF 后目录链接无效的解决办法
  15. 微信小程序----Grid(九宫格)(flex实现九宫格布局)
  16. html 缩小时字体错位,微信字体设置导致页面错位的解决方法
  17. quot;多看nbsp;fornbsp;kindle3”升级包下载
  18. SAP EWM仓储管理系统与自动化仓储硬件对接方案介绍
  19. 小程序源码:开心锤锤超火动态表情包
  20. 数组,数组的定义,数组的注意事项

热门文章

  1. cefsharp 发送请求服务器_WEB服务器之HTTP协议
  2. python线程池模块_python并发编程之进程池,线程池,协程
  3. OpenResty+Keepalived组建高可用集群+双主模式
  4. Selenium + Python + Chrome 自动化测试 环境搭建
  5. MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决
  6. JavaScript规范
  7. JavaEE Tutorials (15) - 对Java持久化API应用使用二级缓存
  8. [Swift]NSString、NSData、Base64互转
  9. Python内部机制。
  10. 嵌入式软件工程师笔试题(含答案)