太原理工大学控制系统仿真技术实验报告
连续系统的数字仿真
1.分别利用欧拉法和预估-校正法求下图所示系统的阶跃响应,并对其结果进行比较。

%欧拉法求阶跃响应
r=2;num0=8;den0=[1 3 0];
num1=1;den1=1;
[num,den]=feedback(num0,den0,num1,den1);
[A,B,C,D]=tf2ss(num,den);
Tf=input('仿真时间Tf=');h=input('计算步长h=');
x=[zeros(length(A),1)];y=0;t=0;
for i=1:Tf/hx=x+h*(A*x+B*r);y=[y;C*x];t=[t;t(i)+h];
end
plot(t,y);
%预估-校正法求阶跃响应
r=2;num0=8;den0=[1 3 0];
num1=1;den1=1;
[num,den]=feedback(num0,den0,num1,den1);
[A,B,C,D]=tf2ss(num,den);
Tf=input('仿真时间Tf=');h=input('计算步长h=');
x=[zeros(length(A),1)];y=0;t=0;
for i=1:Tf/hx1=x+h*(A*x+B*r);x=x+h*((A*x+B*r)+(A*x1+B*r))/2;y=[y;C*x];t=[t;t(i)+h];
end
plot(t,y);
%四阶龙格库塔法求阶跃响应
r=2;num0=8;den0=[1 3 0];
num1=1;den1=1;
[num,den]=feedback(num0,den0,num1,den1);
[A,B,C,D]=tf2ss(num,den);
Tf=input('仿真时间Tf=');h=input('计算步长h=');
x=[zeros(length(A),1)];y=0;t=0;
for i=1:Tf/hK1=A*x+B*r;K2=A*(x+h*K1/2)+B*r;K3=A*(x+h*K2/2)+B*r;K4=A*(x+h*K3)+B*r;x=x+h*(K1+2*K2+2*K3+K4)/6;y=[y;C*x];t=[t;t(i)+h];
end
plot(t,y);


2. 假设某一系统由四个典型环节组成,如下图所示:
分别用四阶龙格-库塔法和离散相似法求输出量 y 的动态响应曲线。
程序代码:(四阶—龙格库达法)

%针对系统结构图的四阶-龙格库塔法
r=10;P=[0.1  1 0.5 1;0 1 1 0;2 1 2 0;10 1 10 0];
W=[0 0 0 -1;1 0 0 0;0 1 0 0;0 0 1 0];
W0=[1;0;0;0];Wc=[0 0 0 1];
Tf=input('仿真时间Tf=');h=input('计算步长h=');
A1=diag(P(:,1));B1=diag(P(:,2));C1=diag(P(:,3));D1=diag(P(:,4));
H=B1-D1*W;Q=C1*W-A1;
A=inv(H)*Q;B=inv(H)*C1*W0;
x=[zeros(length(A),1)];y=[zeros(length(Wc(:,1)),1)];t=0;for i=1:Tf/hK1=A*x+B*r;K2=A*(x+h*K1/2)+B*r;K3=A*(x+h+K2/2)+B*r;K4=A*(x+h*K3)+B*r;x=x+h*(K1+2*K2+2*K3+K4)/6;y=[y;Wc*x];t=[t;t(i)+h];endplot(t,y);

(离散相似法)
即将下题目3中的P修改为
[0.1 1 0.5 1 0 0;0 1 1 0 0 0;2 1 2 0 0 0;10 1 10 0 0 0]

3.已知非线性系统如下图所示,试利用连续系统按环节离散化的数字仿真方法求 输出量 y 的动态响应,并与无非线性环节情况进行比较。

%ex2_23.m
%1前有饱和,2前有死区,3前有滞环,4是前有继电器,5后有饱和
%6后有死区,7后有滞环,8后有继电器
%注意P为从低到高
clear;
R=10;
P=[0.1 1 0.5 1 5 5;0 1 1 0 1 5;2 1 2 0 0 0;10 1 10 0 0 0];
W=[0 0 0 -1;1 0 0 0;0 1 0 0;0 0 1 0];
W0=[1;0;0;0];Wc=[0 0 0 1];
Tf=input('仿真时间Tf=');T=input('计算步长h=');
A=P(:,1);B=P(:,2);C=P(:,3);D=P(:,4);FZ=P(:,5);S=P(:,6);
n=length(A);
for i=1:nif(A(i)~=0)if(B(i)==0)E(i)=0;F(i)=0;G(i)=0;H(i)=0;L(i)=(C(i)+D(i)/T)/A(i);Q(i)=-D(i)/(A(i)*T);elseE(i)=exp(-A(i)*T/B(i));F(i)=(D(i)/B(i)-C(i)/A(i))*((1-E(i))*B(i)/(A(i)*T)-1);G(i)=(D(i)/B(i)-C(i)/A(i))*(1+(E(i)-1)*(1+B(i)/(A(i)*T)));H(i)=1;L(i)=D(i)/B(i);Q(i)=0;endelseif(B(i)~=0)E(i)=1;F(i)=0.5*C(i)*T/B(i);G(i)=F(i);H(i)=1;L(i)=D(i)/B(i);Q(i)=0;elsedisp('A(i)=B(i)=0');endend
end
x=[zeros(length(A),1)];x0=x;z=x;
u=[zeros(length(A),1)];u0=u;
y=[zeros(length(Wc(:,1)),1)];t=0;
for j=1:Tf/Tu1=u;u=W*x+W0*R;for i=1:nif(FZ(i)~=0)if(FZ(i)==1) u(i)=saturation1(u(i),S(i));endif(FZ(i)==2) u(i)=deadzone1(u(i),S(i));endif(FZ(i)==3)[u(i),u0(i)]=backlash1(u0(i),u(i),u1(i),S(i));endif(FZ(i)==4)u(i)=sign1(u(i),S(i));endendendx1=x;for i=1:nz(i)=E(i)*z(i)+F(i)*u(i)+G(i)*u1(i);x(i)=H(i)*z(i)+L(i)*u(i)+Q(i)*u1(i);endfor i=1:nif(FZ(i)~=0)if(FZ(i)==5)x(i)=saturation1(x(i),S(i));endif(FZ(i)==6)x(i)=deadzone1(x(i),S(i));endif(FZ(i)==7)[x(i),x0(i)]=backlash1(x0(i),x(i),x1(i),S(i));endif(FZ(i)==8)x(i)=sign1(x(i),S(i));endendendy=[y;Wc*x];t=[t;t(j)+T];
end
plot(t,y)

注意这个程序里面还嵌套着saturation1,deadzone1,backlash1,sign1函数,所以还需要再相应创建这些函数

%饱和非线性
%saturation1.m
function x = saturation1(u,s)
if(abs(u)>=s)if(u>0) x=s;elsex=-s;end
elsex=u;
end
%死区非线性
%deadzone1.m
function x = deadzone1(u,s)
if(abs(u)>=s)if(u>0)x=u-s;elsex=u+s;end
elsex=0;
end
%滞环非线性
%backlash1.m
function x = backlash1(u1,u,x1,s)
if(u>u1)if((u-s)>=x1)x=u-s;elsex=x1;end
else if(u<u1)if((u+s)<=x1)x=u+s;elsex=x1;endelsex=x1;end
end
u1=u;
%继电器非线性
%sign1.m
function x = sign1(u,s)
if(u>0)x=s;
end
if(u<0)x=-s;
end

控制系统仿真技术(二)-连续系统的数字仿真二相关推荐

  1. 控制系统仿真技术(一)仿真软件-MATLAB

    太原理工大学控制系统仿真技术实验报告 在 MATLAB下输入矩阵 , ,并使用以下命令要求输出结果:A& B , A|B ,xor(A,B), A.*B. 答案: >> A=[1 ...

  2. matlab c2d 零阶保持器,计控实验二 连续系统变换为离散系统

    实验二 连续系统变换为离散系统 一.实验目的 在对连续系统进行实时计算机控制时,往往需要把连续系统转换成离散系统. 二.实验指导 为了得到连续系统的离散化数学模型,Matlab 提供了c2d()函数. ...

  3. 一连串数字怎么转换成二维码?数字生成二维码如何制作?

    当我们使用二维码内容做成数字时该如何制作呢,比如做成标签码,序号码,号码牌等等,都可以使用数字二维码来展示,那么如何操作才能将一连串数字做成二维码呢?下面给大家分享一下数字静态二维码和数字微信活码的制 ...

  4. 连续系统的数字PID控制仿真-1

    被控对象为一电机模型传递函数: 式中,J = 0.0067;B=0.10. 采用M函数的形式,利用ODE45的方法求解连续对象方程,输入指令信号为yd(k)=0.50sin(2*3.14*t),采用P ...

  5. 基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真

      本文是对文献 [1] 的复现. 文章目录 更新日志 关于阻抗控制 离散化阻抗控制控制器的实现 基于阻抗控制的工业机器人轨迹跟踪系统仿真 ■ 环境说明 ■ 系统说明 ■ 结果展示 后记 项目开源 参 ...

  6. 计算机辅助设计及仿真,控制系统的数字仿真及计算机辅助设计.pdf

    控制系统的数字仿真 及计算机辅助设计 课程相关信息 • 任课教师 徐祖华副教授 办公室:工控新楼413房间 Email :zhxu@ 手机 2019/2/27 控制系统仿真 2 课程相关信息 • 助教 ...

  7. P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 13. 最优控制系统 13.1 Matlab ...

  8. 控制系统仿真技术类毕业论文文献包含哪些?

    本文是为大家整理的控制系统仿真技术主题相关的10篇毕业论文文献,包括5篇期刊论文和5篇学位论文,为控制系统仿真技术选题相关人员撰写毕业论文提供参考. 1.[期刊论文]系统仿真技术在风洞控制系统中的应用 ...

  9. P3 Simulink仿真-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 3. Simulink 仿真 书中详细实例代 ...

最新文章

  1. 北大教授杨超、清华教授唐杰获首届“王选杰出青年学者奖”
  2. 【SQLAlchemy】简单整理filter和filter_by的区别
  3. windows编译libevent时报告“缺少print_winsock_errors.obj”的解决
  4. “约见”面试官系列之常见面试题第十六篇之http(建议收藏)
  5. linux 桌面使用体验 远程访问win for linux
  6. setState(prevState)
  7. 强大实用的DISM命令
  8. 基于SSM的汽车订票系统
  9. 我在16ASPX下了一个系统是ACCESS和VS2005做的我想把那个连接数据库的'DB_16aspx'的名字改了进不了了可是?...
  10. java使用ffmpeg进行视频处理
  11. 格兰因果模型可以分析哪些东西_计量 | 使用向量自回归模型(VAR)的操作要点,必备!...
  12. python标准库模块——json库的用法
  13. Java实习日记(3)
  14. 加密公司如何获得硅谷传奇风投a16z的青睐
  15. 可以插卡的ipad_平板电脑可以插手机卡吗,终于能插卡了!苹果iPad 2018蜂窝网络版上架国内官网...
  16. 微信小程序数据拼接_微信小程序数据处理
  17. 如何更改Windows桌面文件夹路径
  18. 各种音视频编解码学习详解(7)--微软Windows Media系列
  19. laysns模板系统仿善恶模版 完美自适应
  20. 00 全国计算机技术与软件专业技术资格(软考)考试介绍

热门文章

  1. 银联快捷支付退款 Pay
  2. Java日志框架——Logback
  3. 一些边边角角的东西。
  4. java装了1.8,更换成11后,-version还是显示java8的解决方法
  5. 关于form表单提交时的坑,submit,submit,submit
  6. 在word插入钢筋符号
  7. 计算机字符格式化集体备课教案,集体备课教案范文
  8. hyperf 命令行,自定义命令(更换文件目录不生效 - 需配置)
  9. 简单好用的网络保护软件 lulu for mac 支持big sur系统
  10. [Tips] 电路设计者常用的学习网站