用MATLB仿真一个单闭环控制量,同时还存在两个开环控制变量的阶跃响应曲线。(自动控制方法是PID中的P控制。通过查表法直接给开环参数稳态最佳的大小)

实际项目背景:甘肃省,航天510所的LIPS100电推力器。一共有三个控制变量,开环控制变量是:Ia(阳极电流)、mmrf(阳极主流率) 这个阳极主流率是阀门变量,不能够突变,模拟用(大学一年级课,电路分析基础中)类似电感放电的e指数公式。

要求:比例控制参数P可调,阶跃响应在通电前设定幅值3.5~12.8 假设仿真实验时长120S,在第60S时给定阶跃控制信号。

  1. 把查表用的TXT文件放到MATLAB当前文件夹路径。fDemandToIa.txt和subBestSchedule_2.txt
  2. MATLAB仿真脚本名称为 stepEmulation.m 可以用记事本打开(推荐使用Notepad++)
  3. 仿真脚本中用详尽的注释标注了 比例控制参数pParameter以及阶跃控制信号幅值:
  4. f_stepaFd = 7  ;    %——————————————————修改阶跃初始值
  5. f_stepbFd = 4 ;    %——————————————————修改阶跃终末值

脚本代码如下可供参考,自动化专业毕业的我转行IT做码农:

% M脚本实现的功能是,根据输入的各项参数仿真推力跟随阶跃控制信号的性能
% 作者[email protected]
% 时间2019年07月18日  甘肃兰州
   clear;close all;
   pParameter = 0.003 ;%——————————————————修改比例控制参数
   f_step0Fd = 0  ;  %启动开机前需求幅值应为0
 % 载入需求推力和阳极电流与主流率之间的查表文件
   fDemandToIa = load(‘fDemandToIa.txt‘);
   subBestSchedule_2 = load(‘subBestSchedule_2.txt‘);
 % 两次阶跃信号的幅值,单位 %‘Unit:mN
 % 强制要求精度最高到0.001否则报错
   f_stepaFd = 7  ;    %——————————————————修改阶跃初始值
   f_stepbFd = 4 ;    %——————————————————修改阶跃终末值

 % 仿真总时间,单位S
 totalTime = 120; 

 % 人为给定阶跃信号的时刻,单位S
 stepActionTime = 60;

 % 仿真的控制步长时间长度,单位S
 % 100ms = 0.1S
 delta_t = 0.1;

 % 整个仿真过程的步进数为totalSteps
   totalSteps = totalTime/delta_t;
   tao = 10;  %单位秒S是阀门的时间常数
   flag = stepActionTime/delta_t;
 % 通过查表对比返回一个索引值对应的主流率大小
   mmfrNoa = find(subBestSchedule_2(:,1) == f_stepaFd);
   mmfr_stepaFd = subBestSchedule_2(mmfrNoa,2);
 % 循环产生第一阶段的实际模型主流率
 for j = 1:flag
mmfrN1(j)=(f_step0Fd)+(mmfr_stepaFd-(f_step0Fd))*(1-exp(-j*delta_t/tao));
 end
  % 通过查表对比返回一个索引值对应的主流率大小
   mmfrNob = find(subBestSchedule_2(:,1) == f_stepbFd);
   mmfr_stepbFd = subBestSchedule_2(mmfrNob,2);
 % 循环产生第二阶段的实际模型主流率
 for k =1:((totalTime-stepActionTime)/delta_t)
mmfrN2(k)= mmfr_stepaFd+(mmfr_stepbFd-mmfr_stepaFd)*(1-exp(-k*delta_t/tao));
 end
 %%把上面的两个主流率实际模型过程补在一起
   mmfrNN = [mmfrN1 mmfrN2];
 % 通过查表对比返回一个索引值对应的阳极电流大小
   IaNoa = find(fDemandToIa(:,1) == f_stepaFd);
   Ia_stepaFd = fDemandToIa(IaNoa,2);
   IaNob = find(fDemandToIa(:,1) == f_stepbFd);
   Ia_stepbFd = fDemandToIa(IaNob,2); 

 %%这里给模拟的传递函数中的固定参数赋值常量
         k1  = -42.6390869166903;
         k2  = -1.32483293227065;
         k3  = 0.200510429472484;
         k4  = -5.70516914317562;
         k5  = 37.163468956944;
         k6  = 2.95838142236669;
         k7  = 1.15327067269415;
         k8  = 0.6243246881009;

 % 产生两个数组
   stepActionTime_JieShu =((totalTime-stepActionTime)/delta_t);
 % zeros(m,n:);  %生成m*n的全0矩阵
   ia_a=ones(flag,1);
   ia_b=ones(stepActionTime_JieShu,1);
   ia_a=ia_a*Ia_stepaFd;
   ia_b=ia_b*Ia_stepbFd;
 % 把上面两个阶段的阳极电流矩阵拼接在一起
   ia =[ia_a ia_b];
 % ones(m,n) ;生成m*n的全1矩阵
   f_demand_a=ones(flag,1);
   f_demand_b=ones(stepActionTime_JieShu,1);
   f_demand_a=f_demand_a*f_stepaFd;
   f_demand_b=f_demand_b*f_stepbFd;
   f_demand = [f_demand_a f_demand_b];

 % 循环模拟每个控制周期
 % 初始情况下的实际推力和励磁电流应该为0
   im =zeros(totalSteps,1);
   ff =zeros(totalSteps,1);

for  i = 1: totalSteps

        ff(i) = k1 * (1 - exp(k2 * mmfrNN(i))) * im(i) * im(i) ...
                + (k3 * (mmfrNN(i) * ia(i)) * (mmfrNN(i) * ia(i)) + k4 * (mmfrNN(i) * ia(i)) + k5 * sqrt(mmfrNN(i) * ia(i)) + k6) * im(i)...
                + k7 * (1 - exp(k8 * mmfrNN(i)));

        im(i+1) = im(i) + pParameter*( f_demand(i) - ff(i) );
        if i == (totalSteps-1)
        break;
        end
 end

% 画图输出
% 用循环构造时间序列
for  j = 1:totalSteps
t(j) = j;
end

%%把推力的0.2倍幅值、主流率、励磁电流绘制在同一幅图里
%%
figure(2)
plot(t,ff*0.2,‘b‘)   %推力函数值用蓝色
hold on  %MATLAB同一个figure里绘图保持命令
plot (t,mmfrNN,‘r‘)  %主流率处理后用红色
plot(t,im*4,‘g‘)       %闭环参数励磁电流用绿色
xlabel(‘时间 s‘);
ylabel(‘‘);
legend(‘推力‘,‘主流率‘,‘励磁电流‘);
title(‘主流率实际模型;推力×0.2显示;励磁电流×4‘)
grid on;   %打开网格

可以发现:实际仿真得到的推力蓝色线条的变化趋势和绿色的闭环反馈控制参数的变化趋势是一致的。

原文地址:https://www.cnblogs.com/MarlonKang/p/11210420.html

时间: 2024-11-05 17:19:40

用MATLB仿真一个单闭环控制量,同时还存在两个开环控制变量的阶跃响应曲线。(自动控制方法是PID中的P控制。通过查表法直接给开环参数稳态最佳的大小)的相关文章

语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet,语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类;目标检测只有两类,目标和非目标,就是在一张图片中找到并用box标注出所有的目标.

from:https://blog.csdn.net/u012931582/article/details/70314859 2017年04月21日 14:54:10 阅读数:4369 前言 在这里,先介绍几个概念,也是图像处理当中的最常见任务. 语义分割(semantic segmentation) 目标检测(object detection) 目标识别(object recognition) 实例分割(instance segmentation) 语义分割 首先需要了解一下什么是语义分割(s

稳态热传导的有限元分析

在分析工程问题时,经常要了解工件内部的温度分布情况,例如发动机的工作温度.金属工件在热处理过程中的温度变化.流体温度分布等.物体内部的温度分布取决于物体内部的热量交换,以及物体与外部介质之间的热量交换,一般认为是与时间相关的.物体内部的热交换采用以下的热传导方程(Fourier方程)来描述,         (6-1) 式中为密度,kg/m3: 为比热容,:为导热系数,:T为温度,℃:t为时间,s:为内热源密度,w/m3. 对于各向同性材料,不同方向上的导热系数相同,热传导方程可写为以下形式,

homeostasis稳态

目录: 1.反馈系统 2.正反馈调节 3.负反馈调节 4.behavioral response 行为反应,physiological response生理反应 1.反馈控制系统(feedback control system) 是一种“闭环”系统,即控制部分发出信号,指示受控部分活动,而受控部分的活动可被一 定的感受装置感受,感受装置再将受控部分的活动情况作为反馈信号送回到控制部分,控制部分可以根据反馈信号来改变自己的活动,调整对受控部分的指令,因而能对受控部分的活动进行调节.可见,在这样的控

Neotec PIPEFLO v8.5.12 1CD(集输管网稳态软件)

Optcalc v2001 1CDLED.Tool.v5.0 1CDTechWiz LCD 3D v15.0.10.1202-ISO 1CD(液晶模拟系统)TFCalc.v3.5.6(著名的光学薄膜设计软件)TFCalc 材料库TFCalc 用户手册(中文)薄膜光学——理论与实践薄膜光学的基础理论(中文)镀膜工艺与镀膜系统配置(中文)光学镀膜技术(中文)Readiris.Pro.11 1CD(中文版.領先的光學文字識別-OCR軟件)Specman.Pro.2006 1CD(对1D和2D数据进行N

解析双稳态肖特基二极管的设计

肖特基二极管是将P型半导体或者N型半导体与金属表面衬体交互作用,并最终形成稳定结构,可分为物理吸附类型与化学吸附类型.肖特基二极管由于其独特的微观结构而具有整流效应,被广泛应用于传感器.分子开关.集成电路等诸多电子器件中.现如今,如何降低肖特基高度而且同时又能保持分子的完整性,成为设计高效肖特基二极管的难点.因此目前急需设计开发出将物理吸附和化学吸附结合在一起,使其拥有双重优点的肖特基二极管.ADT分子吸附在铜表面的双稳态在实验上得到了印证,而且被应用于分子开关中,并取得了很好的效应.与传统有机

从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态

1. 引言 0x1:人生就是一个马尔科夫稳态 每一秒我们都在做各种各样的选择,要吃青菜还是红烧肉.看电影还是看书.跑步还是睡觉,咋一看起来,每一个选择都是随机的,而人生又是由无数个这样的随机选择组成的结果.从这个前提往下推导,似乎可以得出一个结论,即人生是无常的,未来是不可预测的.但事实真的是如此吗? 以前的老人流行说一句话,三岁看小,七岁看老.这似乎是一句充满迷信主义色彩的俗语,但其实其中暗含了非常质朴而经典的理论依据,即随机过程不管其转移概率分布如何,随着时序的增大,最终会收敛在某个稳态上.

MySQL参数调优最佳实践

前言很多时候,RDS用户经常会问如何调优RDS MySQL的参数,为了回答这个问题,写一篇blog来进行解释: 哪一些参数不能修改,那一些参数可以修改:这些提供修改的参数是不是已经是最佳设置,如何才能利用好这些参数:哪些参数可以改细心的用户在购买RDS的时候都会看到,不同规格能够提供的最大连接数以及内存是不同的,所以这一些产品规格的限制参数:连接数.内存用户是不能够修改的,如果内存或者连接数出现了瓶颈: 内存瓶颈:实例会出现OOM,然后导致主备发生切换连接数瓶颈:应用不能新建立连接到数据库则需要

7_1判断一个单链表是否有环

转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251303.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目:判断一个单链表是否有环,如果有环,求出环的入口节点. 题目分析: 建一个待头节点的单链表,有两个指针p,q最开始都指向第一个真正节点,p,诶次走1步,q每次走

SR latch D latch D filp-flop SR触发器 D触发器 D双稳态多谐震荡器 【数字电路】

SR  latch D latch D filp-flop SR Latch 典型的SR 触发器就长上面那样啦 不要以为简单,酒吧 S R Q Q' 之间的相对位置关系记错了! 组成的元素很简单--或非门,但是实现的功能却很重要 SR是两个输入端口,Q 和 Q' 是输出端口 不要慌,两个端口,就四种输入情况,一个个分析,就可以了解SR latch是怎么工作的 当 s == 1 , R == 0, 或门,只要是有1 ,或门处理结果就是1. 这里S端口输入的是1,那么Q' 得到的是0,这个0反馈到R