PSCAD 4.6.2与MATLAB交互指南

PSCAD4.6.2与MATLAB交互指南

想要使用matlab中m文件创建独属于自己的元件时,总会出现一些的问题,本文就常见问题进行讨论。

第一个问题:无法读取matlab

当点开pscad的Options中Dependencies选项时,可能会发现关于MATLAB的version信息是empty,这个时候,可以更改PSCAD的matlab_versions.xml文件。用记事本打开,加入如下代码:

 <version name="9.8" desc="R2020a">
      <paramlist link="-1" name="data">
         <param name="company" value="MathWorks" />
         <param name="software" value="MATLAB" />
         <param name="root_subkey" value="MATLABROOT" />
         <param name="lib_sub_path" value="extern\lib\win32\microsoft\" />
         <param name="sub_path_1" value="bin" />
         <param name="sub_path_2" value="bin\win32" />
      </paramlist>
      <paramlist link="-1" name="lib_files">
         <param name="" value="libeng.lib" />
         <param name="" value="libmx.lib" />
         <param name="" value="libmat.lib" />
      </paramlist>
   </version>

注:当不清楚matlab的版本时,可以在命令行窗口输入version即可得到版本信息,如下。只需要更改“version name=”后的数字与“desc=”的信息,我这里使用的matlab2020a,也就是matlab9.8
matlab版本信息
之后点开当我们点开pscad的Options中Dependencies选项时,会发现,如下界面:
在这里插入图片描述
接下来,按照手册操作指南,链接MATLAB,点开Project Settings,勾选Matlab中Link this simulation with currently installed Matlab libraries.
在这里插入图片描述
但是,当兴冲冲地构建一个matlab交互元件时,会突然发现,如下情况:
在这里插入图片描述

GFortran compiler无法与MATLAB交互,难道就要放弃了吗?办法总是困难多!可以采用Intel® Fortran Compiler

第二个问题编译器:GFortran调用MATLAB的问题

经过笔者查询资料显示最好采用Intel® Fortran Compiler,推荐使用Intel® Fortran Compiler2015,故本文接下来采用Intel® Fortran Compiler2015。首先,需要安装VS2010或者VS2011、VS2012(笔者采用的是VS2010),通过寻找相应的资源笔者先后下载VS2010和Intel® Fortran Compiler2015。最终得到,如下PSCAD界面:
在这里插入图片描述
注:一定要64位对64位,32位对32位,不然会出错!!

结果展示

以相应参考资料中的参考case为例,仿真
乐老师的case

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
以下是一个使用HttpClient发送Post请求并携带cookie的示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.CookieStore; import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.util.ArrayList; import java.util.List; public class HttpClientUtil { public static void main(String[] args) throws Exception { // 创建HttpClient实例 HttpClient httpClient = HttpClientBuilder.create().build(); // 创建CookieStore实例 CookieStore cookieStore = new BasicCookieStore(); // 创建HttpPost实例 HttpPost httpPost = new HttpPost("http://example.com/login"); // 设置请求参数 RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(5000).setConnectionRequestTimeout(5000) .setSocketTimeout(5000).build(); httpPost.setConfig(requestConfig); // 设置请求头 httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); // 设置请求体参数 List<BasicNameValuePair> parameters = new ArrayList<>(); parameters.add(new BasicNameValuePair("username", "example")); parameters.add(new BasicNameValuePair("password", "password")); UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters); httpPost.setEntity(formEntity); // 执行HttpPost请求 HttpResponse httpResponse = httpClient.execute(httpPost); // 获取响应实体 HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { String response = EntityUtils.toString(httpEntity); System.out.println(response); } // 获取Cookie List<Cookie> cookies = cookieStore.getCookies(); // 创建HttpPost实例 httpPost = new HttpPost("http://example.com/data"); // 设置请求参数 requestConfig = RequestConfig.custom() .setConnectTimeout(5000).setConnectionRequestTimeout(5000) .setSocketTimeout(5000).build(); httpPost.setConfig(requestConfig); // 设置请求头 httpPost.setHeader("Content-Type", "application/json"); httpPost.setHeader("Accept", "application/json"); // 设置请求体参数 String requestBody = "{\"key\":\"value\"}"; httpPost.setEntity(new StringEntity(requestBody, ContentType.APPLICATION_JSON)); // 设置Cookie httpClient = HttpClientBuilder.create().setDefaultCookieStore(cookieStore).build(); // 执行HttpPost请求 httpResponse = httpClient.execute(httpPost); // 获取响应实体 httpEntity = httpResponse.getEntity(); if (httpEntity != null) { String response = EntityUtils.toString(httpEntity); System.out.println(response); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值